2009-03-10 9 views
6

Nous essayons d'utiliser l'API Google YouTube pour télécharger directement des vidéos de notre site Web vers YouTube via le navigateur. L'API fonctionne en deux étapes. Dans un premier temps, nous devons créer un objet Video avec toutes les métadonnées telles que le titre, les tags, la description, la catégorie, etc. Ensuite, nous devons envoyer une requête avec cet objet sur YouTube et obtenir un objet Token généré en réponse. Cet objet jeton a une valeur de jeton et une URL de jeton en tant que ses membres. Dans la deuxième étape, ils suggèrent que nous devrions créer un formulaire avec l'attribut action défini sur l'URL de jeton. Ce formulaire doit avoir un contrôle de téléchargement de fichier et un champ masqué avec la valeur du jeton comme valeur. Lorsque ce formulaire est publié, la vidéo est mise en ligne sur YouTube.Intégration de l'API YouTube ASP.NET - envoi de vidéo avec une seule page

Cela fonctionne très bien si nous l'avons comme un processus en deux étapes, en demandant d'abord aux utilisateurs les métadonnées, puis en les redirigeant vers une deuxième page pour le téléchargement de la vidéo. Cependant, nous essayons d'accomplir ceci dans une seule page, apparaissant comme une seule étape à l'utilisateur.

Nous avons une MasterPage avec le 'aspnetForm' spécifié, en raison de laquelle nous ne pouvons pas avoir un autre formulaire avec la propriété runat='server'.

Nous avons essayé de modifier l'attribut action de aspnetFrom en utilisant JavaScript/code-behind mais il reste le même, quoi que nous fassions.

Nous avons également essayé de mettre un autre formulaire imbriqué, dont le tag d'action serait défini sur l'événement click button, après la réception de la première réponse de YouTube avec le jeton. Mais même cela ne fonctionne pas, car la forme n'est pas créée au moment où cette méthode est appelée ..

Nous avons essayé plusieurs approches mais aucune ne semble fonctionner .. toutes les suggestions sur ce serait génial.

Si vous avez d'autres questions pour comprendre clairement la situation .. s'il vous plaît laissez-moi savoir ..


Mise à jour:

Merci pour les gars de réponses.

Nous avons légèrement modifié la logique métier pour résoudre le problème. Il était depuis longtemps et je ne cherche pas une résolution à partir de maintenant ..

Cependant, la question est toujours ouverte et obtenir des réponses. J'apprécie vraiment toute l'aide et par conséquent, laisserais la question ouverte pour d'autres discussions.

Répondre

2

Je voudrais créer une forme que vous affichez à l'utilisateur avec des champs de texte pour les métadonnées et un contrôle de téléchargement de fichiers pour la vidéo. Puis, dans le code qui gère la publication, vous pouvez envoyer les métadonnées à l'API YouTube pour obtenir la valeur du jeton.

Vous ouvrer alors un HttpWebRequest avec le jeton Valeur transmise à la méthode Create de l'objet WebRequest et définissez la propriété Method-Post. Vous ajoutez ensuite la vidéo mise en ligne (voir dr evil's answer to "Upload files with HTTPWebrequest (multipart/form-data)" pour plus de détails) et lorsque vous appelez le GetResponse(), votre fichier sera envoyé.

choses à surveiller:

  1. ScriptTimeout: Si vous permettez à vos utilisateurs de télécharger des fichiers volumineux sur YouTube - si cela prend un certain temps pour vous de le transmettre, votre script peut être mis fin prématurément . Bande passante: Le téléchargement sur vos serveurs sera effectué, puis le téléchargement sur YouTube sera pris en compte. En permettant à l'utilisateur de télécharger directement sur YouTube en deux étapes, vous ne touchez jamais à la vidéo. vos serveurs - cela peut être un problème pour vous ou votre fournisseur d'hébergement - par exemple, mon hôte ne compte pas le trafic via FTP dans ma bande passante mensuelle, mais inclut les fichiers téléchargés sur le site Web.
+0

cette approche semble être le plus proche de ce que nous avons fini par fini par faire. .: 0) –

0

Vous pouvez poster sur le formulaire YouTube par programmation. J'ai récemment modifié l'exemple trouvé au http://www.codeproject.com/KB/cs/uploadfileex.aspx pour écrire du code qui publiait un fichier sur un site Web tiers comme un travail nocturne.

Cela impliquerait une baisse des performances car le fichier devrait être téléchargé sur votre serveur, puis sur YouTube au lieu de directement sur YouTube, mais c'est une option.

+0

yeah..i pensait à le faire en dernier recours .. :( merci pour l'aide si .. oui .. –

Questions connexes