我们经常会遇到这样一个需求,比如我在自己频道上传的youtube视频,也有对应的视频描述,但是有一天我想给我所有的视频都添加上一段新的描述。如下图:

那么这种情况怎么办,如果视频少的话,手动一个一个添加上还行,但是如果视频很多的话,那么有没有一个方法可以快速批量添加呢?
那么今天我们就试着用make这个自动化工具,看看如何来完成这个需求。
首先我们看看在make里的流程的所有的节点,如下图:

接下来我们就挨个看看每个节点是什么,如何进行配置。
1、添加http节点
首先我们需要获取到频道的视频列表,这里我们用http节点,通过youtube API的查询接口,来获取到视频列表。
这个节点我们配置几个字段
(1)配置URL和Method

URL就是youtube的查询接口,https://www.googleapis.com/youtube/v3/search
Method我们选择GET方法。
(2)Query String
根据自己的查询要求来配置参数。(youtube的接口文档:https://developers.google.com/youtube/v3/docs/search/list?hl=zh-cn)
比如这里我们配置这几个参数
①part:snippet 这是一个必需参数,将参数值设为 snippet
②type:video 只查询出类别为video的视频
③channelId:XXX XXX这里要写自己频道的ID
④maxResults :2 应返回的数量上限。这里我们写2,返回2个来试试
⑤key : XXX XXX这里写上自己的API key
除了上面几个参数,你也可以根据接口文档配置对应你需要的参数,比如视频上传的日期范围,观看量等。
那么查询的节点就完成了。
我们可以先点击运行试试看

看到运行结果的output是已经正常的返回数据了,说明这个节点是OK的。

第一个节点就配置完成了。
2、JSON节点
添加一个JSON节点,选择parse JSON的操作

然后把第一个节点的data字段拖拽到JSON string里。这里主要是为了解析和结构化data数据

运行后看下结果。会看到输出了一个数组,里面包含了每个视频的视频信息。这种结构对于我们后面去循环每个视频的信息并插入描述会比较方便。

3、Iterator
Iterator是迭代器节点,这个节点怎么理解?它可以将数组转换为一系列bundle。每个数组项将作为一个单独的bundle输出。
比如我们把上个节点的items数组放在array里

然后我们执行看看。 会发现Iterator把数组拆分成了单独的两个bundle的数组

后面我们就针对每个bundle里的videoId分别去获取详细的视频信息。
4、http节点
这个节点,我们再一次用到youtube API的查询接口,目的就是获取每个视频的详细信息。
比如第二个节点,我们就获取到了两个视频,那么这一步我们就通过视频的videoId,来分别去获取详细的视频信息。
其他URL等配置就不详细说明了,不同的是,这里的Query String,我们需要选择到videoId

我们把上个节点获取到的videoId,拖拽到value里作为一个查询参数。
执行后我们看看效果。
这里是输出了两个视频的视频信息。

点击其中一个看看,我们是已经得到了视频的详细信息,包括description,也就是最后我们需要插入内容的字段。

5、JSON节点
添加一个JSON节点,选择parse JSON的操作
这里我们就把视频信息的数据结构化出来了。

6、http节点
最后一个节点,我们就要来更新youtube的视频描述了。这里我们添加一个http节点。
这个http节点,我们需要选择OAuth 2.0的操作

这里我们需要用OAuth 2.0的授权方式来进行连接,需要客户端id和秘钥,客户端id和秘钥的信息可以去谷歌开发者平台来获取

url为https://www.googleapis.com/youtube/v3/videos
method为put方法

header:
添加一个name:Content-Type , value:application/json
Query String:
添加一个name:part , value:snippet
body type这里,我们选择raw
Content type选择JSON
最后在Request content这里,我们需要去写一个JSON
这里就需要把我们需添加的文本内容放在description里面了。

这样的话整个工作流就配置好了,执行后,就可以给对应的视频添加上新的描述了。
建议一开始可以先选1到2个视频试试,如果没什么问题的话可以再大批量进行添加。