📅  最后修改于: 2023-12-03 14:51:20.051000             🧑  作者: Mango
本项目将介绍如何使用 Python 以及 Google 提供的 YouTube API 来获取 YouTube 视频的观看次数、喜欢次数以及视频标题等信息。同时,会以 GUI 的形式展示这些信息,让用户能够更加直观地了解该视频的情况。
在开始之前,你需要准备以下工作:
在获取视频信息之前,我们需要先设置 API 密钥,以便使用 YouTube API 进行访问。该 API 密钥可以在 Google 开发者后台的 API 面板中生成。
import google_auth_oauthlib.flow
import googleapiclient.discovery
import googleapiclient.errors
# 设置 API 密钥
DEVELOPER_KEY = 'your_developer_key'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'
def get_video_info(video_id):
youtube = googleapiclient.discovery.build(
YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
request = youtube.videos().list(
part='snippet,statistics',
id=video_id
)
response = request.execute()
return response
在获取到视频信息后,我们可以通过 response
的键值访问到这些信息。例如,response['items'][0]['snippet']['title']
就表示视频的标题。
为了更加方便用户获取视频信息,我们将使用 PyQt5 编写 GUI 程序,以便以更加直观的方式呈现这些信息。
from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtGui import QDesktopServices
from PyQt5.QtWidgets import QApplication, QVBoxLayout, QHBoxLayout, QWidget, QLabel, QLineEdit, QPushButton
class YoutubeViewer(QWidget):
def __init__(self):
super().__init__()
self.video_id_input = QLineEdit(self)
self.video_id_input.setPlaceholderText('输入视频 ID')
self.fetch_button = QPushButton('获取信息', self)
self.fetch_button.clicked.connect(self.show_video_info)
self.title_label = QLabel()
self.views_label = QLabel()
self.likes_label = QLabel()
info_layout = QVBoxLayout()
info_layout.addWidget(self.title_label)
info_layout.addWidget(self.views_label)
info_layout.addWidget(self.likes_label)
input_layout = QHBoxLayout()
input_layout.addWidget(self.video_id_input)
input_layout.addWidget(self.fetch_button)
main_layout = QVBoxLayout()
main_layout.addLayout(input_layout)
main_layout.addLayout(info_layout)
self.setLayout(main_layout)
def show_video_info(self):
video_id = self.video_id_input.text()
response = get_video_info(video_id)
title = response['items'][0]['snippet']['title']
views = response['items'][0]['statistics']['viewCount']
likes = response['items'][0]['statistics']['likeCount']
self.title_label.setText(f'<b>{title}</b>')
self.views_label.setText(f'观看次数: {views}')
self.likes_label.setText(f'喜欢次数: {likes}')
if __name__ == '__main__':
app = QApplication([])
window = YoutubeViewer()
window.show()
app.exec_()
这里我们新建了一个继承自 QWidget 的类 YoutubeViewer
,在该类中实现了一个简单的 GUI 界面。其中,我们将视频 ID 作为输入框,使用 get_video_info
函数获取 YouTube 视频的信息,并使用 QLabel
显示标题、观看次数和喜欢次数。
在完成上述代码后,我们就可以愉快地运行程序啦!在运行程序之前,确保 Python 客户端库已经安装,并在终端中执行以下命令:
python app.py
在程序运行之后,输入视频 ID 并点击获取信息按钮,即可在 GUI 窗口中看到视频的标题、观看次数和喜欢次数等信息了。
以上就是如何使用 Python 以及 Google 提供的 YouTube API 来获取 YouTube 视频信息并以 GUI 界面来展示的完整流程。通过这个例子,我们不仅了解了如何与 API 进行交互,还学习了如何使用 PyQt5 来开发桌面应用。希望本项目对大家有所帮助!