Document Audio Normalization (EBU R128) in README and translated READMEs, and add corresponding localization keys and help text in ytsage language files. Updates include README.md, readme-translations (ar,de,es,fr,hi,id,it,ja,pl,pt,ru,tr,zh) and ytsage/languages JSON files to explain the feature and note that normalization requires re-encoding and forcing a specific audio format (e.g. MP3 or M4A).
24 KiB
具有干净 PySide6 界面的现代 YouTube 下载器。
下载任何质量的视频、提取音频、获取字幕等等。
🌍 自述文件语言
英文:EN |巴黎: AR |德语:DE |西班牙语:ES |法语:FR |编号:HI |印度尼西亚语:ID |意大利语:IT | 日本语:JA |波兰斯基:PL |葡萄牙语:PT | Русский: RU |土耳其:TR | 中文: ZH
❓ 为什么选择 YTSage?
YTSage 专为想要简单但功能强大的 YouTube 下载器的用户而设计。与其他工具不同,它提供:
- 干净、现代的 PySide6 界面
- 视频、音频和字幕一键下载
- SponsorBlock、字幕合并和播放列表选择等高级功能
- 适用于 YouTube 以外支持 yt-dlp 的网站的可选通用模式
- 跨平台支持且易于安装
✨ 特点
| 核心特点 | 高级功能 | 额外功能 |
|---|---|---|
| 🎥 格式化表格 | 🚫 SponsorBlock 集成 | 🎞️ FPS/HDR 显示 |
| 🎵 音频提取 | 📝 多字幕选择和合并 | 🔄 自动更新 yt-dlp |
| ✨ 简单的用户界面 | 💾 保存描述和缩略图 | 🛠️ FFmpeg/yt-dlp/Deno 检测 |
| 📋 播放列表支持和选择器 | 🚀 限速器 | ⚙️ 自定义命令 |
| 📑 嵌入章节 | ✂️ 修剪视频部分 | 🍪 使用 Cookie 登录 |
| 📜 下载历史记录 | 🔄 发布渠道选择 | 🌐 代理支持 |
| 🎚️ 音频格式转换 | 🎬 视频格式设置 | 🆙 内置更新程序选项卡 |
| 🌍 通用模式 | ||
| 🌍 14 种语言本地化 |
🚀 安装
⚡ 快速安装(推荐)
从 PyPI 安装 YTSage:
pip install ytsage
🔄 更新现有安装
pip install --upgrade ytsage
然后启动应用程序:
ytsage
📦 预构建的可执行文件
🪟 Windows
| 格式 | 描述 |
|---|---|
| !Windows EXE | 标准安装程序 |
| !Windows FFmpeg | 与 FFmpeg 捆绑 |
| !Windows Portable | 便携版,无需安装 |
| !Windows Portable FFmpeg | 带有 FFmpeg 的便携式,压缩 |
🛠️安装步骤
- EXE 安装程序 (
.exe):双击该文件并按照安装向导进行操作。 - 便携式版本(
.zip):将存档解压到您所需的位置并运行ytsage.exe。 - FFmpeg Bundled:如果您的系统上没有安装 FFmpeg,请选择 FFmpeg 捆绑版本。
🐧 Linux
| 格式 | 描述 |
|---|---|
| !Linux DEB | Debian 软件包 |
| !Linux AppImage | AppImage,便携式 |
| !Linux RPM | 转包 |
| !Flathub | Flatpak 捆绑包 |
🛠️安装步骤
- DEB (
.deb):sudo dpkg -i ytsage_*.deb sudo apt-get install -f # Fix missing dependencies if any - 转速(
.rpm):sudo rpm -i ytsage-*.rpm - 应用程序图像(
.AppImage):chmod +x YTSage-*.AppImage ./YTSage-*.AppImage - Flatpak:按照 Flathub 上的说明进行操作或运行:
flatpak install flathub io.github.oop7.ytsage
🍎 macOS
| 格式 | 描述 |
|---|---|
| !macOS ARM64 APP | Apple Silicon 的压缩应用程序 |
| !macOS ARM64 DMG | Apple Silicon 的磁盘映像安装程序 |
🛠️安装步骤
- DMG 安装程序 (
.dmg):双击安装,然后将YTSage.app拖到您的应用程序文件夹中。 - 应用程序存档 (
.zip):解压 zip 并将YTSage.app移动到您的应用程序文件夹。
注意:如果您遇到“应用程序已损坏”错误,请参阅下面的macOS troubleshooting section。
💻从源手动安装
1.克隆存储库
git clone https://github.com/oop7/YTSage.git
cd YTSage
2.安装依赖项
⚡ 有紫外线
uv pip install .
📦 或使用标准点
pip install .
3. 运行应用程序
python -m ytsage.main
📸 截图
📖 用法
🎯基本用法
- 启动 YTSage
- 粘贴 YouTube URL(或使用“粘贴 URL”按钮)
- 点击“分析”
- 选择格式:
Video用于视频下载Audio Only用于音频提取
- 选择选项:
- 启用字幕并选择语言
- 启用字幕合并
- 保存缩略图
- 删除赞助商部分
- 保存描述
- 嵌入章节
- 选择输出目录
- 点击“下载”
💡 默认下载目录是用户的“Downloads”文件夹。
📋播放列表下载
- 粘贴播放列表 URL
- 点击“分析”
- 从播放列表选择器中选择视频(可选,默认为全部)
- 选择所需的格式/质量
- 点击“下载”
💡 应用程序自动处理下载队列
🌍非 YouTube 网站的通用模式
当您希望 YTSage 接受来自 yt-dlp 支持的网站(例如 Dailymotion、CBC Gem、TikTok 等)的 URL 时,请使用通用模式。
使用方法:
- 打开
Download Settings。 - 启用
Generic Mode。 - 粘贴受支持的非 YouTube 视频或播放列表 URL。
- 单击
Analyze。 - 选择格式并照常下载。
注意事项:
- 通用模式仅更改 YTSage 内的 URL 验证。您安装的 yt-dlp 版本仍必须支持目标站点。
- 某些站点需要 cookie、登录会话、代理或额外的 yt-dlp 参数,具体取决于提取器。
- 如果站点出现故障,请先从内置更新程序选项卡更新 yt-dlp,然后再报告问题。
🧰媒体和下载选项
- 字幕选项: 过滤语言并将字幕嵌入到视频文件中
- 字幕合并: 将字幕合并到视频文件中以获取硬编码字幕
- 保存描述: 将视频描述保存为文本文件
- 保存缩略图: 将视频缩略图保存为图像文件
- 嵌入章节: 将章节标记嵌入为兼容视频播放器的元数据
- 删除赞助商片段: 使用 SponsorBlock 从视频中删除赞助商片段
- 修剪视频: 通过以
HH:MM:SS格式指定时间范围,仅下载视频的特定部分
⚙️输出和文件设置
- **限速器:**限制下载速度,例如
500K为500 KB/s - 保存下载路径: 保存默认下载路径以供将来下载。在下载设置→下载路径中可用。
- 输出文件名格式: 使用
%(title)s、%(uploader)s和%(resolution)s等变量自定义输出文件名格式。在下载设置 → 文件名格式中可用。- 强制输出格式: 强制视频下载为特定容器格式,例如mp4、webm或mkv。在下载设置 → 输出格式设置中可用。 - 音频格式转换: 将纯音频下载转换为首选格式,例如
AAC、MP3、FLAC、WAV、Opus、M4A、Vorbis,或Best。在下载设置 → 音频格式设置中可用。 - 音频归一化: 使用 EBU R128 标准化纯音频下载的音量。
🌐接入和网络
- 使用 Cookie 登录: 使用 Cookie 登录 YouTube 以访问私人内容。
使用方法:
- 推荐: 使用应用程序中的内置
Extract cookies from browser选项,然后选择您的浏览器和可选的配置文件。 - 或者,手动提取 cookie:
a.使用类似 cookie-editor 的扩展程序从浏览器导出 cookie
b.以 Netscape 格式复制 cookie
c.创建一个名为
cookies.txt的文件并将 cookie 粘贴到其中 d.在应用程序中选择cookies.txt文件
- 推荐: 使用应用程序中的内置
- 代理支持: 使用代理服务器进行下载,例如
http://<proxy-server>:<port> - 通用模式: 允许 YTSage 从 yt-dlp 支持的非 YouTube 网站分析和下载。从下载设置 → 通用模式启用它。
🛠️工具与维护
- 自定义命令: 通过命令行参数访问高级 yt-dlp 功能
- 更新程序选项卡: 从自定义选项中的一处管理内置更新工具:
- yt-dlp 更新: 检查更新并在稳定版和夜间发布频道之间切换
- FFmpeg 版本检查器: 检查您的 FFmpeg 版本并打开安装指南
- Deno 更新: 检查并更新 Deno 运行时
- FFmpeg/yt-dlp/Deno 检测: 从“关于”对话框中自动检测 FFmpeg、yt-dlp 和 Deno 路径和版本。
- 下载历史记录: 通过“历史记录”按钮查看过去的下载,其中包含缩略图和状态。
🌍本地化
YTSage 支持14 种语言,可在全球范围内访问。从自定义选项 → 语言中选择您的首选语言。
支持的语言
| 语言 | 代码 | 语言 | 代码 |
|---|---|---|---|
| 🇺🇸 英语 | en |
🇪🇸 西班牙语 | es |
| 🇸🇦 阿拉伯语 | ar |
🇫🇷 法语 | fr |
| 🇩🇪 德语 | de |
🇮🇳 印地语 | hi |
| 🇮🇩 印度尼西亚语 | id |
🇮🇹 意大利语 | it |
| 🇯🇵 日语 | ja |
🇵🇱 波兰语 | pl |
| 🇧🇷 葡萄牙语 | pt |
🇷🇺 俄语 | ru |
| 🇹🇷 土耳其语 | tr |
🇨🇳 中文 | zh |
自述文件翻译
| 语言 | 文件 | 语言 | 文件 |
|---|---|---|---|
| 🇺🇸 英语 | README.md | 🇪🇸 西班牙语 | README.es.md |
| 🇸🇦 阿拉伯语 | README.ar.md | 🇫🇷 法语 | README.fr.md |
| 🇩🇪 德语 | README.de.md | 🇮🇳 印地语 | README.hi.md |
| 🇮🇩 印度尼西亚语 | README.id.md | 🇮🇹 意大利语 | README.it.md |
| 🇯🇵 日语 | README.ja.md | 🇵🇱 波兰语 | README.pl.md |
| 🇧🇷 葡萄牙语 | README.pt.md | 🇷🇺 俄语 | README.ru.md |
| 🇹🇷 土耳其语 | README.tr.md | 🇨🇳 中文 | README.zh.md |
💡 想要贡献翻译吗? 查看 Contributing 部分以帮助我们添加更多语言!
🛠️ 故障排除
点击查看常见问题及解决方案
- 格式表不显示: 将 yt-dlp 更新到最新版本,并切换到 yt-dlp nightly。
- 下载失败: 检查您的互联网连接并确保视频可用。
- 具体下载错误:
- 私人视频: 使用cookie身份验证访问私人内容。
- 有年龄限制的内容: 登录 YouTube 帐户即可观看有年龄限制的视频。
- 地理封锁的视频: 考虑使用 VPN 来绕过区域限制。
- 删除/删除的视频: YouTube 上不再提供视频。
- 直播: 直播无法下载;等待流结束。
- 网络错误: 检查您的互联网连接并重试。
- 无效 URL: 确保 URL 正确且来自受支持的平台。
- 高级内容: 需要 YouTube Premium 会员资格。
- 版权封锁: 由于版权限制,内容被封锁。
- 下载后分离视频和音频文件: 当 FFmpeg 丢失或未检测到时会发生这种情况。 YTSage 需要 FFmpeg 来合并高质量的视频和音频流。
- 解决方案: 确保 FFmpeg 已安装并可在系统路径中访问。对于 Windows 用户,最简单的选择是下载与 FFmpeg 捆绑在一起的
YTSage-v<version>-ffmpeg.exe文件。
- 解决方案: 确保 FFmpeg 已安装并可在系统路径中访问。对于 Windows 用户,最简单的选择是下载与 FFmpeg 捆绑在一起的
🛡️ Windows Defender / 防病毒警告
某些防病毒软件可能会将“.exe”文件标记为误报。这是打包应用程序的已知限制。
为什么会发生这种情况:
- 防病毒启发式可能会将打包的可执行文件误认为可疑
安全替代品:
- ✅ 使用pip安装:
pip install ytsage(推荐) - ✅ 从源代码构建:按照此guide
- ✅ 在防病毒软件中将应用程序列入白名单
🍎 macOS:“应用程序已损坏且无法打开”
如果您在 macOS Sonoma 或更高版本上看到此错误,则需要删除隔离属性。
- 打开终端(您可以使用 Spotlight 找到它)。
- 键入以下命令,但不要按 Enter 键。确保末尾包含空格:
xattr -d com.apple.quarantine - 将
YTSage.app文件从 Finder 窗口拖放到终端窗口中。这将自动粘贴正确的文件路径。 - 按 Enter 运行命令。
- 再次尝试打开 YTSage.app。 现在它应该可以正确启动。
配置位置(高级)
- Windows:
%LOCALAPPDATA%\YTSage - macOS:
~/Library/Application Support/YTSage - Linux:
~/.local/share/YTSage
💖 赞助商
如果 YTSage 可以节省您的时间,请考虑赞助该项目。赞助有助于涵盖开发时间、跨平台测试以及未来的改进。
- GitHub 赞助商:https://github.com/sponsors/oop7
- 赞助商链接也可以直接在应用程序内的“关于”对话框中找到。
👥 贡献
我们欢迎贡献!以下是您可以提供帮助的方法:
- 🍴 分叉存储库
- 🌿 创建您的功能分支:
git checkout -b feature/AmazingFeature
- 💾 提交您的更改:
git commit -m 'Add some AmazingFeature'
- 📤推送到分支:
git push origin feature/AmazingFeature
- 🔄 打开拉取请求
🌍 贡献翻译
- 更新匹配的本地化自述文件(例如
README.es.md) - 通过编辑
ytsage/languages/<code>.json保持应用程序字符串同步 - 如果您的语言缺失,请从
README.md开始并创建README.<code>.md
📂项目结构
YTSage - 项目结构
本文档描述了 YTSage 的组织文件夹结构。
📁 项目结构
YTSage/
├── 📁 .github/ # GitHub configuration
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
│ │ └── 🐛-bug-report.md # Bug report template
│ ├─── 📁 workflows/ # GitHub Actions workflows
│ │ ├── build-linux.yml # Linux build workflow
│ │ ├── build-macos.yml # macOS build workflow
│ │ │── build-windows.yml # Windows build workflow
| | └── release-all.yml # Master release workflow
│ └── 📄 CI_CD_README.md # CI/CD documentation
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
│ ├── 📁 icons/ # Application icons
│ ├── 📁 screenshots/ # Screenshots for documentation
│ └── 📁 svg/ # SVG assets
├── 📄 LICENSE # License file
├── 📄 pyproject.toml # Project metadata and dependencies
├── 📄 README.md # Project documentation
├── 📄 requirements.txt # Python dependencies (dev)
└── 📁 ytsage/ # Source package
├── 📁 assets/ # Runtime assets
│ ├── 📁 Icon/ # Application icons
│ └── 📁 sound/ # Audio files
├── 📁 languages/ # Localization files
│ ├── 📄 ar.json # Arabic translation
│ ├── 📄 de.json # German translation
│ ├── 📄 en.json # English translation
│ └── ... # Other languages
├── 📁 core/ # Core business logic
│ ├── 📄 __init__.py # Core package init
│ ├── 📄 ytsage_deno.py # Deno integration
│ ├── 📄 ytsage_downloader.py # Download functionality
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
│ ├── 📄 ytsage_utils.py # Utility functions
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
├── 📁 gui/ # User interface components
│ ├── 📄 __init__.py # GUI package init
│ ├── 📄 ytsage_gui_main.py # Main application window
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
├── 📁 utils/ # Utility modules
│ ├── 📄 __init__.py # Utils package init
│ ├── 📄 ytsage_config_manager.py # Configuration management
│ └── 📄 ytsage_logger.py # Logging utilities
├── 📄 __init__.py # Package entry point
└── 📄 main.py # Main execution script
⭐️ 明星历史
📜 许可证
该项目已获得 MIT 许可证 - 有关详细信息,请参阅LICENSE 文件。
🙏致谢
显示致谢
⚠️ 免责声明
该工具仅供个人使用。请尊重 YouTube 的服务条款和内容创作者的权利。
由oop7用❤️制作



