The Archivist

Built as part of the GooseHacks 2023's hackathon, our team successfully developed a web application with the capability to easily archive video content from youtube within the span of a mere 36 hours. We leveraged the Flask framework to achieve efficient and quick-paced development, made possible through the collaborative efforts of our team in a short amount of time.

Technologies

Python Flask

Challenges

The main blocker was the time limit. As our team consists of 50% first-time hackathon participant(s), it was needless to say that the whole hackathon was challenging to adapt within such a short span of time. Though the project might not stand out the most, the core functionality and usability are very much implemented within the first 36 hours even though we ran into several issues and had to spend most the time debugging in order to present a functioning solution (e.g. connecting the communication between the frontend and backend, using Jinja and Flask, and also incompatibility of python packages etc).

Our inspiration of developing a youtube downloader web app stems from having little to almost none safe online services that supports playlist downloads. (https://en.loader.to/4/, https://y2down.cc/en/youtube-playlist.html etc are limited to 20 playlist videos, and require users to download their software to be able to download larger playlist which might not be the safest option). Another reason was the rapid termination cases of youtube channels that were of comfort to many, but were removed from the platform because they were touching on sensitive topics such as eating disorders. We hope this downloader can help users download and archive fond memories of their favourite content creators without having to trade their internet safety for it.

The Archivist is able to download >20 videos at the highest quality (or much more) in a playlist and compress all of it within a zip file with usability taken into account, so whatever happens in the web application stays in the web application without a requirement to download malicious software. Although the download speed may be an issue if there are too many videos, there is certainly much more potential to this project if we were to invest more time into it in the future, such as optimizing the processing time through threading, channel downloading functionality, and maybe even server deployment for public usage!

How to use

To clone and run this application, you will need Git:

$ git clone https://github.com/mlemxy/The-Archivist

# create virtual env
py -m venv .venv
.venv\scripts\activate

# install dependencies
$ pip install -r requirements.txt

# run the application
$ flask run

Roadmap

  • [ ] Code Refractoring
  • [ ] Reduce processing time
  • [ ] Server deployment
  • [ ] Additional features:
    • [ ] Conversion to audio file

Acknowledgments

Built With

Share this project:

Updates