No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-11 15:37:17 +01:00
.gitignore use ffmpeg via docker 2026-11-11 15:07:10 +01:00
mediathek.sh remove sub files 2026-11-11 15:37:17 +01:00
README.md remove sub files 2026-11-11 15:37:17 +01:00

Mediathek

Download season playlists from ARD Mediathek, ZDF, and other sites yt-dlp supports.

Episodes are saved as:

Series/Staffel 01/001 - Episode title.mp4

Colons in the series name or title are replaced with -. Subtitles are embedded in the video, and the separate .vtt file is removed after that succeeds.

Requirements

  • bash
  • curl, used only when uv is missing
  • ffmpeg and ffprobe, or Docker

The script installs and updates uv and yt-dlp into ~/.local/bin.

Usage

./mediathek.sh --preview seasons.txt
./mediathek.sh --dest "/mnt/video/Doku" seasons.txt
./mediathek.sh "https://www.ardmediathek.de/..."
./mediathek.sh "https://www.zdf.de/..."

With no arguments, the script asks for one season URL or a text file.

--preview lists the file names and downloads nothing. --dest sets the output directory. The default is ..

A text file holds one season URL per line. Blank lines and lines starting with #, ;, or ] are skipped.

ffmpeg

Host ffmpeg and ffprobe are used when both are installed. Otherwise the script runs lscr.io/linuxserver/ffmpeg as the current user. It tries docker first, then sudo -n docker, and checks that ffmpeg actually runs before downloading. If that check fails, the download does not start.