Hallo Bei den Kommandozeilenprogramm yt-dlp ("Nachfolger" bzw. funktionierende Variante -oder wohl richtig "Fork"?- von yt-dl) kann man sogenannte Templates für heruntergeladen Videos erstellen. Darin wird vorgegeben wie die heruntergeladen Mediendatei (Video bzw. reines Audio) textlich dargestellt werden soll, es kann z.B. der Kanalname, der Titel und das Erstelldatum der Mediendatei usw aus der Quelle (z.B. YouTube) übernommen werden. und in beliebiger Abfolge mit eigenen festen Textbestandteilen "gemischt" werden. Eine sehr schöne Sache, die wenn man sie mal verstanden hat einfach Anwenden kann. Aber was passiert da eigentlich, was bedeuten all die Formatierungszeichen, Klammern usw.? Das wird leider in der "Anleitung" nicht erklärt, das es sich wohl um eine eigene Übergreifende "Programmiersprache" handelt die yt-dlp einfach verwendet? (Reine Vermutung, wird in der "Anleitung" irgendwie angedeutet) Nun zur Sache: So ein Template (Vorlage) sieht z.B. so aus: -o "%(title)s.%(ext)s" Das -o ist ein "Befehl" von yt-dlp und title, ext (und viele andere mehr) sind vorgegebene Variablen. Was (warum) "sind" aber die Anführungszeichen, die Klammern (zum Gruppieren?), das Prozentzeichen, das s direkt hinter der Klammer und einiges mehr bei umfangreicheren Templates? Dazu steht leider überhaupt nichts in der "Anleitung" bzw. wird auch bei den (leider wenigen) externen Erklär- und Ableitungsseiten bzw. Videos zu gesagt. Man (ich) kann es zwar Anwenden und weis was man nachahmen muß - die eigentliche Funktion (Der Medienname wird nach seinen Wunsch erstellt) ist gegeben, aber man (ich) als einfacher Anwender, für den die Hürde Kommandozeile und das Denken dahinter, schon heftig genug war, weis nicht was ich den da genau und warum mache. Aber genau das möchte ich, wenigstens grob, verstehen.
Darius schrieb: > Was (warum) "sind" aber die Anführungszeichen, die Klammern (zum > Gruppieren?), das Prozentzeichen, das s direkt hinter der Klammer und > einiges mehr bei umfangreicheren Templates? Die Anführungszeichen brauchst du, damit das Ding nicht in mehrere Teile zerfällt, wenn eins der ersetzten Attribute ein Leerzeichen enthält. Das Prozentzeichen wandelt offensichtlich die Sonderfunktion ein, dass danach ein Attribut ersetzt wird. Wenn der Name des Attributs aus mehreren Zeichen besteht (wird wohl immer so sein ;-), dann brauchst du die Klammern, damit der Parser weiß, wo der Name des Attributs wieder aufhört. Das ist jetzt alles nur vom Gefühl her, ohne dass ich da irgendwo in deren Code nachgeschaut hätte. Mein Gefühl sagt mir, dass das "s" für eine String-Konvertierung steht – eine numerische Konvertierung (vermutlich sowas wie "d" für dezimal oder "x" für hexadezimal) wird ja eher nicht das sein, was du brauchst. ;-)
https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#output-template Dort ist alles ausführlich beschrieben.
Darius schrieb: > %(title)s.%(ext)s Sieht für mich nach einer Formatierung ähnlich der Formatierung für printf in C aus.
Norbert schrieb: > Dort ist alles ausführlich beschrieben. Und bestätigt auch meine Vermutung, dass man mit "d" eine numerische Konvertierung machen kann. ;-)
Jörg W. schrieb: > Und bestätigt auch meine Vermutung, dass man mit "d" eine numerische > Konvertierung machen kann. ;-) Yep. Was mich immer wieder verwundert, ich habe zehn Sekunden mit EnteEnteGehGeh gebraucht um die vollständige Beschreibung zu finden. Aber ich bin auch schon älter und falle nicht mehr in den Bereich der von der aktuellen ICILS beobachteten Gruppe.
:
Bearbeitet durch User
Hallo Vielen dank an Jörg W. - deine Erklärung ist in den wirklich wichtigen Punkten für mich verständlich und vor allem wirklich hilfreich. Was Attribute sind verstehe ich sogar so etwa (Aus andere Zusammenhängen - und da hat es lange gedauert bis es Klick gemacht hatte, das alles hat so wenig mit Alltagssprache und auch Praktische Hobbyelektronik zu tun...) Was ein Praser ist... Na ja - eine sehr Vage (und grobe wahrscheinlich zu einfache) Vermutung liegt vor... ;-) Norbert schrieb: > https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#output-template > > Dort ist alles ausführlich beschrieben. Sorry, aber als ich dort angekommen war habe ich schnell aufgegeben und an Anwendungsseiltiger wichtiger Stelle, (Es geht ja letztendlich um die Mediendaten lokal nach seinen Vorgaben zu sichern und dann zu genießen - so ein Programm, egal wie gut es ist, soll ja kein Selbstzweck sein) gezielt weitergelesen. Die "Erklärung" und "Anleitung" an der angegebenen Stelle ist doch was von Experten für andere Kommandozeilenjünger mit eigener Programmiererfahrung... Matthias S. schrieb: > Sieht für mich nach einer Formatierung ähnlich der Formatierung für > printf in C aus. Jörg W. schrieb: > Und bestätigt auch meine Vermutung, dass man mit "d" eine numerische > Konvertierung machen kann. ;-) Genau diese Erkenntnisse zeigen mir das die Erklärung und Anleitung sich an relative Fachleute (vorgebildete, das denken dahinter verinnerlicht - kein Allgemeinwissen) wenden. Schön für Matthias, Jörg und alle die dieses sehr spezielle Vorwissen haben..., blöd für "Normale" Anwender. -Wobei Kommandozeilennutzng schon selbst nicht mehr das "Normal" ist, sondern man damit schon selbst bei der Mehrheit der Anwender von Software als "Experte" gilt... ;-) Leider haben die "Anleitungsschreiber" (oft wohl irgendeiner aus den Entwicklerteam der zu tief in der Sache und den Fachdenken steckt?!) -vergessen haben wer vorrangig die eigentliche Funktionalität des Programms nutzen will und woher sie selbst mal hergekommen sind => Normale Anwender halt... Extrem habe ich das (es ist so jede Überheblichkeit ist da nicht angebracht) Arduino Libarys kennengelernt: Von der absoluten unverständlichen in Fachchinesisch (oder "am besten" gar keine) geschriebenen Dokumentation, bis zur eigenen Homepage, sehr vielen Beispielen und Videotutorials die sich alle an Normale Nutzer und Anwender wenden... Norbert schrieb: > Was mich immer wieder verwundert, ich habe zehn Sekunden mit > EnteEnteGehGeh gebraucht um die vollständige Beschreibung zu finden. Und was für eine Beschreibung? Mit meinen Wissen konnte ich nur sehr allgemeine Suchbegriffe und Formulierungen verwenden - entsprechend waren die Ergebnisse (zu Speziell, zu Allgemein oder wieder zurück zur GitHub Seite mit der "Anleitung" und den ""Erklärungen" die mir schon, im Startbeitrag angesprochenen Punkt, so gar nicht gebracht haben). Gute und vor allem Allgemeinverständliche (der Knackpunkt) Beispiele im diesem gesamten Umfeld, Schritt für Schritt vorrechnen bei Mathematischen Problem -gerade in der "härteren" E-Technik(andere Baustellen, aber vom Grundsatz her das gleiche Problem), verständliche Erklärung von Programmiersprachen (die Details, Fachbegriffe, Bedeutungen) sind insgesamt sehr selten.
:
Bearbeitet durch User
Darius schrieb: > Genau diese Erkenntnisse zeigen mir das die Erklärung und Anleitung sich > an relative Fachleute (vorgebildete, das denken dahinter verinnerlicht - > kein Allgemeinwissen) wenden. Das widerspricht sich mit Darius schrieb: > Eine sehr schöne Sache, die wenn man sie mal verstanden hat einfach > Anwenden kann.
Darius schrieb: > -Wobei Kommandozeilennutzng schon selbst nicht mehr das "Normal" ist, Das hat aber mit einer Kommandozeile erstmal primär nichts zu tun. Auch, wenn du sowas in eine GUI einpacken willst, wenn du mit der Gestaltung deiner Dateinamen flexibel sein willst, brauchst du irgendeine Form von Beschreibungssprache. Ansonsten gibt's halt nur die starren Muster, die sich der Ersteller der GUI vorgestellt hat. In einer GUI könntest du höchstens noch sowas wie Dropdown-Menüs anbieten, damit man die Attribute aus einer Liste einfügen kann.
Darius schrieb: > Die "Erklärung" und "Anleitung" an der angegebenen Stelle ist doch was > von Experten für andere Kommandozeilenjünger mit eigener > Programmiererfahrung... Weder die Experten noch ihre Expertise sind vom Himmel gefallen, sondern das Ergebnis eines Lernprozesses. Daraus folgt: man kann diese Dinge erlernen, das ist weder Hexenwerk noch Raketenwissenschaft. Wer man in Norberts Link [1] nicht schon beim ersten Satz aufgibt, findet bereits im zweiten Satz "navigate me to examples" einen weiteren Verweis auf eine Vielzahl von Beispielen unter [2]. Damit kommt auch ein Laie zum Ziel, wenn er interessiert genug ist, zehn Minuten Lebenszeit zu investieren. Und wenn er nicht interessiert genug ist, dann war es auch nicht wichtig genug, und auch damit ist alles fein. :-) [1] https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#output-template [2] https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#output-template-examples
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.