Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Youtube API-使用vb.net上载大型文件_Vb.net_Api_Youtube - Fatal编程技术网

Youtube API-使用vb.net上载大型文件

Youtube API-使用vb.net上载大型文件,vb.net,api,youtube,Vb.net,Api,Youtube,我正在尝试使用VB.NET中的API将一个大(4MB+)文件上传到youtube。 较小的文件可以上传,但任何大于4MB的文件都会出现一个错误,我认为这实际上与超时有关:请求被中止:请求被取消 我读了又读了API doco、Google等,想在VB.NET中找到一个例子,但VB.NET似乎什么都没有 一些程序员遇到了同样的问题,他们的回答都围绕着c#或Java——我对这两种语言都不熟悉。 我尝试了settings.timeout和settings.maximum的不同组合,但似乎并没有什么不同

我正在尝试使用VB.NET中的API将一个大(4MB+)文件上传到youtube。 较小的文件可以上传,但任何大于4MB的文件都会出现一个错误,我认为这实际上与超时有关:请求被中止:请求被取消

我读了又读了API doco、Google等,想在VB.NET中找到一个例子,但VB.NET似乎什么都没有 一些程序员遇到了同样的问题,他们的回答都围绕着c#或Java——我对这两种语言都不熟悉。 我尝试了settings.timeout和settings.maximum的不同组合,但似乎并没有什么不同

目前的代码是:

子上传YouTube(ByVal sSourceFile作为字符串,ByVal sTitle作为字符串,ByVal Smedicategory作为字符串,ByVal sDesc作为字符串) Dim UseTings作为YouTube请求设置,uRequest作为YouTube请求,newVideo作为视频,CreatedVideo作为视频,VideoId作为字符串 Dim vContentType为String=“video” 尝试 uSettings=新的YouTube请求设置(,)

非常感谢您的帮助


Tony

Python示例:三个月前做过,希望有帮助。

我尝试使用backgroundworker解决超时问题。在某种程度上,它是有效的。它似乎并没有真正在后台工作。我认为RunWorkerAsync将启动,继续执行下一个命令,然后返回。相反,它只是挂起几分钟,就像上传整个75MB文件一样,然后成功发回。但是,如果我拿走backgroundworker并只是执行上传,它就会像你的一样失败。这是我的代码,这种工作方式

Sub up_load(s As Object, e As EventArgs)
    Dim worker As BackgroundWorker = New BackgroundWorker

    worker.WorkerReportsProgress = True
    worker.WorkerSupportsCancellation = True
    AddHandler (worker.DoWork), AddressOf begin_upload
    worker.RunWorkerAsync()
    lblmsg.Text = "Successfully initiated upload"
End Sub

Sub begin_upload(s As Object, e As DoWorkEventArgs)

    Dim request As New YouTubeRequest(settings)
    Dim vidupload As New Video()

    vidupload.Title = "My Big Test Movie"
    vidupload.Tags.Add(New MediaCategory("Nonprofit", YouTubeNameTable.CategorySchema))
    vidupload.Keywords = "church, jesus"
    vidupload.Description = "See the entire video"
    vidupload.YouTubeEntry.Private = False
    vidupload.YouTubeEntry.setYouTubeExtension("location", "Downers Grove, IL")
    vidupload.YouTubeEntry.MediaSource = New MediaFileSource("c:\users\greg\test3.asf", "video/x-ms-wmv")

    Dim createdVideo As Video = Request.Upload(vidupload)
End Sub

谢谢,但对我来说(不熟悉python)有点模糊,我上传的代码示例只是(应该)获取一个文件,进行身份验证和上传。对于小文件-没有问题。为什么它不适用于更大的文件?我对Vb.net不太精通抱歉,我能告诉你的是python gdata youtube API是一个让人头疼的东西。它经常变化,这意味着你的代码不再工作了,文档也太可怕了。正如我说的,我不知道Vb.net,但是你真的需要使用它吗?从VB的幸福感来看,使用我熟悉的工具是有意义的!这是一个大得多的程序的一小部分,负责它的程序员团队都是VB网络程序员。我认为这与这里提到的配额使用有关。。。但我的评论的重点是建议您不要使用文件扩展名来计算MIME类型,而是使用“Winista”进行二进制分析,请参阅我这里的方法,它求助于URLMon,最后一个答案:
Sub up_load(s As Object, e As EventArgs)
    Dim worker As BackgroundWorker = New BackgroundWorker

    worker.WorkerReportsProgress = True
    worker.WorkerSupportsCancellation = True
    AddHandler (worker.DoWork), AddressOf begin_upload
    worker.RunWorkerAsync()
    lblmsg.Text = "Successfully initiated upload"
End Sub

Sub begin_upload(s As Object, e As DoWorkEventArgs)

    Dim request As New YouTubeRequest(settings)
    Dim vidupload As New Video()

    vidupload.Title = "My Big Test Movie"
    vidupload.Tags.Add(New MediaCategory("Nonprofit", YouTubeNameTable.CategorySchema))
    vidupload.Keywords = "church, jesus"
    vidupload.Description = "See the entire video"
    vidupload.YouTubeEntry.Private = False
    vidupload.YouTubeEntry.setYouTubeExtension("location", "Downers Grove, IL")
    vidupload.YouTubeEntry.MediaSource = New MediaFileSource("c:\users\greg\test3.asf", "video/x-ms-wmv")

    Dim createdVideo As Video = Request.Upload(vidupload)
End Sub