通过URL检索YouTube见解

本文关键字:见解 YouTube 检索 URL 通过 | 更新日期: 2023-09-27 18:27:28

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

https://insight.youtube.com/video-analytics/csvreports?query=VIDEO_ID&type=v&起始时间=1330727299&结束时间=1331677699&地区=世界&hl=en_US&userName=userName&password=password&token=DEV_token

尽管这个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);
     }
 }

通过URL检索YouTube见解

Jeffrey Posnick Post回复

上午10:53(1小时前)

你好,

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

https://developers.google.com/youtube/2.0/developers_guide_protocol_insight

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

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