2012-03-12 8 views
1

C#を使用してYouTubeのインサイトを取得しようとしています。
以下のコードでビデオIDを取得することができました。 洞察を取得することはできません。私は 動画IDを使用して、私は、次のURLで取得を行うことができますことを願っています:このURLは動作していないよう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

具体的には動作しません。あなたのコンピュータは爆発するのですか?エラーメッセージが表示されましたか? –

+0

私は私のブラウザにこのURLを入力して、データを取得することができるはずです。 ます。https://insight.youtube.com/video-analytics/csvreports?query=VIDEO_ID&type=v&starttime=1330727299&endtime=1331677699®ion=world&hl=en_US&userName=ユーザー名&パスワード=パスワード&トークン= DEV_TOKEN&alt = json JSON文字列として返されます。それはしません。最初の質問は、データを検索するための適切な呪文である。 –

+0

@WillHughes - YouTubeからのエラーは404です。 –

答えて

1

ジェフリーPosnickポスト返信

10:53(1時間前)私は容易に利用可能な任意のC#のコードを持っていないが、私はあなたを伝えることができ

こんにちは、何が あなたは間違っています。 YouTube Insight URLを手動で作成しないでください。あなたはそれをすることはできません。あなたのYouTubeの 認証トークンを "token =" URLパラメータの値として使用しているようです。 URLにユーザー名とパスワードを貼っておいてください。 これはまったく間違ったアプローチです。インサイトURLは、APIによって生成された の唯一のものであり、そのエントリの所有者による ビデオエントリの認証リクエストで要素内に公開されます。これは、手動でURLを作成することはできません、

再び

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

で説明 です。あなたが に必要な唯一の時間は、 user_starttimeまたはuser_endtimeのパラメータを変更したい場合です。このパラメータは、ドキュメントの にも含まれています。

乾杯、 -Jeff Posnick、YouTube APIチーム groups.google.com/group/youtube-api-gdata | apiblog.youtube.com | @YouTubeDev

+0

Hmmm ... .Net APIを使用して洞察を取得したことがありますか? YouTubeアカウントの電子メールアドレスとパスワードを提供しています。トークンはdevキーです。 コールから戻ってくるビデオオブジェクト フィード

関連する問題