Raspberry Pi als Upload Server nutzen [Gemeinsam den Fehler finden]

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Raspberry Pi als Upload Server nutzen [Gemeinsam den Fehler finden]

    Anzeige
    Hey Leute,

    ich habe hier schon des öfteren Anfragen zum Upload mit einem RasPi gesehen. Ich habe ein Tool/Script gefunden mit dem das sehr gut gelöst zu sein scheint. Das Script überwacht einen USB Stick und lädt die Videos hoch. Sogar mehrere Kanäle sollen gehen. Jedoch komme ich am Ende nicht weiter da die Authentifizierung fehlschlägt. Ich hoffe ein paar von euch können mir da helfen bzw. wir finden den Fehler gemeinsam.

    Das Script kommt von computer-dungeon.com/ und nennt sich "Raspberry Pi – Video Upload Server". Das sind 5 "einfache" Schritte um den RasPi uploadfähig zu machen. Das ganze ist auf Englisch, daher kann es sein das ich evtl. schon am Anfang etwas falsch mache.

    Ich versuche das Tutorial nach bestem Wissen und Gewissen zu Übersetzen.

    Original Anleitung: computer-dungeon.com/raspberry-pi-video-upload-server/
    Github: github.com/mox386/VidUploadServer

    -----------------------------

    Zuerst clonen wir das Github auf den Pi:

    Quellcode

    1. cd ~
    2. git clone https://github.com/mox386/VidUploadServer.git



    Dann führen wir das installations Script aus das alle nötigen Daten lädt (Python, Pip, Chromium)

    Quellcode

    1. cd ~/VidUploadServer
    2. ./install


    Das Script benötigt das httplib2 Module, installiert es aber nicht mit. Das müssen wir auch noch machen.

    Quellcode

    1. pip install httplib2


    Ab jetzt wird es etwas Haarig. Wir benötigen von Google ein Authentifizierungs Token. Wie man das macht habe ich aus dem Github von oben entnommen. Ihr müsst die nächsten Schritte von eurem Account machen mit dem ihr hochladen wollt.

    1. Geht auf console.developers.google.com/project
    2. Klicke auf Projekt erstellen. Ihr könnt es beliebig benennen
    3. Im neuem Fenster klickt ihr links auf APIs und Authentifizierung -> APIs
    4. Klickt auf Youtube Data API und aktiviere diese
    5. Klickt im Menü links jetzt auf Zugangsdaten
    6. Erstelle eine neue Client ID und wählt Installierte Anwendung aus
    7. Im neuem Fenster vergebt ihr nochmals einen Namen (ist wieder egal welchen) und klickt auf speichern
    8. Im Dialog wählt ihr Installierte Anwendungen und dann Sonstige

    Die ClientID laden wir als JSON Datei herunter.

    Jetzt braucht ihr den USB Stick. Steckt ihn an euren PC und erstellt einen Ordner der euren Kanalnamen trägt. Dort kopiert ihr die JSON Datei rein.
    Dann kommt der Stick an den RasPi.
    Wie ihr einen USB Stick in RasPi mountet könnt ihr hier lesen.

    Wechselt in eurem RasPi wieder in den VideoUpload Ordner und führt das Script zum anlegen des Kanals aus.

    Quellcode

    1. cd ~/VidUploadServer
    2. ./NewChannel


    Als erstes fragt er euch nach dem Namen des Kanals. Dieser muss zwingend die gleiche Schreibweise haben wie der Ordner auf dem USB Stick!

    Dann werdet Ihr gefragt für welche Plattform er den Kanal Anlegen soll:

    1. Youtube
    2. vimeo
    3.Dailymotion

    Natürlich für 1 Youtube

    Jetzt sollte weiter Oben sowas stehen wie:

    Quellcode

    1. Youtube VidUploadServer channel <Kanalname> being created.
    2. Grabbing Client_ID and Client_Secret from USB drive '.json' file in the <Kanalname> folder.


    Ist das nicht der Fall, dann hat der Ordner eine andere Schreibweise oder dein Stick ist nicht gemountet.
    Das dumme an dem Script, es macht trotzdem weiter.

    Sollte irgendwas nicht funktioniert haben klickt das Script durch und führt folgenden Befehl aus

    Quellcode

    1. ./RemoveChannel


    Ihr werdet Aufgefordert den Kanalnamen einzutragen und das wars dann.

    Sollte aber alles geklappt haben geht es weiter:

    Das Script erstellt jetzt eine Url um die Authentifizierung mit Google Abzuschließen.

    Quellcode

    1. Right now, the script is pulling the auth link. What is the auth link? A really long url that identifies you and that must be accepted for the Raspberry Pi upload server to be allowed to add files to your youtube channel, however we're on headless raspberry pi. There is no web browser. You have options. It is going to say authorization failed, but we'll still get the link.


    Er wird folgendes Anzeigen

    Quellcode

    1. Authentication has failed: invalid_request
    2. IGNORE THIS AUTH ERROR
    3. IGNORE THIS AUTH ERROR
    4. IGNORE THIS AUTH ERROR


    Aber das sollen wir ja Ignorieren.

    Jetzt gibt er uns 3 Wahlmöglichkeiten wie wir weitermachen wollen:

    1. Er gibt uns eine URL aus die Wir kopieren und in unseren Browser Aufrufen
    2. Er erstellt uns eine Datei auf dem USB Stick
    3. Er macht beides

    Was mich an der Stelle wundert, Python scheint etwas zu Vermissen. Ich weiß aber nicht was:

    Quellcode

    1. python: no process found


    Wir wählen die 1 und bekommen eine sehr lange URL. Die kopieren wir und fügen Sie in den Browser ein.
    Hat alles geklappt müssen wir bestätigen das unsere Anwendung die wir vorhin auf der Google Seite erstellt haben auf unseren Kanal zugreifen darf.
    Tun wir das, bekommen wir einen code Angezeigt den wir in unser Script kopieren, das bereits danach fragt.

    Quellcode

    1. Enter verification code:


    Und an der Stelle komme ich nicht weiter. Ich gebe den Code ein und er zeigt mir an:

    Quellcode

    1. Authentication has failed: invalid_request


    Videos Hochladen funktioniert auch nicht. Ich gebe zu ich bin Anfänger was das angeht aber wenn es ein Problem gibt dann klemme ich mich dahinter. Nur hier komme ich echt nicht weiter. Ich habe schon dem Entwickler des Scriptes geschrieben aber noch kein Feedback bekommen.

    Vielleicht hat ja jemand von euch Lust die Schritte nachzuvollziehen und evtl. den Fehler zu finden


    P.S.:

    Im Ordner VidUploadServer liegt ein ShellScript mit dem Namen VidUp.sh wenn ich das Ausführe kommt die Meldung:

    Quellcode

    1. rm: cannot remove `UploadCycle': No such file or directory
    2. nothin to upload
    3. nothin to upload
    4. nothin to upload
    5. nothin to upload

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Candron ()

  • Hi,

    das Programm ist sehr wirr und seltsam geschrieben, außerdem gibt es simplere Methoden, sich bei YouTube/Google zu authentifizieren, als über einen eigenen API-Zugang. Da wundert es mich nicht, dass dies schlussendlich nicht funktioniert, auch wenn ich auf die Schnelle keinen Fehler im Code gefunden habe.
    Wenn Du da nicht weiterkommst würde ich Dir die anderen Threads hier im Forum zu dem Thema empfehlen, mir fällt spontan dieses ein.
  • Ringelnatz schrieb:

    außerdem gibt es simplere Methoden, sich bei YouTube/Google zu authentifizieren, als über einen eigenen API-Zugang. Da wundert es mich nicht, dass dies schlussendlich nicht funktioniert

    Eigentlich ist dieser API-Key dafür gedacht das der Entwickler einer App/eines Scripts seine App mit diesem Key "signiert" und bei Google sozusagen freischaltet...

    Der Entwickler hätte fest seinen eigenen App-Key da eintragen müssen und fertig, der Benutzer braucht das nicht zu machen und muss der App dann nur über das 2-Step-Auth Berechtigung (also mit dem AccessToken) für seinen YouTube-Account geben.

    Gibts Probleme mit dem Script kann das nun nicht "gesammelt" zurückverfolgt werden und der Author umgeht eine Sicherheitsmaßnahme die dafür sorgen soll das "schädliche" Apps schnell bei jedem Benutzer über diesen App-Key gesperrt werden kann (sperrt Google einen dieser Keys sperrt er nur ein einziges Script aber alle anderen "bösen" Scripte laufen weiterhin).

    Solange das Script von einem verlangt eine eigene AppID anzulegen würd ich dem nicht blind vertrauen...
    ——YouTube————————————————————————————————————————————
    — Endlos-Projekte: Minecraft (SinglePlayer), Craft The World, Banished, Besiege, Sims4
    — ..Abgeschlossen: Leisure Suit Larry 6+7, Dishonored, Surface 2+3, Mirrors Edge, uvm
    — . Kurz- Projekte: The Tower, Fighting Is Magic, Euro Truck Simulator 2, uvm
    — ......Retro-Ecke: Day Of The Tentacle, Flight Of The Amazon Queen, NFS: HP2, uvm
    ————————————————————————————————————————————TbMzockt.de—
  • Ich hatte die Funktionsweise im Kopf, die GoogleCL nutzte, da brauchte man keinen eigenen API-Zugang. Allerdings war das wohl nur unter Verwendung des alten OAuth1-Verfahrens möglich, welches nicht mehr unterstützt wird. Was ich sagte stimmt also nicht, man muss zwingend einen eigenen API-Key anfordern. Dass der Entwickler keinen eigenen Key in öffentlich einsehbaren Quellcode schreibt ist wohl logisch.

    Das erklärt aber nicht, weshalb das vom TE angesprochene Programm nicht funktioniert. Da ich den Fehler nicht im Quellcode finde tippe ich auf einen Anwenderfehler.
  • Anzeige
    Hallo danke für die Antworten.

    @Ringelnatz: Danke für den Link in deiner ersten Antwort. Ich habe schon angefangen mir das durchzulesen.

    Wenn du meinst das es ein Anwenderfehler sein müsste werde ich mich noch mal ransetzten. Vielleicht habe ich irgendetwas bei der Auth. falsch gemacht.

    Beim Script selber habe ich, denke ich, nichts falsch gemacht. Es wurde auf einem frischen Raspi installiert.