这是代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Extensions.MediaRss;
using Google.GData.YouTube;
using Google.YouTube;
namespace YoutubeTesting
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
YouTubeRequestSettings settings;
YouTubeRequest request;
string devkey = "AI39si6xhSQXx95FTYIACWPfq-lLIphblgaReuz9z6VEjR1Q6YjrV6FRN2U6FN6P6-lGF2OYaUZhCVOKJ_MCk4o6kPeUszvf5A";
string username = "tbout72";
string password = "password here";
private void Form1_Load(object sender, EventArgs e)
{
try
{
settings = new YouTubeRequestSettings("You Manager", devkey, username, password);
request = new YouTubeRequest(settings);
Video video = new Video();
video.Title = "test";
video.Tags.Add(new MediaCategory("Comedy", YouTubeNameTable.CategorySchema));
video.Keywords = "Comedy";
video.Private = false;
video.MediaSource = new MediaFileSource("d:\\P9170031.MOV", "video/MOV");
request.Upload(video);
MessageBox.Show("Successfully Uploaded");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
我从 http://code.google.com/p/google-gdata/downloads/list引用了一些 dll 文件 我下载了两个文件:Google_Data_API_Setup_1.9.0.0.msi Google Data API Setup (1.9) 和 YouTube_SDK_1.9.0。 0.msi
现在我尝试再次上传视频文件,这个视频文件并且上传得很好,一次没有问题,视频在 youtube.com 上运行但即使它在我的代码中运行,我也遇到异常错误。无论上传是否正常,我都会遇到异常。
- 程序运行并挂了几分钟,运行时我看不到form1。
- 几分钟后,我得到了例外。
即使我得到了异常,并且每次程序运行时我都会得到它,但文件上传得很好。
我不知道为什么,但我看到该文件被上传了 3-5 次,并且有一次或两次上传得很好,其他文件被拒绝,因为它是重复的。但是我运行了一次程序,为什么有时它会一次上传文件这么多次?现在我又试了一次;该程序不再运行,我在 10 分钟前关闭了它。并且在完成该过程后看到文件上传并正在处理我再次看到文件上传,现在它被拒绝,因为它是重复的。但是,如果程序没有运行,为什么还要继续上传文件呢?
上传之间的时间大约是 14 分钟,我的程序关闭了同一个文件我没有再运行它,但是我看到两个同名的文件,同一个文件:一个可以,一个因重复而被拒绝。
所以我现在有3个问题:
运行程序时看不到form1,就像程序挂起一样。
一直出现异常错误。
该文件不止一次上传。
异常上线:request.Upload(video);
异常错误信息是:执行请求失败:
https://uploads.gdata.youtube.com/feeds/api/users/default/uploads
这是完整的例外:
Google.GData.Client.GDataRequestException was caught
Message=Execution of request failed: https://uploads.gdata.youtube.com/feeds/api/users/default/uploads
Source=Google.GData.Client
StackTrace:
at Google.GData.Client.GDataRequest.Execute()
at Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter)
at Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter)
at Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter)
at Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter)
at Google.GData.Client.GDataGAuthRequest.Execute()
at Google.GData.Client.MediaService.EntrySend(Uri feedUri, AtomBase baseEntry, GDataRequestType type, AsyncSendData data)
at Google.GData.Client.Service.Insert(Uri feedUri, AtomEntry newEntry, AsyncSendData data)
at Google.GData.Client.Service.Insert[TEntry](Uri feedUri, TEntry entry)
at Google.GData.YouTube.YouTubeService.Upload(String userName, YouTubeEntry entry)
at Google.YouTube.YouTubeRequest.Upload(String userName, Video v)
at Google.YouTube.YouTubeRequest.Upload(Video v)
at YoutubeTesting.Form1.Form1_Load(Object sender, EventArgs e) in D:\C-Sharp\Youtube_Testing\YoutubeTesting\YoutubeTesting\Form1.cs:line 47
InnerException: System.Net.WebException
Message=The operation has timed out
Source=System
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
at Google.GData.Client.GDataRequest.Execute()
InnerException:
form1.cs 上的第 47 行是:request.Upload(video);
现在我再次看到它上传了 4 次文件:无法弄清楚为什么以及如何继续上传文件。其中3个文件因重复而被拒绝,一个可以!
我问了一个人,他告诉我这对他有用,没有任何问题。
我正在使用 Visual Studio 2010 pro .net 4.0 Windows 7 64bit。
我多次检查了我的 YouTube 登录名和密码,也在我的 Gmail 中检查了相同的问题和异常。