YouTube API V3 - 获取有关新Feed的推荐视频

时间:2017-03-27 13:37:39

标签: youtube youtube-api youtube-data-api

作为关于实施和移植到API V3的YouTube官方文档,他们说:

  

YouTube Data API(v2)功能:Retrieve video recommendations
  v3 API不会检索仅包含为当前API用户推荐的视频的列表。但是,您可以通过调用 activities.list 方法并将主页参数值设置为true来使用v3 API查找推荐视频。

但现在参数home也已被弃用。 目前,当我将home参数设置为true时,我只会检索频道中最近上传的视频:Popular video in YouTube。根本没有snippet.type=recommendation的视频。

我需要在新Feed中显示经过身份验证的用户的推荐视频,但YouTube似乎完全弃用了此功能。 任何人都有解决方案吗?
先谢谢!

3 个答案:

答案 0 :(得分:0)

api的文档包含一种测试请求的方法。代码示例显示如何设置' mine'用于经过身份验证的请求。

youtube activities

这是android示例代码。它需要在一些后台线程中。 channelList响应中的setmine = true就像家一样(我想)。不确定您的实施是针对网络还是应用程序。

这是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;

答案 1 :(得分:0)

您可以使用以下API调用来检索它们:

GET https://www.googleapis.com/youtube/v3/activitiespart=snippet%2CcontentDetails&channelId={channel—_Id}&maxResults=25&regionCode=tw&key={YOUR_API_KEY}

答案 2 :(得分:0)

我找到了这个youtubes search api。我们需要做的就是在relatedToVideoId中放置一个视频ID,它会给出与之相关的视频列表。