Skip to content
Guo Jingxing edited this page Jul 11, 2023 · 19 revisions

简易视频/字幕下载软件

MIT License latest version language GitHub release downloads GitHub Releases(latest version)

English | 中文(简体) | 中文(繁體)


该脚本为yt-dlp命令的简易可视化界面。无需安装,打开软件粘贴视频链接,点击“开始下载”或按Enter键即可下载视频。


主界面屏幕截图(V1.1.3版本)

mainwindow

更新日志

系统要求

系统要求 说明
操作系统 Windows 7及以上
其他软件 ffmpeg(重要,必须安装)

ffmpeg安装、配置环境变量

  1. ffmpeg官网下载并解压ffmpeg。
  2. 打开“编辑系统环境变量”设置。
  3. 在系统变量中找到名为“Path”的变量,点击“编辑”。
  4. 添加ffmpeg的安装目录路径(例如:“C:\path\to\ffmpeg”)。
  5. 确认更改并关闭窗口。重启计算机或打开新的命令提示符以使环境变量生效。

主要功能

  • 视频下载:可指定任意画质的视频(最高可支持YouTube 8K)以及音频,支持下载播放列表和缩略图
  • 支持大多数视频网站:支持哔哩哔哩、YouTube、优酷、抖音等几乎所有视频网站,详见支持的网站
  • 支持关键词搜索:在视频链接处输入搜索关键词,可下载YouTube中最匹配的视频
  • 字幕下载:可下载指定语言和格式的字幕文件(若有),勾选“字幕翻译”即可翻译为想要的语言

使用教程

下载软件,无需安装,打开后粘贴视频链接,直接点击“开始下载”或按Enter键即可开始下载。

注意事项

  • 导入Cookie:对于部分需要登录或者开通会员才能看的视频,可能需要勾选导入Cookie后才可下载(V1.1.2版本及以后)
  • 下载短视频:由于视频画质为视频最大高度,那么下载抖音、YouTube Shorts或其他短视频时,视频画质应选择大于1920的数字
  • 默认当前文件夹:下载文件夹选填,默认下载至当前软件所在目录的videos
  • 下载弹幕:若要下载B站等弹幕网站的弹幕文件,勾选“下载全部字幕”(V2.1.0新增下载弹幕选项)
  • 字幕翻译和自动生成字幕
    • 除YouTube外,并非所有网站都支持字幕翻译;
    • V2.1.0版本前:若要下载自动生成字幕,视频首先得有自动字幕,然后勾选“翻译”,并将右侧任意一行改为LANG_CODE-origLANG_CODE语言代码),另一行改成空白。如:将en改为en-orig(英语自动生成字幕)
    • V2.1.0版本及以后:下载自动生成字幕,“语言”选择auto即可;若要翻译自动生成字幕,勾选“翻译为”,选择需要翻译成的语言即可。

自编译exe文件

python模块安装

请确保电脑安装了以下python模块:yt-dlpttkthemespyyaml。执行以下命令安装:

pip install yt-dlp ttkthemes pyyaml

在项目目录下,执行以下命令即可运行:

python .\yt-dlp-simple-gui.py

不压缩打包

在项目目录下,执行以下命令可将结果打包成单个可执行文件yt-dlp-simple-gui.exe(包含所有依赖):

pip install pyinstaller pyinstaller-versionfile
create-version-file metadata.yml --outfile versioninfo.txt
pyinstaller -F --onefile .\yt-dlp-simple-gui.py -i download_icon.ico --version-file=versioninfo.txt --paths C:\users\dell\appdata\local\programs\python\python310\lib\site-packages\yt-dlp,websockets,pycryptodomex,brotli,certifi,mutagen,ttkthemes,pillow,pyyaml --clean

若要提高exe启动和加载速度,可打包成文件目录:

create-version-file metadata.yml --outfile versioninfo.txt
pyinstaller -F --onedir .\yt-dlp-simple-gui.py -i download_icon.ico --version-file=versioninfo.txt --paths C:\users\dell\appdata\local\programs\python\python310\lib\site-packages\yt-dlp,websockets,pycryptodomex,brotli,certifi,mutagen,ttkthemes,pillow,pyyaml --clean

此时所有结果都被打包到一个文件夹中,该文件夹包括一个可执行文件yt-dlp-simple-gui.exe和可执行文件执行时需要的依赖文件(默认)。

使用虚拟环境和UPX压缩打包

执行以下代码:

pip install pipenv
pipenv install
pipenv shell

等到虚拟环境启动后,再执行以下代码:

pip install yt-dlp pyinstaller ttkthemes pyyaml pyinstaller-versionfile
create-version-file metadata.yml --outfile versioninfo.txt

以下两行代码二选一:

:: 生成单个可执行文件exe
pyinstaller -F --onefile .\yt-dlp-simple-gui.py -i download_icon.ico --version-file=versioninfo.txt --clean
:: 生成文件目录(可打包成zip)
pyinstaller -F --onedir .\yt-dlp-simple-gui.py -i download_icon.ico --version-file=versioninfo.txt --clean

然后将UPX.exe复制到pyinstaller.exe同文件夹下。修改pyinstaller产生的.spec文件,将upx=False改成upx=True,然后执行以下代码:

:: (若已为True, 则跳过此行)
pyinstaller yt-dlp-simple-gui.spec

pipenv --rm
exit

qt版本打包

V2.0.0版本之后采用Qt框架(PyQt5)构造软件,编译需要额外的步骤。

  1. yt-dlp的源代码克隆至本地:git clone https://github.com/yt-dlp/yt-dlp.git
  2. 将yt-dlp项目的源代码全部复制到本项目的qt-gui文件夹下
  3. 在该文件夹下执行以下命令(若是python3则执行python3命令):
python -m pip install -U pyinstaller -r requirements.txt
pip install yt-dlp pyyaml pyqt5 pyinstaller pyinstaller-versionfile
create-version-file metadata.yml --outfile versioninfo.txt
:: 生成单个可执行文件exe
pyinstaller --onefile yt-dlp-simple-gui-qt.py --add-data "constants.py;." --add-data "ui.py;." --add-data "download_icon.ico;." --add-data "yt-dlp-simple-gui.ui;." --add-data "about_ui.py;." --add-data "about.ui;." --add-data "translations/*.qm;translations" -i download_icon.ico --version-file=versioninfo.txt --clean
:: 生成文件目录(可打包成zip)
pyinstaller --onedir yt-dlp-simple-gui-qt.py --add-data "constants.py;." --add-data "ui.py;." --add-data "download_icon.ico;." --add-data "yt-dlp-simple-gui.ui;." --add-data "about_ui.py;." --add-data "about.ui;." --add-data "translations/*.qm;translations" -i download_icon.ico --version-file=versioninfo.txt --clean

V2.1.0版本之后可取消命令行,在pyinstaller命令末尾加上--noconsole即可。

多语言切换

translation文件夹下有.ts.qm文件,其中.ts文件采用xml的格式,.qm为二进制文件。步骤如下:

  1. 在Qt Designer软件中将yt-dlp-simple-gui.ui等ui文件修改好,然后在当前qt项目目录下(qt-gui)执行以下代码:
pyuic5 yt-dlp-simple-gui.ui -o ui.py
::...(其他ui文件)
  1. 编译ts文件,代码如下(语言代码中间是下划线_,不是单杠-):
pylupdate5 yt-dlp-simple-gui-qt.py ui.py -ts translations/en.ts
pylupdate5 yt-dlp-simple-gui-qt.py ui.py -ts translations/zh_TW.ts
::...(其他语言)
  1. 用Qt Linguist打开所有的ts文件,添加翻译,然后选择“生成全部”。
  2. yt-dlp-simple-gui-qt.pygetFont()函数内,添加相应语言的字体,runAction函数内添加相应语言的switch_language方法;
  3. 还有其他需要添加语言参数的地方:constant.py,一些初始化的地方,可参照之前添加过的语言的格式写。