ChannelTube is a tool for synchronizing and fetching content from YouTube channels using yt-dlp.
services:
channeltube:
image: thewicklowwolf/channeltube:latest
container_name: channeltube
volumes:
- /path/to/config:/channeltube/config
- /data/media/video:/channeltube/downloads
- /data/media/audio:/channeltube/audio_downloads
- /etc/localtime:/etc/localtime:ro
ports:
- 5000:5000
restart: unless-stopped
Certain values can be set via environment variables:
- PUID: The user ID to run the app with. Defaults to
1000
. - PGID: The group ID to run the app with. Defaults to
1000
. - video_format_id: Specifies the ID for the video format. The default value is
137
. - audio_format_id: Specifies the ID for the audio format. The default value is
140
. - defer_hours: Defines the time to defer in hours. The default value is
0
. - thread_limit: Sets the maximum number of threads to use. The default value is
1
.
For information on format IDs, refer to https://github.com/yt-dlp/yt-dlp
Use a comma-separated list of hours to search for new items (e.g. 2, 20
will initiate a search at 2 AM and 8 PM).
Note: There is a deadband of up to 10 minutes from the scheduled start time.
A media server library scan can be triggered when new content is retrieved.
For Plex, use: Plex: http://192.168.1.2:32400
For Jellyfin, use: Jellyfin: http://192.168.1.2:8096
To use both, enter: Plex: http://192.168.1.2:32400, Jellyfin: http://192.168.1.2:8096
The same format applies for the tokens.
The Media Server Library Name refers to the name of the library where the videos are stored.
To disable this feature:
- Leave Media Server Addresses, Media Server Tokens and Media Server Library Name blank.
To utilize a cookies file with yt-dlp, follow these steps:
-
Generate Cookies File: Open your web browser and use a suitable extension (e.g. cookies.txt for Firefox) to extract cookies for a user on YT.
-
Save Cookies File: Save the obtained cookies into a file named
cookies.txt
and put it into the config folder.