Inspiration
With the recent rise of content creators getting demonetized and DMCA takedowns, creators must be more careful than ever when uploading content to YouTube. We want to provide an uninterrupted experience for both creators and viewers watching reaction videos, so we designed a way for creators to still react to the videos that they love without getting demonetized. Viewers can now watch reactors and the videos they're reacting to side-by-side while still contributing views to both creators.
What it does
- The content creator captures their response to a video, ensuring not to include any content protected under the DMCA or the original content.
- The content creator utilizes this software to establish a correspondence of timestamps between their recorded reaction and the original material.
- For instance, should a content creator capture their reaction,
- and initiate their response at the 1:21 timestamp in their recorded material,
- they would correlate this to the 0:00 timestamp of the original video being commented on.
- The creator subsequently uploads their reaction video to platforms like YouTube (or any platform supporting video embedding) and associates it with the corresponding project generated using this application.
- During playback, viewers will observe the original content material synchronized to appear alongside the creator's reaction commencing at the 1:21 timestamp.
How we built it
For the front-end and back-end, we used Reflex which uses Python and allowed us to insert in html/js For persistence, we stored data into cockroachDB which helps provide us reliability in the form of a PostgreSQL database We used GitHub as a version control system and used issues and pull requests to track progress on tasks and features development throughout the hackathon
Challenges we ran into
We based our entire stack around Reflex, an emerging framework allowing developers to write full-stack code in "pure" Python. Since it's still a developing technology, many features normally found in front-end frameworks like React (such as being able to use Javascript and hooks), made it harder to adapt to the async nature of front-ends.
Many new features are sparsely documented, so we had to rely on the expertise of Reflex's mentors during the hackathon to troubleshoot the many bugs that came up during development. We were testing the limits of this new framework as we were developing, leading to many instances of creative problem-solving to work around Reflex's current limitations. It was very new and challenging to wrap our heads around during front-end development in Python.
Accomplishments that we're proud of
We are most proud of our ability to take on a new platform and immediately start building a new project with so many unknowns. Given some very thorough planning and documentation reading, we were very proud of our ability to think on the spot and adapt to an ever-changing set of design limitations.
We are also very proud that our product works and successfully achieves the original design goal in a simple and efficient manner.
What we learned
We learned that having a good design and goal in mind from the start is very helpful, but being willing to pick up new things on the way can also provide an eye-opening experience.
We also learned that it is important to ask important people for help whether they're the creators of the framework itself or other hackers that are running into the same problems as us. Working together not only as a team but as a community makes the best learning experience.
What's next for BooloTube
We want to implement a Chrome extension that would enhance the user's ability to use our service by having a picture-in-picture video to play side by side with the original video allowing the user to experience a more involved viewer experience. Ideally, viewers don't even need to enter a site to enjoy their new viewing experience.
Users might also want to have an opt-in (in favor of privacy) authentication system that allows users to log in and favorite/store videos.
It would also be cool to experiment with other features such as supporting other video players and also integrating with currently published reaction videos or automatically timestamping using computer vision.
Instructions to try it out!
Reflex deployment is still buggy for our use case, so to see the side-by-side you need some tinkering with the deployment link.
The base app is here and most functions should work, barring some small routing issues.
The side by side demo can be seen here. You will need to navigate to another page like /search, then back to /viewer, and then hit refresh. The side-by-side should show up!
Log in or sign up for Devpost to join the conversation.