鱼C论坛

 找回密码
 立即注册
查看: 1197|回复: 3

写Python代码搜索ytb视频并应用filters功能过滤出时长大于6分钟带英文字幕的视频

[复制链接]
发表于 2023-12-21 20:32:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
@FishC
写Python代码搜索ytb视频并应用filters功能过滤出时长大于6分钟带英文字幕的视频并下载,并能抓取多页结果

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-21 20:32:53 | 显示全部楼层
要通过Python代码搜索YouTube视频并应用筛选器功能,您可以使用YouTube Data API进行操作。首先,您需要安装相关库。在命令行中运行以下命令:
pip install google-api-python-clientpip install google-auth google-auth-oauthlib google-auth-httplib2
接下来,您需要创建一个Google开发者项目,并启用YouTube Data API v3。然后生成API密钥,将其保存到一个名为`api_key.py`的文件中:
api_key = 'YOUR_API_KEY'
现在,我们可以编写代码来搜索YouTube视频并应用筛选器。下面是一个示例:
from googleapiclient.discovery import buildfrom api_key import api_key# 创建YouTube数据API客户端youtube = build('youtube', 'v3', developerKey=api_key)# 搜索视频def search_videos(q, max_results=10):    request = youtube.search().list(        part='id',        q=q,        type='video',        maxResults=max_results    )    response = request.execute()        video_ids = [item['id']['videoId'] for item in response['items']]    return video_ids# 获取视频详细信息def get_video_details(video_ids):    request = youtube.videos().list(        part='snippet,contentDetails',        id=','.join(video_ids)    )    response = request.execute()        videos = []    for item in response['items']:        video = {            'title': item['snippet']['title'],            'duration': item['contentDetails']['duration'],            'subtitles': 'English' in item['snippet']['localized'].get('availableLanguage', [])        }        videos.append(video)        return videos# 应用筛选器def apply_filters(videos, min_duration=6, with_subtitles=True):    filtered_videos = []    for video in videos:        duration = int(video['duration'][2:-1])                if duration > min_duration and video['subtitles'] == with_subtitles:            filtered_videos.append(video)        return filtered_videos# 搜索并筛选视频def search_and_filter_videos(query, max_results=10, min_duration=6, with_subtitles=True):    video_ids = search_videos(query, max_results)    videos = get_video_details(video_ids)    filtered_videos = apply_filters(videos, min_duration, with_subtitles)        return filtered_videos# 测试videos = search_and_filter_videos('Python教程', max_results=20, min_duration=6, with_subtitles=True)for video in videos:    print('标题:', video['title'])    print('时长:', video['duration'])    print('是否有英文字幕:', video['subtitles'])    print('------------------------------')
这段代码将为您搜索标题中包含"Python教程"的YouTube视频,并使用筛选器过滤出时长大于6分钟且带有英文字幕的视频。您可以根据需要调整参数并自定义其他筛选条件。希望对您有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-22 07:55:42 | 显示全部楼层
FishC 发表于 2023-12-21 20:32
要通过Python代码搜索YouTube视频并应用筛选器功能,您可以使用YouTube Data API进行操作。首先,您需要安 ...

怎么使用  ytb-search-python 这个包来实现 搜索时的 filters 呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-22 07:55:53 | 显示全部楼层
blackantt 发表于 2023-12-22 07:55
怎么使用  ytb-search-python 这个包来实现 搜索时的  ...

要使用`ytb-search-python`包来实现搜索时的筛选器功能,您可以按照以下步骤进行操作:

首先,您需要安装`ytb-search-python`包。在命令行中运行以下命令:
pip install ytb-search-python
然后,您可以使用以下代码实现搜索并使用筛选器:
from ytb_search_python import VideosSearchdef search_and_filter_videos(query, duration_filter=6, subtitles_filter=True):    videos_search = VideosSearch(query)    result = videos_search.result()    videos = []    for video in result['result']:        video_title = video['title']        video_duration = video['duration']        video_subtitles = 'English' in video['subtitles']        if video_duration > duration_filter and video_subtitles == subtitles_filter:            videos.append({                'title': video_title,                'duration': video_duration,                'subtitles': video_subtitles            })    return videos# 测试videos = search_and_filter_videos('Python教程', duration_filter=6, subtitles_filter=True)for video in videos:    print('标题:', video['title'])    print('时长:', video['duration'])    print('是否有英文字幕:', video['subtitles'])    print('------------------------------')
在这个示例中,我们首先使用`VideosSearch`类来搜索关键字为'Python教程'的YouTube视频。`result()`方法返回一个包含搜索结果的字典。然后,我们遍历每个视频,筛选出时长大于6分钟且带有英文字幕的视频,并将其保存到一个列表中。

您可以根据需要调整筛选条件,并自定义其他操作。希望这对您有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 19:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表