2009-03-10 30 views
6

estamos tratando de utilizar la API de Google YouTube para cargar videos de nuestro sitio web a YouTube a través del navegador directamente.Integración con la API de YouTube ASP.NET: carga de video con una sola página

La API funciona en dos pasos, en el primer paso necesitamos crear un objeto de Video con todos los metadatos como título, etiquetas, descripción, categoría, etc. Luego tenemos que enviar una solicitud con este objeto a YouTube y obtener un objeto Token generado como respuesta. Este objeto token tiene un valor de token y una URL de token como sus miembros.

En el segundo paso, sugieren que debemos crear un formulario con el atributo de acción establecido en la URL del token. Este formulario debe tener un control de carga de archivos y un campo oculto con el Valor de ficha como su valor. Cuando se publique este formulario, se cargará el video a YouTube.

Esto funciona muy bien si lo tenemos como un proceso de dos pasos, primero preguntando a los usuarios por los metadatos y luego redirigiéndolos a la segunda página para la carga del video real. Sin embargo, estamos tratando de lograr esto en una sola página, que aparece como un solo paso para el usuario.

Tenemos una página maestra con el 'aspnetForm' especificado en ella, por lo que no podemos tener otra forma con la propiedad runat='server'.

Hemos intentado modificar el atributo de acción de aspnetFrom usando JavaScript/código subyacente pero permanece igual, hagamos lo que hagamos.

También hemos intentado poner otra forma anidada, cuya etiqueta de acción se establecería en el evento de clic de botón, después de recibir la primera respuesta de YouTube con token. Pero incluso esto no funciona, ya que el formulario no se crea en el momento en que se llama este método ...

Hemos intentado varios enfoques pero ninguno parece funcionar ... cualquier sugerencia sobre esto sería genial.

Si tiene más preguntas para entender la situación con claridad .. por favor hágamelo saber ..


Actualización:

Gracias por las respuestas chicos.

Cambiamos la lógica de negocios un poco para resolver el problema. Fue hace mucho tiempo y no estoy buscando una resolución a partir de ahora ...

Sin embargo, la pregunta sigue abierta y recibiendo respuestas. Realmente aprecio toda la ayuda y, por lo tanto, dejaría la pregunta abierta para futuras discusiones.

Respuesta

2

me gustaría crear un formulario que permite mostrar al usuario con campos de texto para los metadatos y un control de carga de archivos de vídeo.

Luego, en el código que maneja la devolución de datos, puede enviar los metadatos a la API de YouTube para obtener el valor del token.

A continuación, elaborar un HttpWebRequest con el valor simbólico pasado al método del objeto WebRequestCreate y establece la propiedad Method-Post. A continuación, agregue el video cargado (consulte dr evil's answer to "Upload files with HTTPWebrequest (multipart/form-data)" para obtener más información al respecto) y cuando llame al GetResponse(), su archivo será enviado.

Cosas a tener en cuenta:

  1. ScriptTimeout: Si se va a permitir a sus usuarios subir archivos de gran tamaño a YouTube - si se necesita un tiempo para que la transmite, a continuación, la secuencia de comandos podría ser terminado prematuramente .
  2. Ancho de banda: Tendrás tanto la carga en tus servidores como la carga en YouTube para la cuenta: al permitir que el usuario cargue directamente en YouTube en un proceso de dos pasos, nunca tocas el video, y nunca se acerca sus servidores: esto podría ser un problema para usted o su proveedor de alojamiento; por ejemplo, mi servidor no cuenta el tráfico a través de FTP en mi ancho de banda mensual, pero sí incluye los archivos cargados/descargados a través del sitio web.
+0

este enfoque parece ser el más cercano de lo que finalmente terminamos haciendo. .: 0) –

0

Podría publicar en el formulario de YouTube de forma programática. Recientemente modifiqué el ejemplo encontrado en http://www.codeproject.com/KB/cs/uploadfileex.aspx para escribir un código que publicaba un archivo en el sitio web de un tercero como un trabajo nocturno.

Esto implicaría un golpe de rendimiento, ya que el archivo debería cargarse en su servidor y luego en YouTube en lugar de hacerlo directamente en YouTube, pero es una opción.

+0

yeah..i estaba pensando en hacer eso como último recurso .. :( gracias por la ayuda aunque .. sí .. –

Cuestiones relacionadas