[Linux Script] Automatischer YouTube Trailer Download

  • n kaltes Bier bitte, nach Möglichkeit ein Zwickl, morgen um 10 Uhr bei mir im Büro xD

    NAS: Gehäuse: Jonsbo G3, Mainboard: MSI B460M PRO, CPU: Intel Pentium G6400, OS: OMV 6

    Client: NVIDIA Shield Pro 2019

  • Genau, ich mach die Arbeit und darf dann auch noch für das Bier aufkommen. So is recht :)

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Genau, ich mach die Arbeit und darf dann auch noch für das Bier aufkommen. So is recht :)

    Ich glaube dieses Mal komme ich fürs Bier auf ... schau mal in deinem PayPal-Konto ;-).

    Aber bevor wir jetzt aufhören. Wie genau bist du eigentlich vorgegangen, damit der/die lokalen Trailer in der Nfo-Datei erfasst und entsprechend auch durch Kodi berucksichtigt werden? Ich habe gerade mal einen Film über folgende Funktion angestoßen:

    doch leider wird dadurch der Zeileneintrag in der Nfo-Datei:
    <trailer>plugin://plugin.video.youtube/?action=play_video&videoid=Ryre2VrJVYg</trailer>

    nicht mit dem internen Pfad ersetzt. Lokaler Trailer liegt sauber im Verzeichnis.

    Dem eigentlichen Tool ist nichts mehr hinzuzufügen! Jetzt ist es wirklich perfekt und wird sicher beim nächsten Kodi-Newsletter "nochmal erwähnt ;-).

    Jetzt doch eine Frage, weißt du wie lange die Änderungen in TVDB dauern?
    Hab ja bei dem Film:

    Code
    Movie Path: /volume1/DiskStation/- Filme/3096 Tage (2013)
    Processing file: 3096 Tage (2013).nfo
    TheMovieDB: https://www.themoviedb.org/movie/166666
    YouTube: https://www.youtube.com/watch?v=kaSFaLQD3Dk
    [youtube] kaSFaLQD3Dk: Downloading webpage
    [youtube] kaSFaLQD3Dk: Downloading video info webpage
    ERROR: This video contains content from Constantin Film, who has blocked it on copyright grounds.

    ein Trailer entfernt. Auf TVDB waren zwei vorhanden und der eine ging nicht. Somit ist auf der Seite nur noch einer vorhanden, aber irgendwie ist die API, bzw. Datenbank nicht gleich aktualisiert. Siehst du den bei dem Film auch nur noch einen funktionierenden Trailer?
    Wenn ja, kann ich den internen Prozess irgendwie positiv beeinflussen?

    Viele Grüße
    Seger

  • @Seger

    Uh, edler Spender. Mein Feinkostgewölbe dankt.

    In Emby reicht es aus, dannach oder täglich nen Library Scan laufen zu lassen. Der Pfad in der nfo bleibt dabei unangetastet. Emby, Emby 4 Kodi und EmbyCon haben ne seperate Flag (localTrailer), welche priorisiert gehandhabt wird.

    Und du meinst TMDB ;) Dauert ein wenig. Meistens 1-2 Stunden bei der freien API.

    @Nevrion
    Rechtschreibgore und so

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Gerne gerne @sualfred!

    Sag mal, momentan wird ja nach dem Download das Ursprungsdatum der Datei gesetzt, über welche -Option kann ich dem Downloader (oder curl, jg) mitteilen, dass er den Zeitstempel des tatsächlichen "herunterladens" nimmt?

    Vielleicht ist das wieder nichts für alle, aber für mich wäre es wichtig, da ich weiterführende Skripte habe, die nach Erstellungsdatum/Änderungsdatum einen Abgleich machen und dann entsprechenden neuen Datenbestand ab Datum auf ein externes Laufwerk schiebt ;-).
    Sozusagen alles neue ab Datum X auf Festplatte schieben.

    Edit bzw. p.s. seit gestern sind bereits 8 Trailer von mir abgearbeitet ;-)...gehe jetzt jeden Tag meine Sammlung durch ;-).

    Viele Grüße
    Seger

    Einmal editiert, zuletzt von Seger (20. Juni 2018 um 14:09)

  • @Seger

    https://github.com/sualfred/perso…0a24e49d929f0ea

    Probier das mal. Ist ungetestet, sollte aber funktionieren.

    Im ersten Test hat es "soweit" funktioniert, das "Erstelldatum" wurde gesetzt aber leider nicht das benötigte "Änderungsdatum" (Modify Time (mtime))
    -> hab mich aber auch nicht klar ausgedrückt!

    http://linux-club.de/wiki/opensuse/…ime_.28mtime.29

    http://linux-club.de/wiki/opensuse/…ion_neu_gesetzt
    (lt. der Seite wird das in der Datei nur geändert über ein zusätzliches Echo)


    Code
    touch -m 
    (und dann irgendwie datum vom jeweiligen Download - wahrscheinlich mit einem zusätzlichem Datumsabruf!?!)

    Kannst ja nochmal schauen, ob du es hingebaut bekommst :-), ich derweil pflege weiter Trailer ;) weitere 20 sind dazu gekommen.

    Danke und viele Grüße
    Seger

  • Echo geht nicht. Das würde etwas in die Datei schreiben. Nicht gerade schön für ein Video.

    Aber jegliche Zeit wird geupdated, habs gerade getestet (atime ctime mtime):

    Code
    root@serverfred:/mnt/omv1/omv1/filme/2 Fast 2 Furious (2003)# stat 2\ Fast\ 2\ Furious\ \(2003\)\ 1080p-trailer.mp4 
      Datei: „2 Fast 2 Furious (2003) 1080p-trailer.mp4“
      Größe: 6515868        Blöcke: 12728      EA Block: 4096   reguläre Datei
    Gerät: 841h/2113d       Inode: 238551382   Verknüpfungen: 1
    Zugriff: (0666/-rw-rw-rw-)  Uid: (    0/    root)   Gid: (  100/   users)
    Zugriff    : 2018-06-20 17:55:49.413415407 +0200
    Modifiziert: 2018-06-20 17:55:44.081403520 +0200
    Geändert   : 2018-06-20 17:55:44.081403520 +0200
     Geburt    : -

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Echo geht nicht. Das würde etwas in die Datei schreiben. Nicht gerade schön für ein Video.

    Aber jegliche Zeit wird geupdated, habs gerade getestet (atime ctime mtime):

    Code
    root@serverfred:/mnt/omv1/omv1/filme/2 Fast 2 Furious (2003)# stat 2\ Fast\ 2\ Furious\ \(2003\)\ 1080p-trailer.mp4 
      Datei: „2 Fast 2 Furious (2003) 1080p-trailer.mp4“
      Größe: 6515868        Blöcke: 12728      EA Block: 4096   reguläre Datei
    Gerät: 841h/2113d       Inode: 238551382   Verknüpfungen: 1
    Zugriff: (0666/-rw-rw-rw-)  Uid: (    0/    root)   Gid: (  100/   users)
    Zugriff    : 2018-06-20 17:55:49.413415407 +0200
    Modifiziert: 2018-06-20 17:55:44.081403520 +0200
    Geändert   : 2018-06-20 17:55:44.081403520 +0200
     Geburt    : -

    Ich bin so blöd .... läuft!!! :) :) :) ... aber die Erklärung oben ist auch geil!
    -> Hab in meinem alten Testordner geschaut und nicht im Produktivstem.

    Geh jetzt mal an die Sonne, tut mir sicher gut!

    Danke und viele Grüße
    Seger

  • Hey an alle,

    das Skript läuft total genial und ich bin fleißig dabei über http://www.TMDB.org die fehlenden Filme zu überprüfen bzw. neu zu setzen. Bin bereits bei 80 Trailern angelangt.

    Nun stelle ich mir die Frage, ob wir hier im Board vielleicht ein Gemeinschaftsprojekt draus machen könnten. Dank des „Fehlerlogs“ haben wir ja jetzt eine schöne Liste bei welchen Film er nichts gefunden hat und den richtigen Link zum Film. Hab jetzt eine große Liste vorliegen. Meinst du @sualfred/ ihr man kann das übers Board steuern, dass sich vielleicht einige Leite ein paar Links vornehmen und man gemeinsam die links abarbeitet. Ich weiß, dass man natürlich nicht allen Filmen was zuordnen kann, aber da sind sicher einige Drin.

    Was haltet du/ihr von der Idee und habt ihr vielleicht eine Idee wie man das angehen könnte? Oder glaubt ihr, das ist schwer umsetzbar und ich muss mich alleine durchkämpfen...

    Durch den Link geht es einigermaßen „schnell. Die Seite hat auch über die Editieren/Hinzufigen Funktion eine leichte Handhabung. Würden wir ja alle von partizipieren.

    So was meint ihr.

    Viele Grüße
    Seger

  • Das Script ist eher ein Nischenprodukt für wenige und den meisten sind lokale Trailer egal.

    Prinzipiell sollte jeder auf themoviedb, tvdb, fanart.tv, musicbrainz, musicdb, etc mitpflegen.

    Ich glaube ich baue allein für fanart.tv pro Woche mindestens 5 Artworks wie Logos, Landscapes etc.

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Moin @sualfred,

    ich stelle seit der Umstellung meiner Bibliothek (inkl. der Umlaute wie z.B. Das Mädchen am Ende der Strasse (1976) [1080p]) fest, dass das Skript sich merkwürdig verhält. In dem Fall ist es so, dass der Trailer in dem richtigen Verzeichnis erstellt wurde und zusätzlich ein Ordner erstellt wurde bei dem das "ä" fehlt: Das Mdchen am Ende der Strasse (1976) [1080p]. So wie es aussieht kommt es nicht ganz mit den Umlauten zurecht, ist dir das schon mal aufgefallen und hast du dafür eine Lösung in deinem Skript?

    Dann habe ich noch eine Frage, kannst du vielleicht mal deine Einstellungen posten, wie du auf die lokalen Trailer zugreifst innerhalb deines Skins. Ich würde gern vom AddonModus auf direkte Pfade stellen und irgendwie die Funktion das er vor dem Abspielen eines Hauptfilmes einen Trailer abspielt wechseln. Doch alle Addons setzen immer darauf, dass die Trailer an einem Ort sein müssen und nicht wie im Skript eingestellt im Hauptordner. Oder habe ich da eine Einstellung nicht gesehen bzw. einen Denkfehler.

    CinemaVision oder wie es heißt hatte ich schon mal ausprobiert, aber irgendwie auch nicht richtig zum laufen bekommen.

    Viele Grüße
    Seger

  • Editier das Script mal und entferne "--restrict-filenames" aus dieser Zeile:

    Code
    DL=$(youtube-dl -f mp4 "https://www.youtube.com/watch?v=$ID" -o "$DIR/$FILENAME-trailer.%(ext)s" --restrict-filenames)

    Gib bitte Feedback dann ob es das Problem behoben hat.


    Kodi greift auf sowas zu, nicht ein Skin. Kodi und Emby erkennen selbstständig ob ein lokaler Trailer vorliegt und behandelt den bevorzugt.

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Code
    DL=$(youtube-dl -f mp4 "https://www.youtube.com/watch?v=$ID" -o "$DIR/$FILENAME-trailer.%(ext)s")

    Hey du,

    leider führte die neue Zeile bzw. das weglassen der Option" --restrict-filenames" nicht zum gewünschten Erfolg. Sieht so aus, als ob DL nicht mit Umlauten umgehen kann. Das Skript erstellt wie gesagt 2 Dateien, eine im richtigen Ordner mit Umlaut (dieser Trailer ist aber eine 0kb.mp4 Datei " aber mit der richtigen Bezeichnung"- das ist komisch) und eine Datei in einem ganz neuen Ordner ohne Umlaut.

    zum 2 Punkt muss ich wohl nachdem Umstellen vom AddonModus (Emby for Kodi) auf DirektPfad erst meine Datenbank (Kodi) neu aufsetzen damit Kodi es schnallt. Sobald ich das gemacht habe, werde ich mich nochmal dem Addon widmen.

    EDIT: Liegt es vielleicht am Find Befehl? https://www.synology-forum.de/showthread.htm…ll=1#post604033

    Viele Grüße
    Seger

    Einmal editiert, zuletzt von Seger (13. August 2018 um 21:58) aus folgendem Grund: Edit

  • Bei mir gibts mit Umlauten keine Probleme auf meinem Debian System

    Code
    Movie Path: /sharedfolders/share/filme/Transformers - Ära des Untergangs (2014)
    Processing file: Transformers - Ära des Untergangs (2014) h264-1080p Atmos TrueHD-Object Based 8ch.nfo
    TheMovieDB: https://www.themoviedb.org/movie/91314
    YouTube: https://www.youtube.com/watch?v=gAKU-rQBMxo
    [youtube] gAKU-rQBMxo: Downloading webpage
    [youtube] gAKU-rQBMxo: Downloading video info webpage
    [youtube] gAKU-rQBMxo: Extracting video information
    [download] Destination: /sharedfolders/share/filme/Transformers - ra des Untergangs (2014)/Transformers - ra des Untergangs (2014) h264-1080p Atmos TrueHD-Object Based 8ch-trailer.mp4

    Im Log sind zwar die Umlaute ausgelassen, aber werden korrekt genutzt.


    Meine youtube-dl version: 2018.04.25 (youtube-dl --version)

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Das ist ja merkwürdig?!?

    Meine Version ist die folgende:
    youtube-dl --version
    2018.06.18

    Kann ich mit einem bestimmten Befehl genau diene Version installieren um den Fehler auszuschließen? -Nicht das es an meiner Version liegt.
    Blöde Frage, aber Linux ist dann leider nicht ganz so meine Welt.

    Meine 2 Vermutung ist das meine Linux Distribution irgendwie mit UTF-8 durcheinander kommt, fällt dir da noch was ein?

    Danke und viele Grüße
    Seger

  • Code
    Movie Path: /sharedfolders/share/filme/Transformers - Ära des Untergangs (2014)
    Processing file: Transformers - Ära des Untergangs (2014) h264-1080p Atmos TrueHD-Object Based 8ch.nfo

    Wie sehen die ersten 2 Zeilen in deiner Log aus? Die sind von mir ausgegeben und haben nichts mit youtube-dl zu tun.


    Mit apt-get und apt-cache (keine Ahnung ob bei dir diese Paketmanager vorhanden sind) kannst du eine Version erzwingen:

    Code
    root@serverfred:~# apt-cache policy youtube-dl
    youtube-dl:
      Installiert:           2018.04.25-1
      Installationskandidat: 2018.04.25-1
      Versionstabelle:
     *** 2018.04.25-1 100
            100 /var/lib/dpkg/status
         2017.05.18.1-1 500
            500 http://ftp.de.debian.org/debian stretch/main amd64 Packages
    root@serverfred:~# apt-get install youtube-dl=2017.05.18.1-1


    Edit:

    Du hast ja nen Synology NAS, da müsstest es manuell so hinbekommen:
    (Keine Garantie)

    Code
    rm /usr/local/bin/youtube-dl
    
    
    wget https://github.com/rg3/youtube-dl/releases/download/2018.04.25/youtube-dl -O /usr/local/bin/youtube-dl
    
    
    chmod a+x /usr/local/bin/youtube-dl

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

    2 Mal editiert, zuletzt von sualfred (13. August 2018 um 22:57)

  • Bin leider ein aboluter Linux Anfänger und kann eigentlich nur nach Anleitungen vorgehen, aber dein Skript klingt sehr interessant! Sollte ja eigentlich auch möglich sein dieses direkt auf einem Asustor NAS laufen zu lassen (sagt man das überhaupt so? )

  • Ich habe jetzt mal auf die aktuelle Version ein Update gemacht und teste es mal, danach gehe ich mal auf deine Version.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!