This is an Electron app that makes it easy to download videos from youtube to your system. Multiple downloads can be queued; the app can be quit and resumes where it left off when restarted.
Under the hood the app uses youtube-dl and avconv, which are wrapped in a Docker container to make cross-platform deployment easier (well, uh, easier for me--not for potential users, who have to install Docker).
There are lots of apps that do this kind of thing, but a lot of them seemed bloated with spyware. I figured there might be something open-source but I thought writing something myself would give me an excuse to explore some technologies I wasn't very familiar with, like:
- Electron
- The Docker API
- CSS grid layout
- TypeScript 2 tagged unions
- Syncing Redux stores between a renderer and main process
- Async/await
So it's kind of a weird experiment and your mileage may vary if you actually try to use it.
Docker is required. If you're on an unprofessional version of Windows and are relegated to using Docker Toolbox like me, you should run the app from a Docker Quickstart Terminal (or otherwise have the docker-machine environment variables set).
You'll also need Node JS. I wrote this with Node 7.5, but it probably runs fine on earlier versions, especially since TypeScript transpiles the most advanced syntax.
npm install
npm run compile
npm start
Wiping out the repository's directory takes care of almost everything.
You'll also want to delete the container image that was made during the build process by running:
docker rmi youtube-dl
This is free and unencumbered software released into the public domain.