C# 通过URL检索YouTube洞察

C# 通过URL检索YouTube洞察,c#,youtube,C#,Youtube,我正在尝试使用C#检索YouTube洞察。 我已经能够用下面的代码检索视频ID, 然而,我无法获得这些见解。我希望 通过使用视频ID,我可以访问以下URL: 虽然这个URL似乎不起作用 有什么想法吗?一个具体的C#代码示例将是非常宝贵的 public class UnixTime { public static string ToUnixTime(DateTime dateTime) { return (Math.Round((dateTime - new Dat

我正在尝试使用C#检索YouTube洞察。
我已经能够用下面的代码检索视频ID, 然而,我无法获得这些见解。我希望 通过使用视频ID,我可以访问以下URL:

虽然这个URL似乎不起作用

有什么想法吗?一个具体的C#代码示例将是非常宝贵的

public class UnixTime
{
   public static string ToUnixTime(DateTime dateTime)
    {
        return (Math.Round((dateTime - new DateTime(1970, 1, 1, 0, 0, 0).ToLocalTime()).TotalSeconds, 0)).ToString() ;
    }
}



public void PrepareAndDownloadFile(string username, string password, string token, 
                                   string channel,  string destination)
{

    YouTubeRequestSettings settings = new YouTubeRequestSettings(channel, token, username, password);
    YouTubeRequest request = new YouTubeRequest(settings);
    string feedUrl = String.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads?v=2", channel);
    Feed<Video> videoFeed = request.Get<Video>(new Uri(feedUrl));

    foreach (Video video in videoFeed.Entries)
    {
        StringBuilder url = new StringBuilder();

        url.Append("https://insight.youtube.com/video-analytics/csvreports");
        url.Append(String.Format("?query={0}", video.VideoId));
        url.Append("&type=v");
        url.Append(String.Format("&starttime={0}", UnixTime.ToUnixTime(DateTime.Now.AddDays(SINCE_OFFSET))));
        url.Append(String.Format("&endtime={0}", UnixTime.ToUnixTime(DateTime.Now.AddDays(UNTIL_OFFSET))));
        url.Append("&region=world");
        url.Append("&hl=en_US");
        url.Append(String.Format("&userName={0}", username));
        url.Append(String.Format("&password={0}", password));
        url.Append(string.Format("&token={0}", token));

        // make Http Request here given the new url.

        dynamic rows = GetPath(url.ToString());
        processor.WriteRows(destination, rows);
     }
 }
公共类UnixTime
{
公共静态字符串ToUnixTime(DateTime DateTime)
{
return(Math.Round((dateTime-newdatetime(1970,1,1,0,0,0).ToLocalTime()).TotalSeconds,0)).ToString();
}
}
public void PrepareAndDownloadFile(字符串用户名、字符串密码、字符串令牌、,
字符串通道,字符串目标)
{
YouTuberRequestSettings=新的YouTuberRequestSettings(频道、令牌、用户名、密码);
YouTuberRequest请求=新建YouTuberRequest(设置);
string feedUrl=string.Format(“http://gdata.youtube.com/feeds/api/users/{0}/上传?v=2“,频道);
Feed videoFeed=request.Get(新Uri(feedUrl));
foreach(videoFeed.Entries中的视频)
{
StringBuilder url=新的StringBuilder();
url.Append(“https://insight.youtube.com/video-analytics/csvreports");
Append(String.Format(“?query={0}”,video.VideoId));
url.Append(“&type=v”);
Append(String.Format(“&starttime={0}”),UnixTime.ToUnixTime(DateTime.Now.AddDays(自偏移量));
Append(String.Format(“&endtime={0}”,UnixTime.ToUnixTime(DateTime.Now.AddDays(UNTIL_OFFSET)));
url.Append(“®ion=world”);
url.Append(“&hl=en_US”);
Append(String.Format(“&userName={0}”,userName));
Append(String.Format(“&password={0}”,password));
Append(string.Format(“&token={0}”,token));
//在给定新url的情况下在此发出Http请求。
动态行=GetPath(url.ToString());
processor.WriteRows(目标,行);
}
}

Jeffrey Posnick邮报回复

上午10:53(1小时前)

你好,

我没有现成的C代码,但我可以告诉你 你做错了。您不应该手动创建YouTube 洞察网址。你不能这么做。你好像在用你的YouTube 身份验证令牌作为“token=”URL参数的值,以及 在URL中粘贴用户名和密码是一种很好的方法,但是 这完全是错误的做法。Insight URL是唯一的 由API生成,并在对 元素中该条目所有者的视频条目。这是 解释于

同样,您不能手动创建URL。你唯一需要的时候 如果要修改,请修改自动生成的URL user_starttime或user_endtime参数,也包括在内 在文档中

干杯, -Jeff Posnick,YouTube API团队 groups.google.com/group/youtube-api-gdata | apiblog.youtube.com |
@YouTubeDev

杰弗里·波斯尼克邮报回复

上午10:53(1小时前)

你好,

我没有现成的C代码,但我可以告诉你 你做错了。您不应该手动创建YouTube 洞察网址。你不能这么做。你好像在用你的YouTube 身份验证令牌作为“token=”URL参数的值,以及 在URL中粘贴用户名和密码是一种很好的方法,但是 这完全是错误的做法。Insight URL是唯一的 由API生成,并在对 元素中该条目所有者的视频条目。这是 解释于

同样,您不能手动创建URL。你唯一需要的时候 如果要修改,请修改自动生成的URL user_starttime或user_endtime参数,也包括在内 在文档中

干杯, -Jeff Posnick,YouTube API团队 groups.google.com/group/youtube-api-gdata | apiblog.youtube.com |
@YouTubeDev

具体来说,什么不起作用?你的电脑坏了吗?您收到错误消息了吗?我应该能够在浏览器中输入此URL并检索数据:https://insight.youtube.com/video analytics/csvreports?query=video\u ID&type=v&starttime=133072299&endtime=1331677699®ion=world&hl=en\US&userName=userName&password=password&token=DEV\u-token&alt=json它应该以json字符串的形式返回。没有。第一个问题是什么是检索数据的正确咒语。@WillHughes-我从YouTube上得到的错误是404。具体来说,什么不起作用?你的电脑坏了吗?您收到错误消息了吗?我应该能够在浏览器中输入此URL并检索数据:https://insight.youtube.com/video analytics/csvreports?query=video\u ID&type=v&starttime=133072299&endtime=1331677699®ion=world&hl=en\US&userName=userName&password=password&token=DEV\u-token&alt=json它应该以json字符串的形式返回。没有。第一个问题是什么是检索数据的正确咒语。@WillHughes-我从YouTube上得到的错误是404.Hmmm…有人使用过.NETAPI检索见解吗?我正在提供YouTube帐户的电子邮件地址和密码。令牌是dev密钥。从调用Feed videoFeed=request.Get(新Uri(feedUrl))返回的视频对象;没有任何可以查询的链接集合或列表。这是YouTube.Net界面提供商的疏忽,还是我做了一些不正确的事情?你能让你的.NETAPI开发者告诉我在提要列表中的链接对象在哪里吗?谢谢。嗯……有人使用过.NETAPI来检索见解吗?我正在提供YouTube帐户的电子邮件地址和密码。令牌是dev密钥。从调用Feed videoFeed=request.Get(新Uri(feedUrl))返回的视频对象;没有任何可以查询的链接集合或列表。是