Frage

wir versuchen, die Google YouTube-API zu verwenden, um direkt Videos von unserer Website YouTube über den Browser zu laden.

Die API funktioniert in zwei Schritten, die im ersten Schritt brauchen wir ein Video-Objekt mit allen Metadaten wie Titel, Tags, Beschreibung, Kategorie usw. erstellen Dann brauchen wir eine Anfrage mit diesem Objekt zu YouTube senden und eine bekommen Token-Objekt erzeugt als Reaktion. Dieses Token-Objekt hat einen Token-Wert und eine Token-URL wie seine Mitglieder.

Im zweiten Schritt schlagen sie vor, dass wir ein Formular mit dem action-Attribute auf die Token-URL gesetzt erstellen sollen. Diese Form soll ein Datei-Upload-Steuerelement und ein verstecktes Feld mit dem Tokenwert als Wert hat. Wenn diese Form geschrieben ist, wäre es das Video auf YouTube hochgeladen werden.

Dies funktioniert gut, wenn wir es als ein zweistufiger Prozess haben die Benutzer für die Metadaten zuerst fragen und sie dann auf der zweite Seite für die aktuelle Video-Upload Umleitung. Allerdings versuchen wir, dies auf einer einzigen Seite zu erreichen, als ein einziger Schritt für den Benutzer erscheint.

Wir haben eine Masterpage mit dem ‚aspnetForm‘ darin angegeben, wegen denen wir eine andere Form mit runat='server' Eigenschaft haben kann nicht.

Wir haben versucht, die action-Attribut der aspnetFrom Modifizierung mit JavaScript / code-behind, aber es bleibt gleich, was wir tun.

Wir haben versucht, auch eine andere verschachtelte Form zu bringen, deren Action-Tag auf der Schaltfläche Click-Ereignisse nach der ersten Antwort von YouTube eingestellt werden würde mit Token empfangen wird. Aber auch dies nicht funktioniert, da die Form nicht zu dem Zeitpunkt dieser Methode erstellt wird, heißt ..

Wir haben mehrere Ansätze versucht, aber keiner scheint zu funktionieren .. irgendwelche Vorschläge zu diesem Thema wäre toll.

Wenn Sie weitere Fragen haben, die Situation klar zu verstehen .. lass es mich wissen ..


Update:

Danke für die Antworten Jungs.

Wir änderten die Business-Logik ein wenig um das Problem zu lösen. Es war lange zurück und ich bin nicht für eine Auflösung ab jetzt auf der Suche ..

Allerdings ist die Frage noch offen und bekommen Antworten. Ich schätze all die Hilfe wirklich, und daher würde die Frage offen für weitere Diskussionen verlassen.

War es hilfreich?

Lösung

Ich würde ein Formular erstellen, die Sie mit Textfeldern für die Metadaten und Datei-Upload-Steuerelement für das Video.

für den Benutzer anzeigen

Dann in dem Code, der die Postbacks behandelt, können Sie die Metadaten aus der YouTube-API einreichen, um den Token-Wert zu erhalten.

Sie dann eine HttpWebRequest mit der Token-Wert übergeben in die Create Methode des WebRequest Objekt und die Method Eigenschaft auf Post. Sie dann das hochgeladene Video hinzufügen (siehe dr evil Antwort auf „Upload Dateien mit httpwebrequest (multipart / form-data) " für mehr einen Spaziergang durch das), und wenn Sie anrufen GetResponse() Ihre Datei eingereicht werden.

Reise aufpassen:

  1. ScriptTimeout: Wenn Sie damit Ihr Anwender große Dateien auf YouTube hochladen - wenn es eine Weile dauert, bis Sie es zu übertragen, dann könnte das Skript vorzeitig beendet werden
  2. .
  3. Bandbreite: Sie müssen sowohl den Upload auf Ihren Server und dann das Hochladen auf YouTube berücksichtigen - von dem Benutzer ermöglicht, in einem zweistufigen Verfahren berühren Sie nie das Video direkt auf YouTube hochladen, und es geht nie in der Nähe von Ihre Server - dies könnte ein Problem für Sie oder Ihr Hosting-Provider sein - z. B. mein Host-Verkehr nicht über FTP in meiner monatlichen Bandbreite zu rechnen ist, aber nicht Dateien Upload / Download über die Website enthalten

Andere Tipps

Sie könnten programmatisch auf das YouTube-Formular veröffentlichen. Ich änderte vor kurzem das Beispiel unter http://www.codeproject.com/KB/cs /uploadfileex.aspx einen Code zu schreiben, der eine Datei an einen dritten Website als nächtliche Auftrag geschrieben.

Dies würde eine Leistungseinbuße beteiligt ist, wie die Datei auf den Server hochgeladen werden muß und dann auf YouTube statt direkt auf YouTube, aber es ist eine Option.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top