YouTubeのライブチャットのコメントをすべて取得しようとしています。 UnityでUnityクライアントでWWW
リクエストを受け取っています。 YouTube APIは、nextPageToken = {RANDOM_TOKEN}
を提供しています。次のページの結果を得るには、最初のページに75個のコメントしか表示されないためです。YouTubeライブチャットAPIとpollingIntervalMillis
私のクライアントは、nextPageTokensが提供されているすべてのページを通過し、すべてのコメントを取得してローカルに保存します。 残念ながら、YouTubeでは、APIリクエストが10秒ごとにpollingIntervalMillis = 10000
で定義されているようです。次のコメントページを取得するときは、10秒以上何度も何度も待つ必要があります。それ以外の場合はエラーrateLimitExceeded
が返されます。
私のブラウザ(Safari)でHTTPリクエストを閲覧すると、問題は発生せず、他のすべてのページでも高速にしたいというリクエストを行うことができます。
10秒ごとより速く各ページのすべてのコメントをどのように得ることができますか? 500件のコメントと75件のコメントが各ページに表示されている場合、すべてのコメントを取得するには1分ほど待つ必要があります。ちょっと奇妙に思える。可能性があります。
は、あなたたちはここに私を助けることを願って:)
アップデート1 私の要求にユーザーエージェントを追加するためのユーザーの助けを借りて、今、私の要求は次のようになります。
Dictionary<string, string> headers = new Dictionary<string, string>();
headers.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50");
WWW www = new WWW(url_2, new byte[] {(byte) 0}, headers);
StartCoroutine(WaitForRequest(www));
リクエストは機能しますが、今は401 Unauthorizedというエラーが表示されています。私はAPIウェブサイトをもう一度チェックし、エラー401はliveChatMessages list
に含まれる可能性のあるエラーでも表示されません。唯一必要なのはliveChatId
と私のAPIアクセスキーです。私は両方を持っていますが、ログインする必要はありません。 私のコードは次のようになります場合:
WWW www = new WWW(url_2);
StartCoroutine(WaitForRequest(www));
私は結果を取得していますが、これは私の元のコードだったので、私は私の次の要求までに10秒を待たなければなりません。どんな助け?
アップデート2 私はpollingIntervalMillis
が実際に生きているとしてくるコメントの量のストリームに依存していることが分かった。 私はオンライン私のストリームを始めたとき、私のストリームは、オフラインで私のpollingIntervalMillis
は10000 であった場合には私のpollingIntervalMillis
は6000だった。 私はチャットをスパムでいっぱいにして、pollingIntervalMillis
は約1000になった。 ストリームがライブであるときにリフレッシュレートが大幅に下がっているので、私の最初の問題はもう本当の問題ではないチャットはアクティブです。
この投稿は他の人にも役立つかもしれません!