131 lines
No EOL
4.8 KiB
ReStructuredText
131 lines
No EOL
4.8 KiB
ReStructuredText
Automating Downloads
|
|
====================
|
|
|
|
:ref:`docker-unraid-setup`
|
|
|
|
:ref:`linux-setup`
|
|
|
|
:ref:`windows-setup`
|
|
|
|
.. _cron tab manpage: https://man7.org/linux/man-pages/man5/crontab.5.html#EXAMPLE_CRON_FILE
|
|
|
|
.. _docker-unraid-setup:
|
|
|
|
Docker and Unraid
|
|
-----------------
|
|
|
|
.. tab-set::
|
|
|
|
.. tab-item:: GUI Image
|
|
|
|
The script that will execute automatically is located at ``/config/ytdl-sub-configs/run-cron``.
|
|
|
|
Access your container at http://localhost:8443/, then in the GUI terminal run these commands:
|
|
|
|
.. code-block:: shell
|
|
|
|
echo '#!/bin/bash' > /config/ytdl-sub-configs/run_cron
|
|
echo "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /config/ytdl-sub-configs/run_cron
|
|
echo "echo 'Cron started, running ytdl-sub...'" >> /config/ytdl-sub-configs/run_cron
|
|
echo "cd /config/ytdl-sub-configs" >> /config/ytdl-sub-configs/run_cron
|
|
echo "ytdl-sub --config=config.yaml sub subscriptions.yaml" >> /config/ytdl-sub-configs/run_cron
|
|
chmod +x /config/ytdl-sub-configs/run_cron
|
|
chown abc:abc /config/ytdl-sub-configs/run_cron
|
|
|
|
You can test the newly created script by running:
|
|
|
|
.. code-block:: shell
|
|
|
|
/config/ytdl-sub-configs/run_cron
|
|
|
|
To create the cron definition, run the following command:
|
|
|
|
.. code-block:: shell
|
|
|
|
echo "# min hour day month weekday command" > /config/crontabs/abc
|
|
echo " 0 */6 * * * /config/ytdl-sub-configs/run_cron" >> /config/crontabs/abc
|
|
|
|
This will run the script every 6 hours. To run every hour, change ``*/6`` to ``*/1``, or to run once a day, change the same value to the hour (in 24hr format) that you want it to run at. See the `cron tab manpage`_ for more options.
|
|
|
|
.. tab-item:: Headless Image
|
|
|
|
.. _LinuxServer's Universal Cron mod: https://github.com/linuxserver/docker-mods/tree/universal-cron
|
|
|
|
The first step is to ensure you have `LinuxServer's Universal Cron mod`_ enabled via the environment variable. For the GUI image, this is already included (no need to add it).
|
|
|
|
.. code-block:: yaml
|
|
|
|
services:
|
|
ytdl-sub:
|
|
image: ghcr.io/jmbannon/ytdl-sub:latest
|
|
container_name: ytdl-sub
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=America/Los_Angeles
|
|
- DOCKER_MODS=linuxserver/mods:universal-cron # <-- Make sure you have this!
|
|
volumes:
|
|
# ensure directories have user permissions
|
|
- </path/to/ytdl-sub/config>:/config
|
|
- </path/to/ytdl-sub/tv_shows>:/tv_shows
|
|
restart: unless-stopped
|
|
|
|
This line will tell your container to install and enable cron on start.
|
|
|
|
If you had to add this line, you will need to restart your container.
|
|
|
|
.. code-block:: shell
|
|
|
|
docker compose restart
|
|
|
|
The script that will execute automatically is located at ``/config/run-cron``.
|
|
|
|
Access your container from the terminal by running:
|
|
|
|
.. code-block:: shell
|
|
|
|
docker exec -itu abc ytdl-sub /bin/bash
|
|
|
|
then in the terminal run these commands:
|
|
|
|
.. code-block:: shell
|
|
|
|
echo '#!/bin/bash' > /config/ytdl-sub-configs/run_cron
|
|
echo "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /config/ytdl-sub-configs/run_cron
|
|
echo "echo 'Cron started, running ytdl-sub...'" >> /config/ytdl-sub-configs/run_cron
|
|
echo "cd /config/ytdl-sub-configs" >> /config/ytdl-sub-configs/run_cron
|
|
echo "ytdl-sub --config=config.yaml sub subscriptions.yaml" >> /config/ytdl-sub-configs/run_cron
|
|
chmod +x /config/ytdl-sub-configs/run_cron
|
|
chown abc:abc /config/ytdl-sub-configs/run_cron
|
|
|
|
You can test the newly created script by running:
|
|
|
|
.. code-block::
|
|
|
|
/config/run_cron
|
|
|
|
To create the cron definition, run the following command:
|
|
|
|
.. code-block:: shell
|
|
|
|
echo "# min hour day month weekday command" > /config/crontabs/abc
|
|
echo " 0 */6 * * * /config/run_cron" >> /config/crontabs/abc
|
|
|
|
This will run the script every 6 hours. To run every hour, change ``*/6`` to ``*/1``, or to run once a day, change the same value to the hour (in 24hr format) that you want it to run at. See the `cron tab manpage`_ for more options.
|
|
|
|
.. _linux-setup:
|
|
|
|
Linux
|
|
-----
|
|
|
|
|
|
|
|
.. _windows-setup:
|
|
|
|
Windows
|
|
-------
|
|
To be tested (please contact code owner or join the discord server if you can test this out for us)
|
|
|
|
.. code-block:: powershell
|
|
|
|
ytdl-sub.exe --config \path\to\config\config.yaml sub \path\to\config\subscriptions.yaml |