You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置API上传YouTube视频默认开启变现?或通过API按video_id开启?

关于YouTube Data API设置视频变现的问题解答

1. 能否设置API上传视频默认开启变现?

不行,目前YouTube Data API没有提供全局配置项,让通过API上传的视频默认开启变现功能。所有通过API上传的视频,若上传时未显式指定变现相关参数,默认都会关闭变现。

2. 是否可通过API调用按video_id开启变现?

可以,使用YouTube Data API的videos.update方法就能实现,具体步骤如下:

必要前提

  • 你的账号已加入YouTube Partner Program(YPP)且视频符合变现条件
  • 拥有带https://www.googleapis.com/auth/youtube.force-ssl权限的OAuth2凭证(需具备编辑视频的权限)

代码示例(Python)

首先安装依赖库:

pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib

然后编写开启变现的函数:

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

# 加载本地的OAuth2凭证文件(需提前完成授权流程)
creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/youtube.force-ssl'])
youtube_service = build('youtube', 'v3', credentials=creds)

def enable_video_monetization(video_id):
    try:
        # 构建更新请求
        update_request = youtube_service.videos().update(
            part="status,contentDetails",
            body={
                "id": video_id,
                "status": {
                    "allowMonetization": True,
                    "license": "youtube",  # 必须设置为youtube才能参与YPP变现
                    "privacyStatus": "public"  # 视频需为公开/未列出状态,私有视频无法变现
                },
                "contentDetails": {
                    "madeForKids": False  # 根据视频实际受众设置,儿童内容需调整规则
                }
            }
        )
        response = update_request.execute()
        print(f"视频 {video_id} 的变现功能已成功开启")
        return response
    except Exception as e:
        print(f"开启变现失败: {str(e)}")
        return None

# 调用示例,替换成你的视频ID
enable_video_monetization("你的视频ID")

额外建议:上传时直接开启变现

更高效的方式是在上传视频时就直接开启变现,无需事后修改。使用videos.insert方法上传时,在请求体中添加相同的变现参数即可:

def upload_video_with_auto_monetization(video_path, title, description):
    try:
        upload_request = youtube_service.videos().insert(
            part="snippet,status,contentDetails",
            body={
                "snippet": {
                    "title": title,
                    "description": description
                },
                "status": {
                    "allowMonetization": True,
                    "license": "youtube",
                    "privacyStatus": "public"
                },
                "contentDetails": {
                    "madeForKids": False
                }
            },
            media_body=video_path
        )
        response = upload_request.execute()
        print(f"视频上传完成,ID: {response['id']},已自动开启变现")
        return response
    except Exception as e:
        print(f"上传失败: {str(e)}")
        return None

内容的提问来源于stack exchange,提问作者alexlipa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:34:58