首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript上传Youtube视频

问使用javascript上传Youtube视频
EN

Stack Overflow用户
提问于 2013-11-01 11:14:14
回答 1查看 7.8K关注 0票数 0

我试图用javascript制作一个基于浏览器的youtube视频上传器。

我正在使用这里的示例代码

经过认证,当我上传视频时,向youtube服务器发送请求永远不会结束,视频也不会上传。

这也发生在谷歌提供的样本。

下面是我用来上传视频的功能:

代码语言:javascript
复制
$('#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');
        }
    });
});

下面是向youtube服务器发出的最后一个帖子请求的萤火虫屏幕截图,该请求永远不会结束。

​

​

此外,我想获得视频上传的进展,并使用javascript显示它,但我不知道如何实现它,我搜索并找到了许多方法,但没有什么是成功的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-01 17:29:48

现在支持使用YouTube数据API v3中的CORS恢复上传。

在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浏览器客户端流)和一个进度指示符。它还显示了如何在上传后轮询视频处理状态,并在处理后将结果视频嵌入到页面中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19725673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档