Domanda

stiamo cercando di utilizzare l'API YouTube di Google per caricare video dal nostro sito Web su YouTube direttamente tramite il browser.

L'API funziona in due passaggi, nel primo passo dobbiamo creare un oggetto Video con tutti i metadati come titolo, tag, descrizione, categoria ecc. Quindi dobbiamo inviare una richiesta con questo oggetto su YouTube e ottenere un Oggetto token generato come risposta. Questo oggetto token ha un valore token e un URL token come suoi membri.

Nel secondo passaggio suggeriscono che dovremmo creare un modulo con l'attributo action impostato sull'URL token. Questo modulo dovrebbe avere un controllo caricamento file e un campo nascosto con il valore token come valore. Quando questo modulo viene pubblicato, carica il video su YouTube.

Funziona benissimo se lo facciamo in due passaggi, chiedendo prima agli utenti i metadati e poi reindirizzandoli alla seconda pagina per l'effettivo caricamento del video. Tuttavia, stiamo cercando di ottenere questo risultato in un'unica pagina, che appare come un singolo passaggio per l'utente.

Abbiamo una MasterPage con 'aspnetForm' specificato in essa, per cui non possiamo avere un altro modulo con la proprietà runat = 'server' .

Abbiamo provato a modificare l'attributo action di aspnetFrom usando JavaScript / code-behind ma rimane lo stesso, qualunque cosa facciamo.

Abbiamo anche provato a mettere un altro modulo nidificato, il cui tag azione sarebbe impostato sull'evento clic pulsante, dopo che è stata ricevuta la prima risposta da YouTube con token. Ma anche questo non funziona, poiché il modulo non è stato creato nel momento in cui questo metodo è chiamato ..

Abbiamo provato diversi approcci, ma nessuno sembra funzionare .. qualsiasi suggerimento su questo sarebbe fantastico.

Se hai altre domande per capire chiaramente la situazione .. per favore fammi sapere ..


Aggiornamento:

Grazie per le risposte ragazzi.

Abbiamo modificato un po 'la logica aziendale per risolvere il problema. Era molto tempo fa e non sto cercando una risoluzione per ora ..

Tuttavia, la domanda è ancora aperta e sta ricevendo risposte. Apprezzo davvero tutto l'aiuto e, quindi, lascerei la domanda aperta per ulteriori discussioni.

È stato utile?

Soluzione

Vorrei creare un modulo da visualizzare all'utente con campi di testo per i metadati e un controllo di caricamento dei file per il video.

Quindi, nel codice che gestisce il postback, puoi inviare i metadati all'API di YouTube per ottenere il valore token.

Quindi si crea un HttpWebRequest con il Il valore token è passato al metodo Create dell'oggetto WebRequest e ha impostato la proprietà Method su Post . Quindi aggiungi il video caricato (vedi la risposta di dr evil a " Carica file con HTTPWebrequest (multipart / form-data) " per ulteriori informazioni, e quando chiami GetResponse () il tuo file verrà inviato.

Cose a cui prestare attenzione:

  1. ScriptTimeout : se stai consentendo ai tuoi utenti di caricare file di grandi dimensioni su YouTube - se impieghi un po 'di tempo per trasmetterlo, il tuo script potrebbe essere terminato prematuramente.
  2. Larghezza di banda: avrai sia il caricamento sui tuoi server che il caricamento su YouTube di cui tener conto - consentendo all'utente di caricare direttamente su YouTube in una procedura in due passaggi non tocchi mai il video e non si avvicina mai i tuoi server - questo potrebbe essere un problema per te o il tuo provider di hosting - ad esempio, il mio host non conta il traffico tramite FTP nella mia larghezza di banda mensile, ma include i file caricati / scaricati attraverso il sito Web.

Altri suggerimenti

Puoi pubblicare sul modulo YouTube in modo programmatico. Di recente ho modificato l'esempio trovato in http://www.codeproject.com/KB/cs /uploadfileex.aspx per scrivere del codice che ha pubblicato un file su un sito Web di terzi come lavoro notturno.

Ciò comporterebbe un aumento delle prestazioni in quanto il file dovrebbe essere caricato sul tuo server e quindi su YouTube anziché direttamente su YouTube, ma è un'opzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top