A web interface where you can add any number of Youtube or Vimeo channels. Videos from these channels are then cleanly listed, and can be downloaded with a single click (using youtube-dl
).
Multiple downloads will be queued up (using the python-rq task queue), and it keeps track of the state of videos (new, downloaded, ignored)
So you can quickly see what new videos have been released on various channels, click the "download" button on the interesting ones, and end up with a folder of .mp4
files to watch later (or, transfer onto an iPad to something like AVPlayerHD etc etc).
Very little noise (no Youtube comments, no annotations, no pre-roll and overlayed-banner ads), no buffering.
Some probably-outdated screenshots:
Docker is the preferred means of installation.
-
Adjust paths in
docker-compose.yml
as necessary.In the
app
container,/data
contains the SQLite database and downloaded files./app
contains the code. In theredis
container, there is a/data
container used for the download queue data. -
Start via
docker-compose
:docker-compose up --build --detatch
This will run in the background (because
--detatch
) -
Initialize database (only necessary on first run)
docker-compose exec app python3 main.py dbinit
-
To stop:
docker-compose down
Tests are run via docker-compose similarly to the main application.
docker-compose -f docker-compose.test.yml up --build --exit-code-from test
- Currently will always download the highest quality video possible,
and the files are potentially quite large (some 30-40 minute videos
are ~1GB). The
--max-quality
flag toyoutube-dl
might be worth using - When adding a Vimeo user, only the first "3 pages" (about 60 videos) will be listed currently, due to using the "simple API". This restriction could be removed by registering for an API key and using the full API (which requires OAuth)
- The web interface does what I needed and no more. It's not the fanciest thing ever, but functional.