3SWG论坛_全网游戏技术辅助资源论坛_WWW.3SWG.COM

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 149|回复: 1

[其他] Python 原创 强化版优酷视频源码附带框架跟成品

[复制链接]

升级   64%

1

主题

22

帖子

32

积分

       UID
3919

       金钱
10

       交易币
0

       贡献
0



发表于 7 天前 | 显示全部楼层 |阅读模式
[ 本帖最后由 linychen 于 2025-8-14 00:34 编辑 ]\n\n[ 本帖最后由 linychen 于 2025-8-13 23:41 编辑 ]\n\nok,现在来解释一下这个修改后代码的核心逻辑和思路
一、核心功能概述
    工具集成了多种视频获取方案(第三方工具调用ffmpeg.exe + 爬虫),支持清晰度选择、授权信息配置(Header/Cookie),并通过多线程实现异步操作,避免 UI 卡顿。
二、爬取与下载的核心流程
    1. 准备工作:环境检测与初始化
       下载工具检测:启动时自动检测系统中是否安装 you-get、yt-dlp(或兼容的 youtube-dl),这些工具是爬取视频的核心依赖。
       UI 初始化:创建输入区域(URL、授权信息、输出路径)、信息展示区域(日志、视频信息、清晰度选择)和控制区域(按钮、进度条)。
会话初始化:创建带反爬机制的请求会话(requests.Session),包含随机 User-Agent、授权头信息(Authorization/Cookie)等,模拟浏览器行为。
    2. 视频信息获取(get_video_info 方法)
       目的是从视频 URL 中提取基础信息(标题、时长、上传者等),并为后续检测视频流做准备。流程如下:
       输入验证:检查 URL 是否为空,输出路径是否有效。
       授权信息保存:将用户输入的 Authorization、Cookie 等信息存入会话头,用于后续请求身份验证。
       多方式信息提取:
       优先调用第三方工具:通过 yt-dlp 或 you-get 的命令行参数(如 --dump-json、--info)获取结构化视频信息,解析后展示标题、时长等。
       自定义爬虫兜底:若第三方工具失败,使用初始化的会话直接请求 URL,通过正则提取网页中的标题、描述等元数据(如 <title> 标签、meta 标签)。
    3. 视频流与清晰度检测(_detect_video_streams 方法)
       这是核心功能之一,目的是从视频页面中提取所有可用的视频流(不同清晰度、格式),并分类供用户选择。流程如下:
       多来源检测视频流:
       第三方工具提取:
       yt-dlp:通过 --list-formats 命令获取所有可用视频格式,解析出格式 ID、清晰度(如 1080p)、大小等信息。
       you-get:通过 --info 命令提取视频流 ID、分辨率(如 1920x1080)、文件大小等信息。
       自定义爬虫提取:
       JSON 数据解析:从网页脚本中提取包含视频信息的 JSON 数据(如 window.videoInfo、var videoData),递归解析其中的视频 URL。
       直接 URL 匹配:通过正则匹配网页中直接出现的视频 URL(如 .mp4、.m3u8、.flv 等后缀),补全相对 URL 为绝对 URL。
       高级 API 检测:若上述方法失败,尝试从网页中提取 API 接口(如 /api/video),调用接口获取视频流信息。
       清晰度分类与排序:
       通过 _extract_quality_from_string 方法从 URL 或格式信息中提取清晰度(如 1080p、720p)。
       通过 _quality_sort_key 方法对清晰度排序(4K > 2K > 1080p > ...),并展示在下拉框中供用户选择。
     4. 视频下载(start_download 方法)
       根据选择的清晰度和下载工具,启动下载流程,核心逻辑如下:
       选择视频流:根据用户选择的清晰度(或自动选择最佳),从检测到的视频流中匹配对应的流信息(URL 或格式 ID)。
       选择下载方式:
       第三方工具下载:若选择 yt-dlp 或 you-get,通过命令行调用工具,传入视频 URL、格式 ID、输出路径等参数(如 yt-dlp -f <格式ID> -o <输出路径> <URL>)。
       自定义爬虫下载:若为直接视频 URL(如 .mp4),使用 requests 分块下载(stream=True),支持断点续传和进度显示。
       进度跟踪与控制:
       通过多线程执行下载,避免 UI 冻结。
       实时解析第三方工具的输出日志(如 yt-dlp 的进度信息),或计算分块下载的进度,更新进度条和状态文字。
       支持取消下载(终止子进程或停止分块请求)。
三、关键技术与思路
       多工具兼容:结合 yt-dlp(支持多平台、多网站)和 you-get(对国内网站支持较好)的优势,自动选择最佳工具。
       反爬机制:
       随机 User-Agent 模拟不同浏览器。
       支持自定义 Header 和 Cookie,解决需要登录 / 授权才能访问的视频。
       模拟浏览器请求头(Referer、Accept 等),避免被服务器识别为爬虫。
       体验优化:
       异步操作(多线程)避免 UI 卡顿。
       清晰的进度展示和日志记录。
       自动检测并提示缺失的依赖工具。
       多种信息提取方式兜底(工具调用失败则用自定义爬虫)。
       异常捕获与错误提示(如无效 URL、下载失败)。

强化版优酷视频源码.rar

11.56 KB, 下载次数: 5, 下载积分: 金钱 -2

售价: 3 金钱  [记录]

附带框架成品下载链接

打赏列表共打赏了0次

cry
还木有人打赏~
回复

使用道具 举报

升级   64%

1

主题

22

帖子

32

积分

       UID
3919

       金钱
10

       交易币
0

       贡献
0



 楼主| 发表于 4 天前 | 显示全部楼层
66666666666666666666
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

套你猴子的欢迎王牌飞行员回家这里是3SWG论坛!
X

Archiver|手机版|小黑屋|3SWG论坛 ( 京ICP证0000001号 )|Sitemap

GMT+8, 2025-8-20 15:19 , Processed in 0.066670 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【3SWG论坛】【 WWW.6SWG.COM 】

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