[gelöst] youtube-dl arbeitet nicht in cron

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
Benutzeravatar
Lalle75
Beiträge: 83
Registriert: 25.10.2015 17:41:00
Wohnort: Ruhrgebiet

[gelöst] youtube-dl arbeitet nicht in cron

Beitrag von Lalle75 » 20.11.2020 15:52:41

Hallo zusammen.
Auf meinem Raspberry habe ich seit Jahren ein über cron getriggertes sh-Skript laufen, welches mir alle paar Stunden Videos von Youtube mittels youtube-dl herunter lädt.
Das funktionierte immer sehr gut. Ich mache regelmäßig Updates des Programms (aktuelle Version 2020.11.19).

Vor ein paar Tagen hatte sich die Flash-Karte meines Raspberrys verabschiedet, und ich mußte neu installieren. Soweit läuft auch alles. Auch die Skripte laden von Youtube alles runter... Aber nur, wenn ich sie manuell ausführe.

Ich starte dieselben Skripte mit denselben Kommandos in cron. Das Kommando lautet

Code: Alles auswählen

youtube-dl -f 18 "http://www.youtube.com/watch?v=etXrZaCJDSM"
Aber ich erhalte bei cron nur die Meldung

Code: Alles auswählen

ERROR: etXrZaCJDSM: YouTube said: Invalid parameters.
Führe ich das Kommando direkt über die Shell aus:

Code: Alles auswählen

[youtube] etXrZaCJDSM: Downloading webpage
[download] Destination: Linux Mint Das bessere Windows 10 Bitte umsteigen-etXrZaCJDSM.mp4
[download] 100% of 58.17MiB in 00:08
Ich habe bereits die Lese-/Schreibrechte und Eigentümer der beteiligten Programme und Ordner geprüft. Alles normal. Ich habe auch youtube-dl direkt von https://yt-dl.org/downloads/latest/youtube-dl geladen, aber es gab keine Änderung.

Habt Ihr eine Idee?
Zuletzt geändert von Lalle75 am 21.11.2020 15:03:03, insgesamt 1-mal geändert.
Gruß,
Der Lalle

Benutzeravatar
Lalle75
Beiträge: 83
Registriert: 25.10.2015 17:41:00
Wohnort: Ruhrgebiet

Re: youtube-dl arbeitet nicht in cron

Beitrag von Lalle75 » 21.11.2020 14:14:36

Einen Teil konnte ich mir mittlerweile selbst erklären. youtube-dl wird nicht im cron sauber ausgeführt, wenn nicht sudo vorangestellt wird, also

Code: Alles auswählen

sudo -u <aktueller User> youtube-dl -f 18 "http://www.youtube.com/watch?v=etXrZaCJDSM"
Ich habe allerdings in der /etc/sudoers die Benutzung von youtube-dl explizit erlaubt mit:

Code: Alles auswählen

<User>  ALL= NOPASSWD: /usr/bin/youtube-dl
Dennoch klappt's nicht.
Gruß,
Der Lalle

Benutzeravatar
Lalle75
Beiträge: 83
Registriert: 25.10.2015 17:41:00
Wohnort: Ruhrgebiet

[gelöst] Re: youtube-dl arbeitet nicht in cron

Beitrag von Lalle75 » 21.11.2020 15:02:37

Ok, ganze Kommando zurück. Ich habe herausgefunden, daß zwei Installationen von youtube-dl parallel auf dem Pi installiert waren. Die eine, alte Version des Pakets in /usr/bin, die andere, neuere Version aus manueller Installation in /usr/local/bin.

Cron kann wegen PATH nur auf /usr/bin zugreifen und hat dementsprechend nur die alte Version genutzt, um aktuelle Videos zu laden, was natürlich nicht geklappt hat.

Ich hab jetzt das alte Paket deinstalliert, das Programm in den korrekten Pfad geschoben, und jetzt klappt's.
Gruß,
Der Lalle

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: [gelöst] youtube-dl arbeitet nicht in cron

Beitrag von tobo » 21.11.2020 15:24:26

Trotzdem gibt man im Cron den qualifizierten Pfad an, also z.B. /usr/bin/youtube-dl -f18 usw.. Das gehört in die Crontab des Users - der normale Benutzer (nicht root) - öffnet mit crontab -e, zum Editieren. Laufen sollte es als normaler Benutzer ohne Schnörkel, benötigt also kein sudo -u USER vorangestellt. Wo er die Datei dann hinschreibt (ohne z.B. ein explizites -o) ist klar oder so gewollt oder anderswo geregelt?

Antworten