Youtube api 如何将视频文件上传到youtube而不刷新页面?
我正在尝试上传视频文件到youtube而不刷新页面。 我创建了简单表单,并尝试使用ajaxSubmit发送表单Youtube api 如何将视频文件上传到youtube而不刷新页面?,youtube-api,youtube-javascript-api,ajaxform,Youtube Api,Youtube Javascript Api,Ajaxform,我正在尝试上传视频文件到youtube而不刷新页面。 我创建了简单表单,并尝试使用ajaxSubmit发送表单 function prepareUploadForm() { $('#upload').click(function() { $('#upload').attr('disabled', true); $('#upload').val('Uploading...'); var title = escapeXmlEntities($(
function prepareUploadForm() {
$('#upload').click(function() {
$('#upload').attr('disabled', true);
$('#upload').val('Uploading...');
var title = escapeXmlEntities($('#firstname').val()+" "+$('#lastname').val());
var description = escapeXmlEntities($('#firstname').val()+" "+$('#lastname').val()+' intro video');
var category = escapeXmlEntities('Sports');
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>';
$.ajax({
dataType: 'xml',
type: 'POST',
url: 'https://gdata.youtube.com/action/GetUploadToken',
contentType: 'application/atom+xml; charset=UTF-8',
headers: generateYouTubeApiHeaders(),
processData: false,
data: xmlBody,
success: function(responseXml) {
var xml = $(responseXml);
var nextUrl = window.location.href+"?task=user.youtubeFileUploadParse";
var submissionUrl = xml.find('url').text() + '?nexturl=' + encodeURIComponent(nextUrl);
var token = xml.find('token').text();
console.log("send data to: "+xml.find('url').text());
console.log(submissionUrl);
console.log('token:' +token);
submiss = submissionUrl;
$('#upload-form').attr('action', xml.find('url').text());
$('<input>').attr({
type: 'hidden',
name: 'token',
value: token
}).appendTo('#upload-form');
//implement ajax file upload to youtube with upload token
var options = {
url: submissionUrl,
success: function(response) {
console.log('Thanks for your file!');
}
};
$('#upload-form').ajaxSubmit(options);
// $('#upload-form').submit();
},
error: function(jqXHR) {
console.log('Metadata submission failed: ' + jqXHR.responseText);
$('#upload').removeAttr('disabled');
$('#upload').val('Upload');
}
});
});
$('#file-video').change(function() {
console.log('change video file');
if ($(this).val()) {
$('#upload').removeAttr('disabled');
} else {
$('#upload').attr('disabled', true);
}
});
$('#upload-form').show();
}
函数prepareUploadForm(){
$(“#上载”)。单击(函数(){
$('#upload').attr('disabled',true);
$('上传').val('上传…');
var title=escapeXmlEntities($('#firstname').val()+“”+$('#lastname').val());
var description=escapeXmlEntities($('#firstname').val()+“”+$('#lastname').val()+'介绍视频');
var类别=逃逸实体(“运动”);
变量xmlBody=''+''+标题+''+描述+''+类别+'';
$.ajax({
数据类型:“xml”,
键入:“POST”,
网址:'https://gdata.youtube.com/action/GetUploadToken',
contentType:'application/atom+xml;字符集=UTF-8',
标题:generateYouTubeApiHeaders(),
processData:false,
数据:xmlBody,
成功:函数(responseXml){
var xml=$(responseXml);
var nextur=window.location.href+“?task=user.youtubeFileUploadParse”;
var submissionUrl=xml.find('url').text()+'?nexturl='+encodeURIComponent(nexturl);
var token=xml.find('token').text();
log(“将数据发送到:”+xml.find('url').text());
console.log(submissionUrl);
console.log('token:'+token);
submiss=submissionUrl;
$('#upload form').attr('action',xml.find('url').text());
$('').attr({
键入:“隐藏”,
名称:“令牌”,
值:令牌
}).appendTo(“#上传表单”);
//使用upload token实现ajax文件上传到youtube
变量选项={
url:提交url,
成功:功能(响应){
log('谢谢你的文件!');
}
};
$(“#上传表单”).ajaxSubmit(选项);
//$(“#上传表单”).submit();
},
错误:函数(jqXHR){
log('元数据提交失败:'+jqXHR.responseText);
$('#upload').removeAttr('disabled');
$('上传').val('上传');
}
});
});
$('#文件视频')。更改(函数(){
log(“更改视频文件”);
if($(this.val()){
$('#upload').removeAttr('disabled');
}否则{
$('#upload').attr('disabled',true);
}
});
$(“#上传表单”).show();
}
文件将成功上载,但我不想将页面重定向到下一个参数。如何截取youtube响应头并从中解析位置?您是否查看了位于(源文件位于)的示例,该示例显示了上载流,使用Google+登录按钮处理OAuth 2(如果愿意,您可以使用普通的OAuth 2浏览器客户端流)并带有进度指示器。非常感谢。我五分钟前找到的。