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

如何在YouTube API中设置「为儿童制作」标识?

解决Java YouTube API设置COPPA儿童标识的问题

别担心,你找错地方啦——COPPA要求的「是否为儿童制作」标识不是snippet对象的属性,而是在单独的status对象里,不管是上传普通视频还是创建直播,都需要通过这个对象来配置。我给你详细说下具体操作:

1. 核心属性说明

这个标识对应的属性是madeForKids,是一个布尔值:

  • 设置为true:表示内容专为儿童制作
  • 设置为false:表示内容不针对儿童(或仅部分面向)

需要注意的是,调用API时必须确保请求的part参数包含status,否则这个属性的设置会被直接忽略。

2. 上传视频时的配置示例

用Java API上传视频时,除了常规的snippet设置,还要单独构建VideoStatus对象并赋值:

// 初始化YouTube服务实例(这里假设你已经完成了授权等前置操作)
YouTube youtube = new YouTube.Builder(new NetHttpTransport(), new JacksonFactory(), credential)
        .setApplicationName("你的应用名称")
        .build();

// 创建视频对象
Video video = new Video();

// 设置视频的基础信息(snippet部分)
VideoSnippet snippet = new VideoSnippet();
snippet.setTitle("儿童科普小课堂");
snippet.setDescription("专为6-12岁儿童打造的科学启蒙内容");
video.setSnippet(snippet);

// 设置COPPA相关的status属性
VideoStatus status = new VideoStatus();
status.setMadeForKids(true); // 根据你的内容实际情况设置true/false
video.setStatus(status);

// 发起上传请求,务必确保part参数包含"snippet,status"
Videos.Insert insertRequest = youtube.videos().insert("snippet,status", video);
// 这里添加媒体文件上传逻辑(比如setMediaContent等)
Video uploadedVideo = insertRequest.execute();

3. 创建直播时的配置示例

如果是直播内容,逻辑类似,只是对象换成LiveBroadcast和LiveBroadcastStatus:

// 初始化YouTube服务实例(同上)
YouTube youtube = new YouTube.Builder(new NetHttpTransport(), new JacksonFactory(), credential)
        .setApplicationName("你的应用名称")
        .build();

// 创建直播对象
LiveBroadcast broadcast = new LiveBroadcast();

// 设置直播的基础信息(snippet部分)
LiveBroadcastSnippet broadcastSnippet = new LiveBroadcastSnippet();
broadcastSnippet.setTitle("儿童手工直播课");
broadcastSnippet.setScheduledStartTime(new DateTime("2024-06-01T10:00:00.000Z"));
broadcast.setSnippet(broadcastSnippet);

// 设置直播的COPPA标识
LiveBroadcastStatus broadcastStatus = new LiveBroadcastStatus();
broadcastStatus.setMadeForKids(true);
broadcast.setStatus(broadcastStatus);

// 发起直播创建请求,part参数同样要包含"snippet,status"
LiveBroadcasts.Insert insertBroadcast = youtube.liveBroadcasts().insert("snippet,status", broadcast);
LiveBroadcast createdBroadcast = insertBroadcast.execute();

4. 更新已有内容的标识

如果需要修改已上传视频或已创建直播的COPPA标识,可以用update方法:

// 以更新视频为例
Video updateVideo = new Video();
updateVideo.setId("你的视频ID");

VideoStatus updateStatus = new VideoStatus();
updateStatus.setMadeForKids(false);
updateVideo.setStatus(updateStatus);

Videos.Update updateRequest = youtube.videos().update("status", updateVideo);
Video updatedVideo = updateRequest.execute();

总结一下:这个属性完全不是隐藏的,只是位置不在snippet里,只要确保part参数包含status,并正确设置madeForKids布尔值就可以了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:07:57