2012-03-12 99 views
1

我試圖使用C#檢索YouTube洞察。
我已經能夠檢索下面的代碼, 視頻ID,但是,我無法檢索到的見解。我希望通過使用視頻ID 我可以在以下網址發出GET:通過URL檢索YouTube洞察

https://insight.youtube.com/video-analytics/csvreports?query=VIDEO_ID&type=v&starttime=1330727299&endtime=1331677699&region=world&hl=en_US&userName=USERNAME&password=PASSWORD&token=DEV_TOKEN

雖然這個網址似乎並沒有工作。

任何想法?一個特定的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); 
    } 
} 
+0

什麼,具體而言,不起作用?你的電腦爆炸了嗎?你收到錯誤信息了嗎? – 2012-03-13 00:24:31

+0

我應該能夠進入這個網址到我的瀏覽器和檢索數據: HTTPS://insight.youtube.com/video-analytics/csvreports?query=VIDEO_ID&type=v&starttime=1330727299&endtime=1331677699®ion=world&hl=en_US&userName= USERNAME&password = PASSWORD&token = DEV_TOKEN&alt = json 它應該以JSON字符串的形式返回。它沒有。第一個問題是什麼是檢索數據的恰當咒語。 – 2012-03-13 00:43:27

+0

@WillHughes - 我從YouTube獲得的錯誤是404。 – 2012-03-13 00:46:11

回答

1

傑弗裏Posnick發表回覆

上午10時53分(1小時前)

你好,

我沒有任何的C#代碼一應俱全,但我可以告訴你什麼 你做錯了。您不應手動創建YouTube網址 洞察網址。你做不到。您似乎正在使用您的YouTube 身份驗證令牌作爲「token =」網址參數的值,並且 會將您的用戶名和密碼粘貼到網址中以獲得良好效果,但這完全是錯誤的方法。洞察URL是由API生成的唯一 ,並且在該項的所有者的視頻條目 的驗證請求中顯示在元素中。這是 在

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

解釋同樣,你不能手動創建的URL。如果您想要修改 user_starttime或user_endtime參數(這在文檔中也涵蓋了 ),您唯一需要修改自動生成的URL的唯一時間就是 。

乾杯, -Jeff Posnick,YouTube API團隊 groups.google.com/group/youtube-api-gdata | apiblog.youtube.com | @YouTubeDev

+0

嗯......有沒有人曾使用.Net API檢索洞察力?我正在提供YouTube帳戶的電子郵件地址和密碼。令牌是開發密鑰。 從通話中回來的視頻對象 Feed