您好我想用youtube api制作一个上传视频节目我觉得我错过了什么。我搜索了一些关于如何使用.net上传的例子,但似乎无法找到答案。
继承我的代码:
` Imports Google.YouTube Imports Google.GData.Client Imports Google.GData.Extensions Imports Google.GData.Extensions.MediaRss Imports Google.GData.YouTube Imports Google.GData.Extensions.Location
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim settings As YouTubeRequestSettings Dim request As YouTubeRequest
settings = New YouTubeRequestSettings("youtube uploader", "AI39si4NwqS3ISLGVjlHBCdC8BfiJJSJWqqcJEvZOLbFohZAslQ4uhgrnFOJKdxGju55g2xoSImzEhXPGE5syMV9X0fh8NEHGg", txtuser.Text, txtpass.Text) request = New YouTubeRequest(settings)
Try Dim newVideo As Video = New Video() newVideo.Title = "Hangover Sample Movie" newVideo.Tags.Add(New MediaCategory("Sample", YouTubeNameTable.CategorySchema)) newVideo.Keywords = "hangover, funny" newVideo.Description = "Hangover" newVideo.YouTubeEntry.Private = False newVideo.Tags.Add(New MediaCategory("hangover, funny, comedy", YouTubeNameTable.DeveloperTagSchema)) newVideo.YouTubeEntry.Location = New GeoRssWhere(37, -122) ' alternatively, you could just specify a descriptive string ' newVideo.YouTubeEntry.setYouTubeExtension("location", "Mountain View, CA"); newVideo.YouTubeEntry.MediaSource = New MediaFileSource(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\sample.avi", "video/avi") request.Upload(newVideo) Catch ex As Exception MsgBox(ex.Message) End Try End Sub End Class`
但是它产生了这个错误执行请求失败https://uploads.gdata.youtube.com/feeds/api/users/default/uploads
答案 0 :(得分:1)
我注意到的主要问题是您的代码指定的媒体源是* .avi文件,并为其分配MIME类型“video / quicktime”。据我所知,QuickTime视频通常用* .mov扩展名表示。当YouTube收到此信息时,可能会使用转码器将您的电影内容转换为自己的原生格式并失败,因为它试图将电影视为QuickTime文件。您应该将MIME类型更改为“video / avi”。
此外,您的示例代码未调用request.Upload()
。
答案 1 :(得分:1)
首先想到的是,您在初始化时创建了一个请求对象,但在单击按钮之前不会使用它。这可能是一个问题,我为此看到的C#示例一个接一个地做了。
但最喜欢的问题是,您似乎使用表单控件为设置对象设置了一些值,并在表单初始化时执行此操作,此类控件通常没有可用值。如果你很难将值编码到控件中,那么对设置对象这样做会更好。如果您在设计时没有将值硬编码到控件中,那么这可能是您的问题(与您的身份验证错误非常吻合)。
答案 2 :(得分:0)
我刚刚发现我的代码问题是youtube没有问我一个用户名(但我确实有我的youtube帐户,疯了...... XD)...然后我再次尝试了代码并且它有效。还要感谢@jmoreno。