Inspiration
During HackRPI, one of the projects allowed you to place orders on Panera through the terminal. This inspired us to make something that turns a popular app into something you can run through commands in the terminal.
What it does
TermLingus allows the user to play YouTube videos through the terminal. There is also a user interface in which you can select videos from a series of thumbnails, search for videos, and view comments on videos.
How we built it
We used c++ for the majority of our project. Some of the libraries we used included Sox for sound, ftxui for the user interface, ffmpeg to convert videos to bitmap, and more. We also used a little bit of Python to access the youtube API to get information such as comments, popular videos, and a search query for videos.
Challenges we ran into
The first 7 hours of the project were taken up trying to create a Makefile, which we never ended up using. Also, we were originally using a library called jp2a which converted images to ASCII, however, there were flickering and other issues, so we switched to using a bitmap format instead of jpeg.
Accomplishments that we're proud of
One of our best accomplishments is the performance of the videos. There is high fps, no flickering, and the audio is mostly synchronous. In addition, our UI is very user-friendly and reminiscent of YouTube.
What we learned
It is very important to make sure the libraries you are going to use will integrate nicely with your code so that you don't get too far into implementation before running into a mound of errors.
What's next for TermLingus
We plan to add more features seen on YouTube, such as likes and dislikes, user authentication (allowing subscription management and recommended videos), playlists, etc. In addition, another priority is to better synchronize audio with video. A long-term goal for us would be to actually stream the video instead of temporarily downloading it, which would decrease load times and act more similarly to YouTube itself.
Log in or sign up for Devpost to join the conversation.