python媒体下载工具 you-get

you-get 是一个基于 Python 3 的强大的命令行工具,使用方式简单,使用 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}')
相关推荐
databook12 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar14 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805114 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_14 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机20 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机21 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机21 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机21 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django
每日AI新事件1 天前
python的异步函数
python