Benutzer-Werkzeuge

Webseiten-Werkzeuge


yt-dlp

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
yt-dlp [2025-08-04 22:04:04] davidyt-dlp [2025-08-15 09:36:00] (aktuell) – [Skript] david
Zeile 1: Zeile 1:
 +====== yt-dlp ======
 +
 +  * originales projekt: [[https://github.com/ytdl-org/youtube-dl]]
 +  * aktiver fork (maintained): [[https://github.com/yt-dlp/yt-dlp]]
 +
 +der beste video downloader für youtube und mehr, unterstützt originale video streams (auch audio & video getrennt)
 +
 +
 +===== Installation =====
 +
 +==== FreeBSD ====
 +
 +<code bash>
 +sudo pkg install -y multimedia/ffmpeg devel/py-pipx
 +pipx ensurepath
 +echo "${PATH}" | tr ':' '\n'
 +
 +pipx install "yt-dlp[default]"
 +</code>
 +
 +
 +==== Linux ====
 +
 +=== Debian ===
 +
 +<code bash>
 +sudo apt install ffmpeg pipx
 +pipx install "yt-dlp[default]"
 +</code>
 +
 +
 +=== Fedora ===
 +
 +<code bash>
 +sudo dnf install ffmpeg pipx
 +pipx install "yt-dlp[default]"
 +</code>
 +
 +
 +=== Termux (Android) ===
 +
 +<code bash>
 +pkg install ffmpeg python-pip
 +pip install -U --user pipx
 +pipx ensurepath
 +echo "${PATH}" | tr ':' '\n'
 +
 +pipx install "yt-dlp[default]"
 +</code>
 +
 +
 +==== Windows ====
 +
 +<code powershell>
 +winget search python
 +# lookup & adapt python version
 +winget install -i Gyan.FFmpeg Python.Python.3.13
 +python -m pip install -U pip
 +
 +pip install -U pipx
 +pipx ensurepath
 +echo ("${env:Path}").Replace(";", "`n")
 +
 +pipx install "yt-dlp[default]"
 +</code>
 +
 +
 +===== Skript =====
 +
 +  * repo: [[https://gist.github.com/3ffc22dffe40ae533638e0f71dbf01d1.git]]
 +
 +<code bash yt-dlp.sh>
 +#!/usr/bin/env bash
 +
 +set -o errexit
 +set -o nounset
 +set -o pipefail
 +shopt -s inherit_errexit
 +
 +arg_count="${#@}"
 +# script assumes the url is passed as last argument
 +url="${!#}"
 +
 +if test "${arg_count}" -eq 0
 +then
 + printf "Usage:\n\t%s\n\t%s\n\t%s\n\t%s\n\n%s\n" \
 + 'yt-dlp.sh "https://youtu.be/xxx"' \
 + 'yt-dlp.sh "https://youtube.com/watch?v=xxx"' \
 + 'yt-dlp.sh "https://youtu.be/xxx?list=xxx"' \
 + 'yt-dlp.sh "https://youtube.com/playlist?list=xxx"' \
 + "always pass the download url as the last argument"
 + exit 1
 +fi
 +
 +if grep -Eiq "[?&]list=" <<< "${url}"
 +then
 + output_template="%(playlist)s/%(playlist_index)s-%(title)s.%(ext)s"
 +else
 + output_template="%(title)s.%(ext)s"
 +fi
 +
 +yt-dlp \
 + --format-sort "quality, res, fps, hdr, vcodec:av1, channels, acodec" \
 + --merge-output-format "mkv" \
 + --no-overwrites \
 + --output "${output_template}" \
 + --prefer-free-formats \
 + --remux-video "mkv" \
 + --restrict-filenames \
 + "${@}"
 +</code>
 +
 +
 +===== Beispiele =====
 +
 +<code bash>
 +url="https://youtu.be/xxx"
 +# oder
 +url="https://youtube.com/watch?v=xxx"
 +# oder
 +url="https://youtu.be/xxx?list=xxx"
 +# oder
 +url="https://youtube.com/playlist?list=xxx"
 +
 +# beste qualität
 +yt-dlp.sh "${url}"
 +
 +# expliziter dateiname
 +yt-dlp.sh -o "tmp.%(ext)s" "${url}"
 +
 +# max 1080p
 +yt-dlp.sh -S "res:1080" "${url}"
 +
 +# max 2160p & kein hdr
 +yt-dlp.sh -S "res:2160,hdr:sdr" "${url}"
 +
 +# max 30 fps
 +yt-dlp.sh -S "fps:30" "${url}"
 +
 +# downloade die playlist & speichere heruntergeladene video ids in einer datei, damit sie nicht erneut heruntergeladen werden
 +yt-dlp.sh --download-archive index.txt --no-abort-on-error "${url}"
 +
 +# das gleiche, aber mit einer bandbreitenbegrenzung von 100 MBit/s (download)
 +trickle -d 12500 yt-dlp.sh --download-archive index.txt --no-abort-on-error "${url}"
 +</code>
 +