python媒体下载工具 you-get

news2024/9/19 22:00:24

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,打开终端:

pip install you-get

𝟷. 基本命令

you-get 的基本命令语法和常用参数如下:

基本语法:

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
⚠ 需要切换输入法为西文,且路径不含中文。

# 少数下不下来 正常 用解析下载网页也有的下不下来
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

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}')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2035102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【对抗性训练】FGM、AWP

FGM(Fast Gradient Method)和 AWP(Adversarial Weight Perturbation)是两种与对抗训练相关的技术,旨在提高深度学习模型的鲁棒性和防御能力。它们主要应用于对抗攻击(adversarial attacks)背景下…

换装的视频怎么拍的?原来可以这样做

换装的视频怎么拍的?在数字时代,换装视频以其独特的创意和视觉冲击力,成为了社交媒体上备受欢迎的内容形式。无论是展现时尚潮流,还是实现跨越时空的幻想,换装视频都能以惊人的效果吸引观众的目光。那么,如…

使用Cisco软件进行模拟万维网配置访问服务器过程

万维网(www)实验 文章目录 万维网(www)实验1.实验目的2.实验流程3.实验步骤 1.实验目的 1)理解www站点 2)理解上层应用和下层通信网络的关系 2.实验流程 开始 → 布置拓扑 → 配置路由及IP地址 → 配置web服务器→ 访问服务器 →结束 3.实验步骤 1&…

JAVA:设计模式的详细指南

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 设计模式(Design Patterns)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它们可以帮助开发者以一种更优雅和高效的方式解决常见的…

【WPS备考AI工具】一款小众且免费的个人题库导入刷题神器,学习提分必备小程序!

这篇文章的诞生,是因为我即将踏上一场超级有趣的挑战——备考全国计算机等级二级WPS Office高级应用与设计的冒险之旅! WPS的分值: 单项选择题20分(含公共基础知识部分10分)。 WPS处理文字文档操作题30分。 WPS处理电子表格操作题30分。 …

爬虫模拟实操-全平台模式化规范

一.总体概述 本套教程适用于还没进入爬虫界的宝宝们 这套流程基本涵盖了全平台( x抖 x快 x头 xB x淘 x知 x红 )个人信息->作品->评论,为不侵权,有兴趣可以拉到最后进行交流 二.爬虫过程 随便拿个平台举例 老规矩f12 返…

深入探索PDF源码解析:从PDF到Excel的数据统计分析找到正文

在数字化时代,数据已成为企业决策和业务运营的关键。PDF文档作为一种广泛使用的文件格式,其中蕴含着大量有价值的信息。然而,PDF文档的结构和格式使得直接对其进行数据提取和分析变得复杂。为了解决这个问题,我们采取了一种创新的…

⌈ 传知代码 ⌋ 基于ROS的气体浓度建图

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

免杀笔记--->地狱之门(Hell ‘s Gate)保姆级解析

还记得我前面一篇文章讲到的在Ring3 对抗Hook吗?? 我讲到的一种方法就是系统调用!! 那么今天就来讲一下一个很出名的直接系统调用(Syscall)-----> [!] 地狱之门(Hell s Gate)[!] 目录 1.Syscall 2.…

Python爬虫:下载4K壁纸

🎁🎁创作不易,关注作者不迷路🎀🎀 目录 🌸完整代码 🌸分析 🎁基本思路 🎁需要的库 🎁提取图片的链接和标题 👓寻找Cookie和User-Agent &…

Golang 并发编程

Golang 并发编程 Goroutine 什么是协程 创建 Goroutine 主 goroutine (main函数)退出后,其它的工作 goroutine 也会自动退出 package mainimport ("fmt""time" )func myFunc() {i : 0for {ifmt.Println("func: …

【C++】深入理解类和对象(3)

励志冰檗:形容在清苦的生活环境中激励自己的意志。💓💓💓 目录 ✨说在前面 🍋知识点一:再探构造函数 🍋知识点二:类型转换 🍋知识点三:static成员 &…

spl注入实战thinkphp

目录 一、环境的部署 二、本地创建数据库 三、填写数据库连接文件 四、编写控制器 五、访问分析 debug报错会显示物理路径 原因是config.php文件相关配置 六、注入分析 七、进入断点调试 八、通过mysql执行语句查看结果 九、总结: 一、环境的部署 二、本地…

【51单片机仿真】基于51单片机设计的智能六位密码锁(匿*输入/密码修改/警示/保存/恢复/初始密码)源码仿真设计文档演示视频——文末资料下载

基于51单片机设计的智能六位密码锁 演示视频 基于51单片机设计的智能六位密码锁 功能简介 - 能够从键盘中输入密码,并相应地在显示器上显示"*" - 能够判断密码是否正确,正确则开锁,错误则输出相应信息 - 能够实现密码的修改 -…

日志审计系统

1.1日志审计基础性知识 什么是日志? 传统的日志概念 信息系统中所有系统和应用必须包含的描述其自身运行和操作的特定数据记录。 广义的日志概念 针对特定记录目的,通过各种探测手段采集的信息数据,包括运行状态、所有事件及操作&#x…

从零开始实现循环神经网络

本节我们通过使用MXnet,来从零开始的实现一个含有隐藏状态的循环神经网络。 前序工作 数据集预处理进行采样 实现循环神经网络 完成前序工作后,即可开始实现循环神经网络。本文首先构建一个具有隐状态的循环神经网络。其结构如图所示: 接…

力扣面试经典算法150题:最后一个单词的长度

最后一个单词的长度 今天的题目是力扣面试经典150题中的数组的简单题: 最后一个单词的长度 题目链接:https://leetcode.cn/problems/length-of-last-word/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 给定一个仅包含大小写字母和空…

Broken靶机

查看靶机的mac地址 使用kail进行扫描ip 探测靶机主机,端口,服务 nmap -sS -sS -A -p- 192.168.154.137 进行目录扫描 dirsearch -u http://192.168.154.137 拼接后没什么发现 访问靶机ip 访问readme.md 发现是十六进制的值 将内容写入到readme.md中 使…

坐牢第二十五天20240813(网络通信)

一、TCP机械臂测试 通过w(红色臂角度增大)s(红色臂角度减小)d(蓝色臂角度增大)a(蓝色臂角度减小)按键控制机械臂 注意:关闭计算机的杀毒软件,电脑管家,防火墙 1&#x…

C语言问答进阶--5、基本表达式和基本语句

赋值表达式 表达式是什么&#xff1f;表达式是由运算符和操作数组成的式子。 如下的代码 #include "iostream.h" int main() { int a1,b2,sum; cout<<(sumab)<<endl; return 0; } 那么如下的呢&#xff1f; #include "iostream.h" int mai…