Didn't want to watch a very long video about a product review and wanted to save time. Realized this can be applied to current events, as health care workers at the front lines and people trying to accomplish tasks remotely are in a time crunch more than ever. Most people just want a general recap of the Covid-19 situation, but there are hundreds if not thousands of hours of online videos detailing the pandemic.
What it does
Summarize This Vid For Me takes a YouTube video link and utilizes Google's video intelligence API to transcribe the audio into text and natural language to condense the video and sends a of the result to the recipient.
This for me can be extrapolated to many use cases as it can take in any video from Youtube. For consumers, product review videos, any news updates, talk shows, can be consumed in a couple of minutes rather than having to watch the entire thing in a time crunch. This can help companies condense product review videos and make more informed product decisions instead of spending hours watching review videos.
How I built it
- Google Kubernetes Engine - Host the server on the backend
- Google Video Intelligence API
- Google Cloud Storage/Bucket
- Google Cloud Functions/Pubsub
- Twilio Send Grid
- aiohttp (async api calls)
- Natural Language Toolkit (NLTK)
- Networkx Complex Networks (for text rank and graphing)
Challenges I ran into
-Having the landing page submit the URL and email as well as redirect to the summarytoemail page without using JS -Centering the elements in CSS with a grid-column setup -Setting up async calls on python, an error we where multiple threads cannot run at the same time for python. Some of the calls may not execute. Authentication and google cloud -Setting up the NLP algorithm to summarize info
Accomplishments that I'm proud of
-Some of our team members learning HTML and CSS in one night -Learning to use Natural Language toolkit and resarching about NLP algorithm (textrank) and how it uses extrapolation to extract condensed information -Using Video Intelligence API to transcribe video into text -Setting up a full stack application
What I learned
Overall, we learned how to setup a full stack application which takes input, downloads the video provided by the input, transcribes this video, and summarizes the text in the video. For the NLP segment, we used a text rank alogrithm powered by NLTK for find sentence similarity and networkx to classify the sentences.
What's next for Summarize This Vid For Me
Allowing more inputs for videos such as from different sources and platforms, allowing other types of videos, and web parsing for specific inputs.
Try It out
aiohttp, complex-networks, google-cloud-functions/pubsub, google-cloud-storage/bucket, google-video-intelligence-api, html/css, kubernetes, natural-language-toolkit, networkx, python, twilio-send-grid