【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
慎重【严正声明】:
本文仅供python技术学习探讨,本文所研究内容只是从技术角度去考虑,研究技术学习交流能让技术提升,但是!!!!!!
本文不是提供关于非法下载视频的信息的手段。
使用未经授权的方式下载视频是侵犯版权的行为,不仅违反了相关法律法规,也可能对创作者造成损失。
如果您想观看某个视频,建议您通过合法渠道进行观看,例如在视频网站上购买或租赁该视频,或者向版权所有者请求授权,如果因为使用非法采集造成的法律问题后果自负,俗话说的好,python学的好,牢饭吃得早!!!不开玩笑!!请慎重对待此声明!
问题研究
通常我们遇到一些网站前端简单隐藏视频地址可以通过f12 审查元素-查看原视频地址,但是当我们遇到一些网站会隐藏到真实地址做法的网站就不行了,更复杂的就是m3u8链接是经过加密处理的视频那就更没办法了,以下研究仅供学习研究,严禁用于非法用途。
详细方案
在完成以下内容之前我们先得准备好工具,我们需要hbuilderx+python环境,这里hbuilder x需要python环境,因此我们需要先下载python并配置,那么已下载python的请看这篇先搜索引擎搜索看(不能发链接):
“python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈”
采用yt_dlp下载视频
扩展知识:
yt_dlp 是一个基于 youtube-dl 的 Python 项目,用于从各种在线视频平台下载视频、音频和字幕。与 youtube-dl 相比,yt_dlp 更加活跃,提供了更多的功能和改进。
本文以youtube为例,但是yt_dlp对大部分网站都是有效的,请须知。
ok,我这里展示都以hbuilder x编译器为显示,优雅草央千澈最习惯的就2款编译器,hbuilder x 和 idea (还买的官方正版)
配置好以后,我们开始第一种方式使用yt_dlp首先我们安装,执行前先创建好目录yycgather2025和对应文件,我这里取名youyacao_dlp.py
执行安装pip install yt-dlp
Collecting yt-dlp Downloading yt_dlp-2024.12.23-py3-none-any.whl.metadata (172 kB) Downloading yt_dlp-2024.12.23-py3-none-any.whl (3.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2/3.2 MB 11.0 MB/s eta 0:00:00 Installing collected packages: yt-dlp Successfully installed yt-dlp-2024.12.23
提示以上为成功,
接下来我们在youyacao_dlp.py文件中写入采集代码
import yt_dlp # 下载视频的函数 def download_video(url, output_path): ydl_opts = { 'outtmpl': output_path } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([url]) # 示例用法 video_url = '视频的URL' output_file = '保存的路径.mp4' download_video(video_url, output_file)
代码中,你需要替换 video_url 和 output_file 为你想要下载的视频地址和保存的文件路径。
ok 我们打开youtube测试一条连接,
我随机找了一条gta的游戏视频,我们将浏览地地址复制进代码中,保存
报错:
[youtube] Extracting URL: https://www.youtube.com/watch?v=WBZVM_YGbLU [youtube] WBZVM_YGbLU: Downloading webpage [youtube] WBZVM_YGbLU: Downloading ios player API JSON [youtube] WBZVM_YGbLU: Downloading mweb player API JSON ERROR: [youtube] WBZVM_YGbLU: Sign in to confirm you’re not a bot. Use --cookies-from-browser or --cookies for the authentication. See https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp for how to manually pass cookies. Also see https:/ /github.com/yt-dlp/yt-dlp/wiki/Extractors#exporting-youtube-cookies for tips on effectively exporting YouTube cookies Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\yt_dlp\YoutubeDL.py", line 1634, in wrappe r return func(self, *args, **kwargs)
提示我没有登录,不要慌
我们在浏览器需要安装一个扩展插件 EditThisCookie 基本上主流浏览器都有
导出 Cookies:
打开 刚才youtube的连接并且登录账户。
然后选择“导出”或“下载”Cookies。
保存 Cookies:将导出的 Cookies 保存到一个文件中,例如 youtubecookies.txt。
下一步执行
yt-dlp --cookies youtubecookies 视频地址
这样执行后,这样,yt-dlp 将使用你导出的 Cookies 来进行身份验证。
[youtube] WBZVM_YGbLU: Downloading webpage [youtube] WBZVM_YGbLU: Downloading ios player API JSON [youtube] WBZVM_YGbLU: Downloading mweb player API JSON [youtube] WBZVM_YGbLU: Downloading m3u8 information [youtube] WBZVM_YGbLU: Downloading m3u8 information [info] WBZVM_YGbLU: Downloading 1 format(s): 300 [download] Destination: PUTIN UNDERSTIMATED NATO; Ukrainian Fighter Jets & Helicopters Attack on Russian Army Weapons-GTA5 2025-01 -03 17_08 [WBZVM_YGbLU].mp4 ERROR: m3u8 download detected but ffmpeg could not be found. Please install ERROR: Unable to download video: [WinError 2] 系统找不到指定的文件。: 'PUTIN UNDERSTIMATED NATO; Ukrainian Fighter Jets & Helicopte rs Attack on Russian Army Weapons-GTA5 2025-01-03 17_08 [WBZVM_YGbLU].mp4.part'
继续报错,根据报错我们是因为m3u8 download detected but ffmpeg could not be found. Please install意思是没有ffmep来处理m3u8视频,因此下载出错
下载ffmpg 这是官网地址
https://ffmpeg.org//download.html#build-windows
添加ffmpg的环境变量,首先我们放在d盘
把bin目录添加到环境变量。
检测是否成功安装,
执行ffmpg -v
成功!
再次执行yt-dlp --cookies youtubecookies 视频地址
成功
持续处理中
当处理完成,我们得到我们真正需要的视频
OK,完美,成功解决问题,本文知识仅供学习交流,禁止用于非法用途!