youtube api 获取频道货币化状态?

Posted

技术标签:

【中文标题】youtube api 获取频道货币化状态?【英文标题】:youtube api to get channel monetization status? 【发布时间】:2016-10-29 00:50:51 【问题描述】:

是否有任何 API 可以检查 Youtube 频道的获利状态?也适用于 youtube 视频。我尝试了 youtube 数据 api,但没有得到。或任何其他 api 来知道货币化是打开还是关闭。

【问题讨论】:

【参考方案1】:

我知道很久以前有人问过这个问题,但现在我仍然发现了这个需求。所以在 YouTube API 文档中搜索了很多之后,我发现 Google 没有提供这个,所以我创建了一个小解决方法。

基本上,我所做的是使用指标估计收入生成分析报告,如果我遇到“禁止错误”或 403,我再次尝试将指标更改为没有估计收入。如果这一次获得的报告数据没有错误,则意味着该频道没有任何收入,因此没有获利。

我使用 nodejs 来说明这一点,因为这是我在我的项目中使用的,但您可以适应任何其他语言。您可能想查看 Google 官方客户端库:

https://developers.google.com/youtube/v3/libraries

sn-p 的代码是这样的:

let isMonetized = true;
this.metrics = 'views,comments,likes,dislikes,estimatedMinutesWatched,grossRevenue,estimatedRevenue'

while (true) 

    try 

        const youtubeAnalytics = googleapis.google.youtubeAnalytics( version: 'v2', auth );

        const response = await youtubeAnalytics.reports
            .query(
                endDate: '2030-12-30',
                ids: 'channel==MINE',
                metrics: this.reportMetrics,
                startDate: '2000-01-01',
            );

        const responseData = response.data;

        const analyticsInfo = 

            channelId,
            channelName: youtubeTokens[channelId].channelName,
            views: responseData.rows[0][0],
            comments: responseData.rows[0][1],
            likes: responseData.rows[0][2],
            dislikes: responseData.rows[0][3],
            estimatedMinutesWatched: responseData.rows[0][4],
            grossRevenue: responseData.rows[0][5] !== undefined
                ? responseData.rows[0][5]
                : 'Not monetized',
            estimatedRevenue: responseData.rows[0][6] !== undefined
                ? responseData.rows[0][6]
                : 'Not monetized',

        ;

        return analyticsInfo;

     catch (error) 

        if (error.code === 403 && isMonetized) 

            console.log('Could not get reports. Trying again without revenue metrics');
            this.reportMetrics = 'views,comments,likes,dislikes,estimatedMinutesWatched';
            isMonetized = false;

         else 

            console.log(error);

            return false;

        

    


【讨论】:

以上是关于youtube api 获取频道货币化状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得YouTube频道的you-tube订阅者订阅列表?

Youtube api 从精选频道模块中获取频道

如何使用 Youtube API 获取 Youtube 频道横幅?

YouTube API用于获取频道上的所有视频

YouTube API:如何通过频道名称获取频道 ID?

YouTube 数据 API - 从电子邮件中获取频道 ID