2009-03-10 3 views
6

мы пытаемся использовать Google YouTube API для загрузки видео с нашего сайта на YouTube через браузер напрямую.Интеграция API YouTube ASP.NET - загрузка видео с одной страницы

API работает в два этапа, на первом этапе нам нужно создать объект Video со всеми метаданными, такими как заголовок, теги, описание, категория и т. Д. Затем нам нужно отправить запрос с этим объектом на YouTube и получить объект Token, сгенерированный как ответ. Этот токен-объект имеет значение Token Value и Token URL в качестве своих членов.

На втором этапе мы предлагаем создать форму с атрибутом действия, установленным на URL-адрес Token. Эта форма должна иметь элемент управления загрузкой файлов и скрытое поле с значением Token Value в качестве значения. Когда эта форма будет опубликована, она будет загружать видео на YouTube.

Это отлично работает, если у нас есть это как двухэтапный процесс, сначала спрашивая пользователей о метаданных, а затем перенаправляя их на вторую страницу для фактической загрузки видео. Тем не менее, мы пытаемся выполнить это на одной странице, представляя собой один шаг к пользователю.

У нас есть MasterPage с указанным в нем «aspnetForm», из-за которого мы не можем иметь другую форму с свойством runat='server'.

Мы попытались изменить атрибут действия aspnetFrom с помощью JavaScript/code-behind, но он остается тем же, что бы мы ни делали.

Мы также попытались поместить еще одну вложенную форму, чей тег действия будет установлен на событие нажатия кнопки после получения первого ответа от YouTube с маркером. Но даже это не работает, так как форма не создается в момент вызова этого метода.

Мы пробовали несколько подходов, но ни один из них не работает. Любые предложения по этому поводу были бы замечательными.

Если у вас есть какие-либо дополнительные вопросы, чтобы понять ситуацию ясно .. пожалуйста, дайте мне знать ..


Update:

Спасибо за ответы, ребята.

Мы немного изменили бизнес-логику, чтобы решить проблему. Это было давно, и я не ищу разрешения на данный момент.

Однако вопрос по-прежнему открыт и получает ответы. Я очень ценю всю помощь и, следовательно, оставил бы этот вопрос открытым для любых дальнейших обсуждений.

ответ

2

Я хотел бы создать форму, которую отображать пользователю с текстовыми полями для метаданных и контроля загрузки файла для видео.

Затем в коде, который обрабатывает обратную передачу, вы можете отправить метаданные в API YouTube, чтобы получить значение токена.

Вы тогда ремесло в HttpWebRequest с жетоном значением, передаваемым в Create способ WebRequest объекта и установить Method свойства Post. Затем вы добавляете загруженное видео (см. dr evil's answer to "Upload files with HTTPWebrequest (multipart/form-data)"), и, когда вы вызываете GetResponse(), ваш файл будет отправлен.

Вещи, чтобы следить за:

  1. ScriptTimeout: Если вы позволяете своим пользователям загружать большие файлы на YouTube - если это займет некоторое время для вас, чтобы передать его, то ваш сценарий может быть прекращено досрочно ,
  2. Пропускная способность: у вас будет как загрузка на ваши серверы, так и загрузка на YouTube для учетной записи - позволяя пользователю загружать напрямую на YouTube в двухэтапном процессе, который вы никогда не касаетесь видео, и он никогда не приближается ваши серверы - это может быть проблемой для вас или вашего хостинг-провайдера - например, мой хост не учитывает трафик через FTP в моей ежемесячной полосе пропускания, но включает файлы, загруженные/загруженные через веб-сайт.
+0

да .. этот подход, кажется, ближе всего того, что мы в конце концов, в конечном итоге делает. .: 0) –

0

Вы можете публиковать сообщения в форме YouTube программно. Недавно я изменил пример, найденный в http://www.codeproject.com/KB/cs/uploadfileex.aspx, чтобы написать код, который отправил файл на сторонний веб-сайт в качестве ночной работы.

Это связано с поражением производительности, так как файл должен быть загружен на ваш сервер, а затем на YouTube, а не напрямую на YouTube, но это вариант.

+0

yeah..i думал делать, что в крайнем случае .. :( спасибо за помощь, хотя .. –

Смежные вопросы