如何将YouTube的URL与YouTube的短URL进行匹配,并从中获取视频?
YouTube的URL和短URL都是用来定位和访问YouTube上的视频资源的标识符。下面是一种常见的方法来匹配YouTube的URL和短URL,并从中获取视频信息:
import re
import requests
def get_video_info(url):
video_id = None
# 匹配YouTube的URL
match = re.search(r"(?<=watch\?v=|/videos/|embed\/|youtu.be\/|\/v\/|\/e\/|watch\?v%3D|watch\?feature=player_embedded&v=|%2Fvideos%2F|embed%\u200C\u200B2F|youtu.be%2F|embed%\u200C\u200B2F|v=|v%3D|e%2F|watch\?v=|&v=)([^#\&\?]*).*", url)
if match:
video_id = match.group(1)
# 匹配YouTube的短URL
if not video_id:
match = re.search(r"(?<=youtu.be/|/v/|/e/|/embed/|/watch\?v=|watch\?v%3D|embed%\u200C\u200B2F|youtu.be%2F|embed%\u200C\u200B2F|v=|v%3D|e%2F|watch\?v=|&v=)([^#\&\?]*).*", url)
if match:
video_id = match.group(1)
if video_id:
# 使用YouTube Data API获取视频信息
api_key = "YOUR_API_KEY"
api_url = f"https://www.googleapis.com/youtube/v3/videos?id={video_id}&key={api_key}&part=snippet"
response = requests.get(api_url)
video_info = response.json()
# 解析视频信息
if "items" in video_info and len(video_info["items"]) > 0:
video_title = video_info["items"][0]["snippet"]["title"]
video_description = video_info["items"][0]["snippet"]["description"]
video_channel = video_info["items"][0]["snippet"]["channelTitle"]
video_published_at = video_info["items"][0]["snippet"]["publishedAt"]
# 打印视频信息
print("视频标题:", video_title)
print("视频描述:", video_description)
print("上传者:", video_channel)
print("发布日期:", video_published_at)
else:
print("无效的YouTube URL或短URL")
# 测试
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
get_video_info(url)
short_url = "https://youtu.be/dQw4w9WgXcQ"
get_video_info(short_url)
请注意,上述示例代码中的YOUR_API_KEY
需要替换为你自己的YouTube Data API密钥。此外,还需要安装requests
库来发送HTTP请求。
这是一个简单的示例,你可以根据自己的需求进行扩展和优化。同时,腾讯云也提供了一系列与视频相关的产品和服务,例如腾讯云点播(https://cloud.tencent.com/product/vod)和腾讯云直播(https://cloud.tencent.com/product/live),可以根据具体需求选择适合的产品。
领取专属 10元无门槛券
手把手带您无忧上云