[TYPO3-german] FE Video Upload

Stephan Schuler stephan.schuler at netlogix.de
Sat Aug 10 00:59:06 CEST 2013


Hallo Christof.


Ich hab das vor einiger Zeit schon mit Youtube gemacht. Ich kann dir leider
weder ein Beispiel zeigen noch sagen wo es gerade aktiv ist. Aber schwer
war es nicht.

Auf der Youtube-Webseite wird selbst die Zend-Lib empfohlen. Aus der hab
ich damals der Einfachheit halber den Youtube-Uploader verwendet.
https://developers.google.com/youtube/2.0/developers_guide_php

Die Geschichte sieht folgendermaßen aus:


   - Ich würde dir einen Youtube-Video-Record empfehlen. Da speicherst du
   dir den Videonamen sowie den Youtube-Upload-Status.
   - Und du brauchst natürlich einen Youtube-Account, dessen
   API-Credentials du in TYPO3 eintragen kannst.
   - Der Benutzer läd das Video auf deinen Server. Anders ist komplex und
   wenig empfehlenswert. Lager die Datei zumindest zeitweise auf deinem Server
   zwischen. Der Video-Record wird in den Status "neu" gesetzt.
   - Per Cronjob gehst du jetzt alle Video-Records durch und lädst die der
   Reihe nach hoch. Nachdem manchmal Youtube mit einem "irgend was ist schief
   gelaufen, versuch es in ein paar Minuten nochmal" antwortet, solltest du
   dir die Fehler mitzählen. Ich habe mich entschieden, dass ich fünf temorary
   errors seitens Youtube toleriere.
   - Der Cronjob muss sich bei Youtube jedes Mal authentifizieren. Das kann
   die Zend-Lib für dich übernehmen. Gerade das Youtube-Oauth macht wirklich
   zu Fuß keinen Spaß. Alleine deshalb ist die Lib empfehlenswert, auch wenn
   sie nicht gerade das Performancemonster ist.
   - Sobald das Video bei Youtube hochgeladen ist, sollte der Video-Record
   in den Status "pending" gehen. Jetzt ist das Video zwar bei Youtube in der
   Liste deines Youtube-Accounts, allerdings muss Youtube noch automatisierte
   Prüfungen bzg. Dateiformat und Inhalt durchführen. Auch verhindert Youtube,
   dass du identische Videos in deinem Kanal liegen hast, jedes Video darf nur
   einmal existieren.
   - Ein zweiter Cronjob muss regelmäßig für alle lokalen
   "pending"-Video-Records über die Youtube-API prüfen, ob sie von Youtube
   abgelehnt oder akzeptiert wurden. Das darf das Video-Record dann in den
   Status "uploaded" oder "refused" gehen lassen.


Der Cronjob ist aus mehreren Gründen notwendig:

   - Wie beschrieben erlaubt das einen Retry-Mechanismus, ohne dass der
   Benutzer zu lange die Verbindung offen halten muss.
   - Nachdem Youtube Videos eben auch ablehnen kann, insbesondere wenn z.B.
   urheberrechtlich geschütztes Audiomaterial erkannt wurde, kann die Prüfung
   bis zu zehn Minuten dauern. So lange willst du deinem Benutzer sicher
   keinen Ladebalken anzeigen. Den Benutzer jetzt an den Bildschirm zu fesseln
   bis Youtube sich entschieden hat ist keine gute Idee.
   - Zend ist ganz schön mächtig. Das will ich eigentlich nur ganz ungern
   in meinen regulären TYPO3-Seitenaufbauprozessen haben. In einem
   Schedulerjob ist das kein großer Stress weil der Cronjob der den
   Schedulerjob aufruft ein CLI ist und CLI-PHP auf meinen Servern ganz andere
   Memory-Settings hat. Aber innerhalb des regulären Seitenaufbaus bei Bedarf
   zusätzlich ein kleines Zend zu laden würde bedeuten, dass ich nur für den
   Videoupload mein Memorylimit deutlich erhöhen müsste.


Ich hab dann noch eine internens Review-Flag eingeführt, bzw. einen
weiteren Video-Record-Zustand. "uploaded" ist zwar schön, aber be_user oder
höher privilegierte fe_user müssen meine Videos erst von "uploaded" in
"public" schalten. Erst jetzt werden Videos auf der Webseite angezeigt. Das
verhindert, dass meine Webseite Videos anzeigt die ich nicht gut finde.

Kombiniert habe ich das damals mit Youtubes privaten und öfentlichen
Videos. Das Video ist seitens Youtube zunächst privat, also nur für mich
einsehbar wenn ich gleichzeitig in meinem Youtube-Account angemeldet bin.
Erst wenn der be_user das Video auf "public" stellt läuft ein weiterer
Cronjob los der das Video bei Youtube ebenfalls von "private" auf "public"
umschaltet, und erst am Ende dieser Prozedur ist das Video auch wirklich
auf der Webseite verfügbar.

Dieser Schritt verhindert, dass mein Youtube-Kanal Videos enthält die nicht
meinen Kriterien entsprechen. Immerhin kann ein solcher Youtube-Kanal ja
gerne auch ohne die eigene Webseite verwendet werden. Nur dass ich das
Video nicht auf meiner Webseite einbinde heißt ja nicht, dass es nicht bei
Youtube auch unter meinem Namen erscheint.


Grüße,
  Stephan Schuler.


Am 10. August 2013 00:15 schrieb HC-Media <office at hc-media.org>:

> Liebe Liste,
>
> ich suche aktuell eine FE Extension in der Videos hochgeladen werden
> können sollen,
> anschließend soll das Video mittels Flash oder HTML5 Player eingebunden
> werden können.
>
> Jeder User soll Videos hochladen können die anschließend in einer Galerie
> präsentiert werden.
>
> Gerne würde ich auch auf einen externen Anbieter zurückgreifen, der eine
> API anbietet.
> Gibt's hier Erfahrungen?
>
> Ist das evtl über die YouTube API möglich? - Hätte hier jemand ein
> Tutorial, Beispiel, Demo?
>
>
>
> Lg Christof
>
>
>
> Von meinem iPad gesendet
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list