2013-11-01 3 views
0

Я пытаюсь создать браузер, основанный на YouTube, с помощью javascript.Загрузка видео в Youtube с помощью javascript

Я использую sample code from here

После аутентификации, когда я загружаю видео, запрос POST на сервер YouTube никогда не заканчивается и видео не загружается.

Это также происходит в sample provided by google.

Вот функция, которую я использую, чтобы загрузить видео:

$('#upload').click(function(){ 
    $('#upload').attr('disabled', true); 

    var title = escapeXmlEntities($('#title').val()); 
    var description = escapeXmlEntities($('#description').val()); 
    var category = escapeXmlEntities($('#category option:selected').val()); 

    var xmlBody = '<?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007"> <media:group> <media:title type="plain">' + title + '</media:title> <media:description type="plain">' + description + '</media:description> <media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">' + category + '</media:category> </media:group> </entry>'; 
    showMsg("Submitting metadata of video to get upload token."); 
    $.ajax({ 
     dataType: 'xml', 
     type: 'POST', 
     url: 'https://gdata.youtube.com/action/GetUploadToken', 
     contentType: 'application/atom+xml; charset=UTF-8', 
     processData: false, 
     headers: generateYouTubeApiHeaders(), 
     data: xmlBody, 
     success: function(responseXml) { 
      var xml = $(responseXml); 
      var nextUrl = window.location.href; 
      var submissionUrl = xml.find('url').text() + '?nexturl=' + encodeURIComponent(nextUrl); 
      var token = xml.find('token').text(); 

      showMsg("Uploading Video..."); 
      $('#form_upload').attr('action', submissionUrl); 
      $('<input>').attr({ 
       type: 'hidden', 
       name: 'token', 
       value: token 
      }).appendTo('#form_upload'); 
      $('#form_upload').submit(); 
     }, 
     error: function(jqXHR) { 
      showMsg('Metadata submission failed: ' + jqXHR.responseText); 
      $('#upload').removeAttr('disabled'); 
      $('#upload').val('Upload'); 
     } 
    }); 
}); 

Вот скриншот поджигатель из последнего запроса POST сделал на YouTube сервер, который никогда не заканчивается.

error-image

Кроме того, я хочу, чтобы ход загрузки видео и показать его с помощью JavaScript, но я не знаю, как этого добиться, я гугл и нашел много методов, но ничего не было успешным для меня.

+0

Вы пробовали использовать *** API данных YouTube v3. ***? – Kiquenet

ответ

2

В настоящее время поддерживается поддержка возобновляемых загрузок с использованием CORS в API данных YouTube версии 3.

Грубый, но работает, например, в https://youtube-api-samples.googlecode.com/git/yt-upload-javascript/index.html (исходные файлы в https://code.google.com/p/youtube-api-samples/source/browse/#git%2Fyt-upload-javascript), который показывает поток загрузки, с помощью Google+, войдите в кнопку для обработки OAuth 2 (вы можете использовать обычный OAuth 2 поток клиентского браузера, если вы» d) и индикатором прогресса. Он также показывает, как вы можете опросить статус видео обработки после загрузки и вставить результирующее видео на страницу после его обработки.

+1

Для этого требуется, чтобы токен доступа использовался для просмотра в браузере. Есть ли способ получить токен загрузки, например, метод GetUploadToken от v2? Чтобы пользователи могли загружать видео в учетную запись, не открывая токен доступа к учетной записи? –

+0

@JeremyHaile вы получили безопасное решение? – Kiquenet

+0

https://youtube-api-samples.googlecode.com/git/yt-upload-javascript/index.html не найден, *** 404 ошибка *** – Kiquenet

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