菜单

开发指南

相关源文件

本指南为希望为You-Get项目做出贡献的开发者提供了基本信息。它涵盖了设置开发环境、理解项目结构、添加新的提取器、测试您的更改以及提交贡献。

有关安装和使用信息,请参阅安装和设置命令行界面。有关核心架构的技术细节,请参阅核心架构

设置开发环境

先决条件

在开始You-Get的开发之前,请确保您已安装以下软件

  • Python 3.7.4 或更高版本 (必需)
  • FFmpeg 1.0 或更高版本 (推荐用于媒体处理)
  • RTMPDump (对特定流媒体协议可选)
  • Git (用于版本控制)

来源: README.md56-62

获取源代码

您可以通过以下方法获取源代码

来源: README.md105-110 README.md77-78

开发安装

获取源代码后,您可以以开发模式安装You-Get

您还可以使用pipenv来创建一个隔离的开发环境

来源: README.md96-102 README.md91-94

开发工具

项目包含一个 Makefile,其中有几个有用的目标

目标描述
make i启动一个导入了You-Get的交互式Python shell
make test运行测试套件
make clean清理构建产物
make build构建包
make install在本地安装包

来源: Makefile3-29

项目结构

代码库概述

You-Get遵循模块化架构,主要组件如下

来源: __main__.py common.py

提取过程

当用户运行You-Get时,将发生以下一系列操作

来源: common.py

为新站点创建提取器

提取器类层次结构

You-Get中的所有提取器都继承自VideoExtractor基类

来源: common.py

创建新的提取器

要为新网站添加支持,请遵循以下步骤

  1. 在适当的目录中创建新的Python文件: src/you_get/extractors/
  2. 为文件命名适当(通常是站点的名称,例如:example.py
  3. 实现一个继承自VideoExtractor的类
  4. 实现所需的方法

以下是一个新提取器的模板

  1. common.py文件中的SITES字典中注册站点域名

来源: common.py

分析网站媒体

创建新提取器时,您需要

  1. 研究网站的HTML结构或API
  2. 确定媒体URL是如何嵌入或生成的
  3. 相应地实现提取逻辑

有用的技术包括

  • 在浏览器开发者工具中检查网络请求
  • 在JavaScript或JSON响应中查找媒体URL
  • 必要时进行API逆向工程

测试您的更改

运行测试

You-Get包含一个测试套件,可以使用以下命令运行

或者直接运行

来源: Makefile8-9

手动测试

为了彻底测试提取器

  1. 使用来自目标站点的不同URL进行测试
  2. 尝试不同的命令行选项
    • --info 以验证元数据提取
    • --debug 以查看详细日志
    • --json 以检查提取的数据结构
  3. 如果可用,测试不同的格式和质量级别

提交指南

代码风格

贡献时请遵循以下指南

  • 使用有意义的变量名和函数名
  • 为复杂逻辑添加注释
  • 遵循现有的代码结构
  • 确保与Python 3.7+兼容

拉取请求流程

  1. Fork 存储库
  2. develop创建功能分支
  3. 进行您的更改
  4. 彻底测试
  5. 将拉取请求提交到develop分支
  6. 处理来自审稿人的任何反馈

调试技巧

有用的命令行选项

选项描述
--debug显示调试信息
--info仅显示提取的信息
--json以JSON格式显示提取的数据
--url仅显示资源URL

常见问题

  • HTTP 403错误:可能表明网站需要Cookie或Referer头
  • 提取失败:网站可能更改了其HTML结构或API
  • FFmpeg错误:检查您的FFmpeg版本是否支持媒体格式

来源: README.md365-372

结论

为You-Get做贡献可能很有益,特别是当添加对新网站的支持或改进现有功能时。通过遵循本指南,您应该能够设置开发环境、理解代码库结构,并有效地为项目做出贡献。

如有任何问题或讨论,请加入README中提到的Gitter频道#soimort/you-get

来源: README.md468-470