Intégration de l'API YouTube ASP.NET - télécharger une vidéo avec une seule page

StackOverflow https://stackoverflow.com/questions/629435

  •  08-07-2019
  •  | 
  •  

Question

nous essayons d'utiliser l'API Google YouTube pour transférer des vidéos de notre site Web vers YouTube via le navigateur directement.

L’API fonctionne en deux étapes. La première étape consiste à créer un objet Vidéo avec toutes les métadonnées telles que le titre, les balises, la description, la catégorie, etc. Nous devons ensuite envoyer une demande contenant cet objet à YouTube et obtenir un message. Objet de jeton généré en réponse. Cet objet de jeton a une valeur de jeton et une URL de jeton en tant que membres.

Dans la deuxième étape, ils suggèrent de créer un formulaire avec l'attribut d'action défini sur l'URL du jeton. Ce formulaire doit avoir un contrôle de téléchargement de fichier et un champ caché avec la valeur du jeton comme valeur. Lorsque ce formulaire est publié, la vidéo est téléchargée sur YouTube.

Cela fonctionne très bien si le processus en deux étapes consiste à demander aux utilisateurs les métadonnées en premier lieu, puis à les rediriger vers la deuxième page pour le téléchargement de la vidéo. Cependant, nous essayons d'accomplir cela dans une seule page, en apparaissant en une seule étape pour l'utilisateur.

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

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

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

Nous avons essayé plusieurs approches mais aucune ne semble fonctionner. Toute suggestion à ce sujet serait formidable.

Si vous avez d'autres questions pour bien comprendre la situation, merci de me le faire savoir.

Mise à jour:

Merci pour les réponses les gars.

Nous avons un peu modifié la logique métier pour résoudre le problème. C'était il y a longtemps et je ne cherche pas de résolution pour l'instant.

Cependant, la question reste ouverte et suscite des réponses. J'apprécie vraiment toute l'aide et laisse donc la question ouverte pour toute discussion ultérieure.

Était-ce utile?

La solution

Je créerais un formulaire que vous afficheriez à l'utilisateur avec des champs de texte pour les métadonnées et un contrôle de téléchargement de fichier pour la vidéo.

Ensuite, 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 créez ensuite un HttpWebRequest avec le Valeur de jeton transmise à la méthode Create de l'objet WebRequest et définissez la propriété Method sur Post . Vous ajoutez ensuite la vidéo téléchargée (voir réponse de dr evil à " Téléchargez des fichiers avec HTTPWebrequest (multipart / form-data) " pour plus de détails.) Et lorsque vous appelez GetResponse () , votre fichier sera soumis.

À surveiller:

  1. ScriptTimeout : si vous autorisez vos utilisateurs à télécharger des fichiers volumineux sur YouTube, vous risquez de mettre fin prématurément à votre script si vous mettez un peu de temps à le transmettre.
  2. Bande passante: vous aurez à la fois le téléchargement sur vos serveurs, puis le téléchargement sur YouTube pour lequel vous créez un compte - en permettant à l'utilisateur de télécharger directement sur YouTube dans un processus en deux étapes, vous ne touchez jamais la vidéo, et elle ne s'en approche jamais vos serveurs - cela peut être un problème pour vous ou votre fournisseur d'hébergement - par exemple, mon hôte ne comptabilise pas le trafic via FTP dans ma bande passante mensuelle, mais inclut les fichiers chargés / téléchargés via le site Web.

Autres conseils

Vous pouvez publier sur le formulaire YouTube par programmation. J'ai récemment modifié l'exemple trouvé à l'adresse http://www.codeproject.com/KB/cs /uploadfileex.aspx pour écrire du code qui a publié un fichier sur un site Web tiers en tant que travail nocturne.

Cela impliquerait un impact négatif sur les performances car le fichier devrait être chargé sur votre serveur, puis sur YouTube plutôt que directement sur YouTube, mais il s'agit d'une option.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top