Inspiration

We have a living room TV that we wanted to be able to control from any computer. We decided that having a dedicated media computer in the form of a raspberry pi would be great, but we also wanted the ability to queue up videos and have a voting system on different videos.

What it does

It is a webapp that controls the order of queued videos users can add either by direct link or by keyword search ("I'm feeling lucky").

How we built it

We used Flask, HTML/CSS, Omxplayer, and Youtube-DL to host a highly customized full-stack solution.

Challenges we ran into

The raspberry pi 3 has significant hardware limitations related to video decoding, such as the inability to play videos encoded in VP9 (even at 360p). We custom-engineered a tested solution for extracting good-quality encodings from YouTube. This was also our first time working on frontend web development, so learning dynamic HTML was a great challenge for us.

Accomplishments that we're proud of

Getting videos to play on the raspi using hardware acceleration. Made an "I'm feeling lucky button" that selects the first result from a YT search. Successfully reached a queue size of 50 videos organically (queue can approach infinity). Played Hello by Adele 12 times.

What we learned

The raspi requires a lot of efficientization. Threading causes synchronization problems.

What's next for Video Voter with Queue

We want to bring it to the web! Users should be able to modify a global queue that is hosted on a DB, such as CockroachDB.

Built With

Share this project:

Updates