C#
Unity
YouTubeAPI

UnityでYouTubeLiveのAPIを叩きに行く メモ

メモです

YouTubeLiveAPIを叩きに行って、コメントを取得したかったもののまだ途中です。
忘れないためのメモ。
コードが汚いのは、メモなので勘弁してほしい。

UnityでYoutubeAPIを叩きに行く

private IEnumerator GetYoutubeAPI()
    {

        UnityWebRequest request = UnityWebRequest.Get(uri);

        yield return request.SendWebRequest();

        if(request.isHttpError || request.isNetworkError)
        {
            Debug.Log(request.error);
        }
        else
        {
            Debug.Log(request.downloadHandler.text);
        }
    Debug.Log(request.downloadHandler.text);
}

コルーチン内で、UnityWebRequestを作って、Get(uri)で、呼びに行く。
uriは、上の方で適当に定義する。

Debug.Log(request.downloadHandler.text);

これで、コンソールにJSONのログが出現する。

yield return request.SendWebRequest();

yield 節の意味を未だによくわかってない。誰か教えて。

とりあえずこれで、JSONデータがとれます。

YouTubeLiveのコメントを見に行く。

たどる順番。

  • チャンネルIDを知っているとする
  • videoIDを取得
  • chatIDを取得
  • チャットを取りに行く!

JSONのパースで大いにハマる。

結局、Unity標準のJsonUtilityは使い方がわからなかったので、MiniJSONを使用。
JSONの辿り方としてこれで正しいか全くわからないけど、
videoID取りに行くときのやり方をメモしておく。

 //MiniJSON つかうー!!!!
        var mjson = (IDictionary)MiniJSON.Json.Deserialize(jsontext);

        var mitems = (IList)mjson["items"];
        var mid = (IDictionary)mitems[0];
        var sid = (IDictionary)mid["id"];
        //videoIdを取得
        videoId = (string)sid["videoId"];

中に配列がはいっていてもパースできることがわかったので良かった。
こんな感じで、URI作って投げて、返ってきた値を、突っ込んで投げてすればチャットとれます。

全然まとまってないのは、そのうちちゃんとかきます。
まだ、表示部までできてないので・・・。

参考と言うか、ほぼそのままと言うか

JSONをパース

https://qiita.com/phi/items/914bc839b543988fc0ec
https://qiita.com/asus4/items/bac121c34cd3169116c0

YoutubeLive

https://blog.sky-net.pw/article/86
https://qiita.com/minakawa-daiki/items/2568afdc6d88a0de705a

その他もろもろ・・・。
うぅ。出来る人なら1時間もあれば出来ることを僕はまるっと一日かかってしまった。(しかもまだ途中

もっとこうした方がいいよ、。とか言うことがあれば、教えて下さい。お願いします。
あと、コルーチンとかまだまだよくわかってないし。。。