[DOCS] Automated download via cron docs (#95)
* [DOCS] Automated download docs, fix -thumb.jpg * patty
This commit is contained in:
parent
cbb4524bd4
commit
df9f5a7836
6 changed files with 89 additions and 10 deletions
|
|
@ -65,11 +65,11 @@ server. The `--dry-run` flag can be used to view file output before any download
|
||||||
```
|
```
|
||||||
/path/to/youtube_tv_shows/John Smith Vlogs
|
/path/to/youtube_tv_shows/John Smith Vlogs
|
||||||
/Season 2021
|
/Season 2021
|
||||||
s2021.e0317 - St Pattys Day Video.jpg
|
s2021.e0317 - Pattys Day Video-thumb.jpg
|
||||||
s2021.e0317 - St Pattys Day Video.mp4
|
s2021.e0317 - Pattys Day Video.mp4
|
||||||
s2021.e0317 - St Pattys Day Video.nfo
|
s2021.e0317 - Pattys Day Video.nfo
|
||||||
/Season 2022
|
/Season 2022
|
||||||
s2022.e1225 - Merry Christmas.jpg
|
s2022.e1225 - Merry Christmas-thumb.jpg
|
||||||
s2022.e1225 - Merry Christmas.mp4
|
s2022.e1225 - Merry Christmas.mp4
|
||||||
s2022.e1225 - Merry Christmas.nfo
|
s2022.e1225 - Merry Christmas.nfo
|
||||||
poster.jpg
|
poster.jpg
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ ytdl-sub is configured using a ``config.yaml`` file. You can view our
|
||||||
:doc:`examples <examples>` and read detailed documentation for every configurable
|
:doc:`examples <examples>` and read detailed documentation for every configurable
|
||||||
field below.
|
field below.
|
||||||
|
|
||||||
|
.. _config_yaml:
|
||||||
|
|
||||||
config.yaml
|
config.yaml
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|
@ -190,6 +192,8 @@ nfo_output_directory
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. _subscription_yaml:
|
||||||
|
|
||||||
subscription.yaml
|
subscription.yaml
|
||||||
-----------------
|
-----------------
|
||||||
The ``subscription.yaml`` file is where we use our `presets`_ in the `config.yaml`_
|
The ``subscription.yaml`` file is where we use our `presets`_ in the `config.yaml`_
|
||||||
|
|
|
||||||
|
|
@ -22,3 +22,7 @@ to download your YouTube cookie, then add it to your
|
||||||
|
|
||||||
ytdl_options:
|
ytdl_options:
|
||||||
cookiefile: "/path/to/cookies/file.txt"
|
cookiefile: "/path/to/cookies/file.txt"
|
||||||
|
|
||||||
|
...automate my downloads?
|
||||||
|
'''''''''''''''''''''''''
|
||||||
|
See :ref:`automated_downloads` on how to set up ``ytdl-sub`` to run in a cron job.
|
||||||
|
|
|
||||||
|
|
@ -106,3 +106,74 @@ With a Python 3.10 virtual environment, you can clone and install the repo using
|
||||||
cd ytdl-sub
|
cd ytdl-sub
|
||||||
|
|
||||||
pip install -e .
|
pip install -e .
|
||||||
|
|
||||||
|
.. _automated_downloads:
|
||||||
|
|
||||||
|
Setting Up Automated Downloads
|
||||||
|
------------------------------
|
||||||
|
Docker is the recommended way to use ``ytdl-sub`` because it is easy to set up a cron job to
|
||||||
|
automatically download files via cron job. Setting this up is quite easy since we use the
|
||||||
|
LinuxServer base image.
|
||||||
|
|
||||||
|
Enabling crontab
|
||||||
|
________________
|
||||||
|
Crontab is a utility for running cron jobs. To enable it in the docker image, add the following
|
||||||
|
file to ``/config/custom-services.d/cron``:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
#!/usr/bin/with-contenv bash
|
||||||
|
/usr/sbin/crond -f -S -l 0 -c /etc/crontabs
|
||||||
|
|
||||||
|
Creating the crontab file
|
||||||
|
_________________________
|
||||||
|
LinuxServer creates the user ``abc`` in the docker container and assigns it the respective
|
||||||
|
``PUID`` and ``PGID`` permissions to it. We want the cron job to run as this user to ensure
|
||||||
|
downloaded files get these permissions instead of root permissions.
|
||||||
|
|
||||||
|
To do this, we need to create the file ``/etc/crontabs/abc``. Since this path is not part
|
||||||
|
of the already mounted volume, we need to mount another path. In docker-compose, this looks
|
||||||
|
like:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
services:
|
||||||
|
ytdl-sub:
|
||||||
|
image: ghcr.io/jmbannon/ytdl-sub:latest
|
||||||
|
volumes:
|
||||||
|
- </path/to/ytdl-sub/config>:/config
|
||||||
|
- </path/to/ytdl-sub/crontab_files>:/etc/crontabs
|
||||||
|
...
|
||||||
|
|
||||||
|
Now that ``/path/to/ytdl-sub/crontab_files`` is mounted, we can create the ``abc`` crontab file
|
||||||
|
there:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
# min hour day month weekday command
|
||||||
|
*/20 * * * * /config/run_cron
|
||||||
|
|
||||||
|
Creating the download script
|
||||||
|
____________________________
|
||||||
|
|
||||||
|
This will run the ``run_cron`` script every 20 minutes. The last step is to create this bash
|
||||||
|
script in ``/config/run_cron``.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
echo "Cron started, running ytdl-sub..."
|
||||||
|
ytdl-sub --config=/config/config.yaml sub /config/subscriptions.yaml
|
||||||
|
|
||||||
|
Ensure this file is executable and has permissions for ``abc``:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
# run as root
|
||||||
|
chmod +x /config/run_cron
|
||||||
|
chown abc:abc /config/run_cron
|
||||||
|
|
||||||
|
This will use the :ref:`config_yaml` and download all subscriptions in :ref:`subscription_yaml`.
|
||||||
|
|
||||||
|
You're done! You are now downloading your subscriptions every 20 minutes. New channel uploads,
|
||||||
|
videos added to a playlist, or soundcloud artist uploads can now be downloaded automatically.
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@
|
||||||
# formatted as:
|
# formatted as:
|
||||||
#
|
#
|
||||||
# /path/to/Music Videos
|
# /path/to/Music Videos
|
||||||
# Elton John - Rocketman.jpg
|
# Elton John - Rocketman-thumb.jpg
|
||||||
# Elton John - Rocketman.mp4
|
# Elton John - Rocketman.mp4
|
||||||
# Elton John - Rocketman.nfo
|
# Elton John - Rocketman.nfo
|
||||||
# System of a Down - Chop Suey.jpg
|
# System of a Down - Chop Suey-thumb.jpg
|
||||||
# System of a Down - Chop Suey.mp4
|
# System of a Down - Chop Suey.mp4
|
||||||
# System of a Down - Chop Suey.nfo
|
# System of a Down - Chop Suey.nfo
|
||||||
# ...
|
# ...
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,11 @@
|
||||||
#
|
#
|
||||||
# /path/to/youtube_tv_shows/My Favorite Youtube Channel
|
# /path/to/youtube_tv_shows/My Favorite Youtube Channel
|
||||||
# /Season 2021
|
# /Season 2021
|
||||||
# s2021.e0317 - St Pattys Day Video.jpg
|
# s2021.e0317 - Pattys Day Video-thumb.jpg
|
||||||
# s2021.e0317 - St Pattys Day Video.mp4
|
# s2021.e0317 - Pattys Day Video.mp4
|
||||||
# s2021.e0317 - St Pattys Day Video.nfo
|
# s2021.e0317 - Pattys Day Video.nfo
|
||||||
# /Season 2022
|
# /Season 2022
|
||||||
# s2022.e1225 - Merry Christmas.jpg
|
# s2022.e1225 - Merry Christmas-thumb.jpg
|
||||||
# s2022.e1225 - Merry Christmas.mp4
|
# s2022.e1225 - Merry Christmas.mp4
|
||||||
# s2022.e1225 - Merry Christmas.nfo
|
# s2022.e1225 - Merry Christmas.nfo
|
||||||
# poster.jpg
|
# poster.jpg
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue