you-get 是一个基于 Python 3 的强大的命令行工具,使用方式简单,使用 you-get 可以很轻松的下载到网络上的各种媒体文件(视频、图片及音乐等)。
相关功能和配置选项,可以查阅以下以获取详细信息:
- GitHub 官方文档 :https://you-get.org ↩
- GitHub you-get :https://github.com/soimort/you-get ↩
- pypi you-get:https://pypi.org/project/you-get/ ↩
𝟶. 安装 you-get
在使用 you-get
之前,你需要先确保已经安装了 Python。可以通过 pip 安装 you-get
,打开终端:
bash
pip install you-get
𝟷. 基本命令
you-get
的基本命令语法和常用参数如下:
基本语法:
bash
you-get [OPTIONS] URL
常用参数:
参数 | 描述 |
---|---|
-u |
解析真实的url |
--json |
获取视频的json格式信息 |
-i , --info |
显示信息(清晰度、格式etc.),而不下载 |
-h , --help |
显示帮助信息 |
-f , --force |
强制覆盖已有文件 |
-o , --output |
指定下载文件保存的地址 |
--playlist |
下载列表/合集/番剧 |
-p, --player |
指定使用某个播放器播放视频,而不下载 |
-q, --quiet |
静默模式,减少输出信息 |
--no-merge |
禁止合并视频和音频流 |
--cookies |
指定 cookies 文件路径,以便下载需要登录验证的内容 |
--debug |
显示调试信息 |
暂停下载:Ctrl+C
2. 使用示例
test.txt
https://www.bilibili.com/video/BV1vy4y1A7jn/
https://v.youku.com/v_show/id_XMjkyODAwNzIw.html
https://www.youtube.com/playlist?list=PL1234567890
http://www.youku.com/playlist_show/id_25917721.html
https://www.bilibili.com/bangumi/play/ss5732/
https://music.163.com/#/song?id=123456
https://www.missevan.com/sound/player?id=9729804
2023-12, 第一部分·下载 download.py
⚠ 需要切换输入法为西文,且路径不含中文。
python
# 少数下不下来 正常 用解析下载网页也有的下不下来
import time
import pyautogui
import pyperclip #复制粘贴
f=open("bilibili.txt","r",encoding="utf-8")#打开txt文本文档
lines=f.readlines()#按行读取
f.close()
pyautogui.hotkey("win","r")
pyautogui.typewrite('cmd')
time.sleep(3)
pyautogui.press('enter')
time.sleep(3)
for i in range(len(lines)):
line=lines[i]
pyperclip.copy(line)
# because the input method is set to English, the Chinese cannot be entered,
# and the path should be free of Chinese characters.
pyautogui.typewrite('you-get -o D:/yg/output/ ')
pyautogui.hotkey("ctrl","v")
pyautogui.press("enter")
或者少的话不用文本文档,直接放一起
2024-08, 第二部分·合并 merge.py
python
import os
from moviepy.editor import *
# 需要注意的是,此处不能用 video.audio.write_audiofile 将mp4音频文件转换为mp3音频
# 遍历目录中的所有文件
for filename in os.listdir('./output'):
# 检查文件名是否以[01].mp4结尾
if filename.endswith('[01].mp4'):
# 创建新的文件名
new_filename = filename.replace('.mp4', '.mp3')
# 获取完整路径
old_file = os.path.join('./output', filename)
new_file = os.path.join('./output', new_filename)
# 重命名文件
os.rename(old_file, new_file)
# 删除文件
os.remove(old_file)
print(f'Renamed: {old_file} to {new_file}')
print(f'Deleted: {old_file}')
# 进行合并
if filename.endswith('[00].mp4'):
mp3_filename = filename.replace('[00].mp4', '[01].mp3')
# 构造完整路径
mp4_path = os.path.join('./output', filename)
mp3_path = os.path.join('./output', mp3_filename)
# 检查 mp3 文件是否存在
if os.path.exists(mp3_path):
# 加载音频和视频文件
video_clip = VideoFileClip(mp4_path)
audio_clip = AudioFileClip(mp3_path)
# 将音频添加到视频中
final_clip = video_clip.set_audio(audio_clip)
# 修改合并后的文件名,去掉 [00]
# new_filename = filename.replace('[00].mp4', '.mp4')
new_filename = filename[:-8] + '.mp4' # 去掉 [00] 并保留 .mp4
new_file_path = os.path.join('./output', new_filename)
# 写出合并后的文件
final_clip.write_videofile(new_file_path, codec='libx264')
# 关闭剪辑以释放资源
final_clip.close()
video_clip.close()
audio_clip.close()
# 删除文件
os.remove(mp3_path)
os.remove(mp4_path)
print(f'Merged: {mp4_path} and {mp3_path} into {new_file_path}')
print(f'Deleted: {mp4_path} and {mp3_path}')