Inspiration

Have you ever remembered a quote from a video, but not the name of the video? Have you ever wanted to know which YouTube videos feature a specific topic, especially if it's not in the title and/or description?

What it does

ScriptSearch is a web app allowing users to query a phrase from all videos in our internal database, as well as providing the video and timestamp for each occurrence of the phrase. In addition, users can filter results by channel and video category, where applicable.

How we built it

Our frontend was built using React and plain JavaScript, which allowed us to dynamically present a visually appealing website to the user.

Our backend was built on Google Cloud, where we used Firestore for databasing, Cloud Functions for serverless computing, and Cloud Storage for persistent, reliable storage. Our functions were built in either Python or Node.js, whichever better suited the specific purpose of the function.

Challenges we ran into

The architecture on Google Cloud was difficult to set up, and we ended up having to comb through the source code of a somewhat complicated library that downloaded YouTube transcripts. A major problem we had with the front-end was to connect our extension to our back-end to download and query the transcripts. We were also new to instantsearch.js, so it took some time to understand, but we powered through. We had some design issues as well

Accomplishments that we're proud of

Despite the setbacks, we managed to get the backend cloud stuff set up pretty well, and our frontend looks really good, especially considering our relative lack of experience.

What we learned

We learned a lot about a number of Python and JavaScript libraries (such as YouTube-DL and InstantSearch), as well as Google Cloud. We also learned about developing using plain JavaScript and CSS.

What's next for YT-ScriptSearch

In the future, we intend to make an expansion to the website, wherein users to provide a playlist or channel to be transcribed and put into our database, allowing them to be indexed by future searches. In addition, we are planning a Google Chrome extension that would integrate with YouTube itself, allowing users to narrow down a basic YT search via our transcript indexing.

Share this project:

Updates