Skip to content

Download Video or Audio from YouTube channels on a schedule via yt-dlp.

License

Notifications You must be signed in to change notification settings

TheWicklowWolf/ChannelTube

Repository files navigation

Build Status Docker Pulls

full_logo

ChannelTube is a tool for synchronizing and fetching content from YouTube channels using yt-dlp.

Run using docker-compose

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

Configuration via environment variables

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

yt-dlp-formats

Sync Schedule

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.

Media Server Integration (optional)

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.

Cookies (optional)

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.


light


dark


https://hub.docker.com/r/thewicklowwolf/channeltube