一、注册Google Cloud Console
打开Google Console:https://console.cloud.google.com/
1、创建一个新项目
在导航栏下拉,创建一个新项目,1个用户免费可以创建12个项目
2、开通Credentials
在菜单栏点击进入Credentials,创建一个新的Credentials,选择API KEY,创建成功后保存API KEY,所有的API都需要这个KEY
3、开通YouTube Data API V3
进入API Libraries,选择YouTube Data API V3,点击开启,现在API就可以使用YouTube的服务啦
二、获取YouTube视频
1、获取YouTube视频对应作者的主页ID
# 根据视频ID获取频道ID
async def youtubeVideoApi(video_ids):
url = f"https://youtube.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2Cstatistics&id={video_ids}&key={API_KEY}"
response = requests.get(url)
videos = response.json()
channel_ids = []
for video in videos.get('items', []):
try:
channelId = video['snippet']['channelId']
channel_ids.append(channelId)
except Exception:
continue
return channel_ids
2、获取作者主页下的YouTube视频
# 根据频道ID获取频道下的视频
async def youtubeSearchApi(channel_id):
url = f"https://youtube.googleapis.com/youtube/v3/search?part=snippet&channelId={channel_id}&order=date&maxResults=1&type=video&key={API_KEY}"
response = requests.get(url)
videos = response.json()
apivideos = []
for video in videos.get('items', []):
try:
id = video.get('id', {})
video_id = id.get('videoId', '')
video_link = f"https://www.youtube.com/watch?v={video_id}"
apivideos.append(video_link)
except Exception:
continue
return apivideos
3、根据YouTube视频ID获取视频字幕
需要安装langchain:pip3 install langchain
# 根据视频ID获取视频字幕
async def getYoutubeSubtitle(video_url):
loader = YoutubeLoader.from_youtube_url(
video_url,
add_video_info=True,
language=["zh-Hans"],
translation="zh-Hans"
)
response = loader.load()
print(response)
return response
三、注意
每个项目每天免费额度是1万,不同的API每次消耗额度不同(多个项目循环请求账号会被封禁),详细API文档参见:https://developers.google.com/youtube/v3?hl=zh-cn