Seite 1 von 1

Frage zu yt-dlp

Verfasst: Mittwoch 20. August 2025, 15:04
von LaGGGer
Hallo
Habe hier ein kleines Problem mit dem obengenannten Programm. Naja, Problem ist übertrieben, aber vielleicht kann jemand helfen.

Und zwar gibt es einen Parameter für die Namensgebung und Nummerierung.
Wenn ein Video Timestamps oder Kapitelmarken hat (Keine Playlist) kann man mit dem Parameter --split-chapters das Video auftrennen und bekommt einzelne Durchnummerierte Videos, anhand der Anzahl der Kapitelmarken.
Beispiel:

Code: Alles auswählen

yt-dlp yt-dlp  --split-chapters   -o  "chapter: %(section_number)s - %(section_title)s.%(ext)s"  "(url)"
Mich interessiert hinter (section_number) das kleine s.
Das ist die Nummerierung wie sie auch bei Musikalben üblich ist. Danach der Titel des Kapitels.(section_title).

Anscheinend (?) gibt das kleine s die Art der Nummerierung vor. Die Nummerierung beginnt hier mit diesem String, logisch, mit 1.
Aber ich möchte eine führende 0 bei den ersten 10 Ziffern, also 01.
Ich habe das mal so geschrieben 0%(section_number)s, ja, das geht, dann kommt aber immer die führende 0 und nicht nur bei den ersten 10 Ziffern.
Bei der Manpage vom yt-dlp steht das:

Code: Alles auswählen

Available only when using --download-sections and for chapter: prefix when using --split-chapters for videos with internal chapters:

section_title (string): Title of the chapter
section_number (numeric): Number of the chapter within the file
section_start (numeric): Start time of the chapter in seconds
section_end (numeric): End time of the chapter in seconds
Leider steht da bei section_number nur was von "numeric" da kann ich aber nix mit anfangen. Aber das kleine s muss doch was zu sagen haben.

Naja, wenn das vorgegeben ist kann ich natürlich nichts machen, Aber möglicherweise gibts da doch was das mir weiterhelfen könnte.

Re: Frage zu yt-dlp

Verfasst: Mittwoch 20. August 2025, 18:13
von maroco
Die Syntax entspricht laut Manpage von yt-dlp der Modulo-String-Formatierung von Python. Versuche es also mal so: Benutze für die Nummerierung statt dem ersten "s" (= einfache Stringkonvertierung) den Konvertierungstyp "d" für ganzahlige Werte und stelle ihm 02 voran, um eine zweistellige Ausgabe (ggf. mit führender Null) zu erzwingen:

Code: Alles auswählen

yt-dlp --split-chapters -o "chapter:%(section_number)02d - %(section_title)s.%(ext)s" "(URL)"
Edit: Im Befehl das Leerzeichen hinter "chapter:" entfernt, da sonst generierte Dateinamen unschön mit einem Leerzeichen beginnen.

Re: Frage zu yt-dlp

Verfasst: Mittwoch 20. August 2025, 18:33
von gosia
Hallo LaGGGer,
eine andere Variante zu der Antwort von maroco:
die Ziffern müssen direkt vor das s. Ich habe mal das ausprobiert:

Code: Alles auswählen

yt-dlp --split-chapters -o "%(section_number)02s" https://www.youtube.com/watch?v=5IwQRCKyf14
und erhalte sowas:

Code: Alles auswählen

'Gute-Nacht-Geschichten und Lieder mit der Maus - 001 Begrüßung von Armin [5IwQRCKyf14].mp4'
'Gute-Nacht-Geschichten und Lieder mit der Maus - 002 Geschichte: Gute Nacht, Willi Wiberg [5IwQRCKyf14].mp4'
'Gute-Nacht-Geschichten und Lieder mit der Maus - 003 Lied: Wo schlafen Bärenkinder [5IwQRCKyf14].mp4'
usw. bis

Code: Alles auswählen

'Gute-Nacht-Geschichten und Lieder mit der Maus - 016 Verabschiedung von Armin [5IwQRCKyf14].mp4'
bin mir aber nicht sicher, ob es das wäre, was Du möchtest.

viele Grüsse gosia

Re: Frage zu yt-dlp

Verfasst: Mittwoch 20. August 2025, 20:02
von maroco
Hallo ihr beiden,

wenn ich es richtig sehe, gosia, ließe sich Dein Befehl noch weiter vereinfachen, denn er gibt im Grunde die Standardkapitelbezeichnungen aus, die man auch mit einem schlichten

Code: Alles auswählen

yt-dlp --split-chapters "https://www.youtube.com/watch?v=5IwQRCKyf14"
erhält. :D

Ich habe mal meine obigen Variante auf das gleiche Video angesetzt und erhalte

Code: Alles auswählen

'01 - Begrüßung von Armin.webm'
'02 - Geschichte: Gute Nacht, Willi Wiberg.webm'
'03 - Lied: Wo schlafen Bärenkinder.webm'
[...]
'16 - Verabschiedung von Armin.webm'
Die Frage, LaGGGer, ist natürlich, ob die Unterschlagung des Video-Gesamttitels Deiner Vorstellung wirklich entspricht.

Hat übrigens jemand eine Erklärung dafür, warum abhängig vom Befehl mal mp4-Dateien (gosias Variante) und mal webm-Dateien (meine Variante) generiert werden?

Viele Grüße
maroco

Re: Frage zu yt-dlp

Verfasst: Mittwoch 20. August 2025, 21:10
von gosia
Hallo maroco,
maroco hat geschrieben: Mittwoch 20. August 2025, 20:02 er gibt im Grunde die Standardkapitelbezeichnungen aus
danke für den Hinweis, aber irgendwie wird es hier sehr interessant. Nicht nur, das ich weiterhin mp4-Dateien erhalte, auch das Resultat sieht etwas anders aus als deines:

Code: Alles auswählen

yt-dlp --split-chapters "https://www.youtube.com/watch?v=5IwQRCKyf14"
gibt mir auch den Titel aus:

Code: Alles auswählen

'Gute-Nacht-Geschichten und Lieder mit der Maus - 001 Begrüßung von Armin [5IwQRCKyf14].mp4'
'Gute-Nacht-Geschichten und Lieder mit der Maus - 002 Geschichte: Gute Nacht, Willi Wiberg [5IwQRCKyf14].mp4'
...
und die Nummerierung ist auch dreistellig. Könte das an der Version liegen?

Code: Alles auswählen

yt-dlp --version
2025.06.30
viele Grüsse gosia

Re: Frage zu yt-dlp

Verfasst: Mittwoch 20. August 2025, 21:33
von maroco
Hallo gosia,

ups, da hatte ich mich wohl missverständlich ausgedrückt. Ich wollte aussagen, dass Dein Vorschlag

Code: Alles auswählen

yt-dlp --split-chapters -o "%(section_number)02s" https://www.youtube.com/watch?v=5IwQRCKyf14
im Ergebnis völlig identisch ist mit dem simplen

Code: Alles auswählen

yt-dlp --split-chapters https://www.youtube.com/watch?v=5IwQRCKyf14
-> also Gesamttitel und dreistellige Zählung.

Mit „meine obigen Variante“ hatte ich hingegen den Befehl aus meinem ersten Post gemeint:

Code: Alles auswählen

yt-dlp --split-chapters -o "chapter:%(section_number)02d - %(section_title)s.%(ext)s" "https://www.youtube.com/watch?v=5IwQRCKyf14"
-> zweistellige Zählung ohne Gesamttitel.

Übrigens habe ich inzwischen festgestellt, dass, jedenfalls bei mir, yt-dlp offenbar webm-Dateien ausgibt, wenn ich im Befehl die Video-URL quote, andernfalls mp3. (Meine yt-dlp-Version = 2025.08.20)

Viele Grüße
maroco

Re: Frage zu yt-dlp

Verfasst: Mittwoch 20. August 2025, 22:45
von gosia
Hallo maroco,
ach so, alles klar.
maroco hat geschrieben: Mittwoch 20. August 2025, 21:33 Übrigens habe ich inzwischen festgestellt, dass, jedenfalls bei mir, yt-dlp offenbar webm-Dateien ausgibt, wenn ich im Befehl die Video-URL quote, andernfalls mp3
naja, das schiebe ich jetzt mal auf die Version ;) Jedenfalls kann ich das nicht nachvollziehen. Egal was ich mache, immer kommt mp4 raus. Vielleicht liegt es ja auch an einer Konfigurationsdatei von yt-dlp, da gibt es ja genug Möglichkeiten.

viele Grüsse gosia

Re: Frage zu yt-dlp

Verfasst: Donnerstag 21. August 2025, 09:16
von LaGGGer
Hallo ihr beiden.
Ich komme am besten damit hin:

Code: Alles auswählen

yt-dlp --split-chapters -o "chapter:%(section_number)02d - %(section_title)s.%(ext)s" "(URL)"
Also die Version mit 02d. Hinweis: wenn man 03d schreibt, wird das dreistellig.

Mein ganzer Befehl sieht dann so aus, mit Pfadangabe ~/ytdl/kapitel/, Qualität, Video Type & Audio Type.
Die getrennten, nummerierten Kapitel mit Kapitelnamen, kommen dann in ein Verzeichnis das den Titel des Videos erhält, in dem Fall hier:
~/ytdl/kapitel/Gute-Nacht-Geschichten und Lieder mit der Maus

Code: Alles auswählen

yt-dlp yt-dlp  --split-chapters -f 'bestvideo[ext=mp4]+bestaudio[ext=mp3]/best[ext=mp4]/best' -o"chapter:~/ytdl/kapitel/%(title)s/%(section_number)02d - %(section_title)s.%(ext)s"  "https://www.youtube.com/watch?v=5IwQRCKyf14"
So wollte ich es haben, danke für eure Hilfe.