API V3の実装と移行に関するYouTubeの公式ドキュメントとして、次のように述べています。
YouTube Data API(v2)機能: 推奨ビデオを取得
v3 APIは、現在のAPIユーザーに推奨されるビデオのみを含むリストを取得しません。ただし、v3 APIを使用して、activities.listメソッドを呼び出し、homeを設定することで、推奨される動画を見つけることができます。 パラメータ値をtrueに設定します。
ただし、パラメータ home
も非推奨になりました。現在、home
パラメータをtrue
に設定すると、チャンネルに最近アップロードされた動画のみが取得されます: YouTubeで人気の動画 。 snippet.type=recommendation
のビデオはまったくありません。
認証されたユーザーの推奨動画を新しいフィードに表示する必要がありますが、この機能はYouTubeによって完全に非推奨になっているようです。誰かがその解決策を持っていますか?
最初に感謝します!
残念ながら、この機能に関するドキュメントや例は見つかりません。これは非推奨になっているようです。ただし、これを確認することはできます documentationrecommendation :などのアクティビティリソースの形式を示すサンプルJSON構造を使用してください。
"recommendation": {
"resourceId": {
"kind": string,
"videoId": string,
"channelId": string,
},
お役に立てれば!
APIのドキュメントには、リクエストをテストする方法が含まれています。そこにあるコードサンプルは、認証されたリクエストに対して「mine」を設定する方法を示しています。
これはAndroidサンプルコードです。バックグラウンドスレッドにある必要があります。channelList応答のsetmine = trueはホームのようなものです(私は思います)。実装が次の目的であるかどうかはわかりませんでした。 Webまたはアプリ。
これはAndroidコード:
YouTube youtube = new YouTube.Builder(transport, jsonFactory,
credential).setApplicationName(getString(R.string.app_name))
.build();
YouTube.Activities.List activities;
ActivityListResponse activityListResponse = null;
List<ActivityData> activitiesData = new ArrayList<ActivityData>();
try {
/*
* Now that the user is authenticated, the app makes a
* channels list request to get the authenticated user's
* channel. Returned with that data is the playlist id for
* the uploaded videos.
* https://developers.google.com/youtube
* /v3/docs/channels/list
*/
ChannelListResponse clr = youtube.channels().list("contentDetails")
.setMine(true).execute();
activities = youtube.activities().list("id,snippet,subscriberSnippet");
activities.setChannelId(clr.getItems().get(0).getId());
activities.setMaxResults((long) 50);
activityListResponse = activities.execute();
ArrayList<String> subscriptionListIdentifier = new ArrayList<String>()
,listTitles = new ArrayList<String>()
,listThumbnails = new ArrayList<String>();
List<Activity> results = activityListResponse.getItems();
for (Activity activity : results) {
listTitles.add(activity.getSnippet().getTitle());
listThumbnails.add(activity.getSnippet().getThumbnails().getDefault().getUrl());
subscriptionListIdentifier.add(activity.getId());
//if ("public".equals(playlist.getStatus()
// .getPrivacyStatus())) {
ActivityData data = new ActivityData();
data.setActivity(activity);
activitiesData.add(data);
//}
}
return activitiesData;
次のAPI呼び出しを使用してそれらを取得できます。
GET https://www.googleapis.com/youtube/v3/activitiespart=snippet%2CcontentDetails&channelId={channel—_Id}&maxResults=25®ionCode=tw&key={YOUR_API_KEY}