📅  最后修改于: 2023-12-03 15:08:24.603000             🧑  作者: Mango
在本文中,我们将介绍如何使用 Python 中的 Google API 客户端库和 YouTube Data API v3 来提取 YouTube 视频下的评论。
首先,需要在Google Cloud Console创建一个项目并启用 YouTube 数据 API v3、Google Sheets API 和 Google Drive API。接着,在“凭据”选项卡中创建一个 OAuth 2.0 客户端 ID。将生成的客户端 ID 和客户端密钥保存到文件中。
然后,使用以下命令安装 google-auth 和 google-api-python-client:
pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
在本教程中,我们将以以下形式读取凭据:
import google.auth
from google.oauth2.credentials import Credentials
creds = None
if not creds or not creds.valid:
flow = InstalledAppFlow.from_client_secrets_file(
'client_secrets.json', ['https://www.googleapis.com/auth/youtube.force-ssl'])
creds = flow.run_local_server(port=0)
Storage('token.pickle').put(creds)
youtube = googleapiclient.discovery.build(
'youtube', 'v3', credentials=creds)
你需要将 client_secrets.json 文件(由 Google Cloud Console 提供)存储在当前代码文件夹中。
我们可以使用 Videos: list
方法来获取 YouTube 视频。
import googleapiclient.discovery
def get_video_comments(youtube, **kwargs):
comments = []
results = youtube.commentThreads().list(**kwargs).execute()
while results:
for item in results['items']:
comment = item['snippet']['topLevelComment']['snippet']['textDisplay']
comments.append(comment)
# 检查是否有更多的页面
if 'nextPageToken' in results:
kwargs['pageToken'] = results['nextPageToken']
results = youtube.commentThreads().list(**kwargs).execute()
else:
break
return comments
def get_video_id(youtube, url):
video_id = url.split("v=")[1]
index = video_id.index('&') if '&' in video_id else None
if index:
video_id = video_id[:index]
return video_id
video_url = 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
video_id = get_video_id(youtube, video_url)
然后,可以使用 CommentThreads: list
方法来获取视频下的评论。
video_comments = get_video_comments(youtube=youtube, part='snippet', videoId=video_id)
现在,video_comments
包含以字符串形式表示的所有视频评论。你可以使用 Python 的文件 IO 操作将其保存到文件中,也可以选择将数据上传到 Google Sheets。
本文介绍了如何使用 Python 和 Google API 客户端库来提取 YouTube 视频的评论。请注意这是 Google API 的使用示例,故其免费的使用可能有限制。请查看 API 文档以了解更多详细信息。