Due to YouTube's increasing prevalence, students are using YouTube for academic purposes, namely, viewing online lectures. But lectures become confusing if the audience lacks some previous knowledge of certain key terms.
What it does
A program that analyzes lecture videos to find important terms and concepts and search the web for additional resources.
How we built it
- We download YouTube video and generate its corresponding .flac audio file using pytube
- We analyze the audio file and generate a transcript using Google Cloud's SpeechRecognition API
- We analyze the transcript using a database of relevant jargons the user may have difficulty understanding
- We generate an output message consists of the terms, their definitions, and their corresponding information on the web
- We use an electron module to allow the user to input a YouTube link or a text file (.doc .docx .txt), and to view the output
- The backend of this program was entirely coded using python-37 and its dependencies as stated
- For the GUI aspect, ElectronJS was used in conjunction with HTML and CSS to create dynamic and stunning pages.
- "python-shell" was used as a client between the frontend and backend
Challenges we ran into
Accomplishments that we're proud of
Entering the hackathon, all of us had different skillsets. In the end, we all were able to build upon each other's strengths to build such an app.
Almost all of the front end was made from scratch including icons and loading screens. Almost all of the back end was made from scratch as well.
What we learned
All of us learned ElectronJS, which is something we are all proud of because none of us had any prior experience with ElectronJS. After the project, the backend people learnt more about frontend and vice versa.
In order to make the front end from scratch, all of us learned HTML and CSS.
What's next for L++
- Provide an interface that allows real-time video/audio streaming
- Allow the user to view results at real-time
- Keep refining the database of jargon to be recognized
- Experiment with translating the given text into other languages