[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