python媒体下载工具 you-get

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] 并保留 .mp4new_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.rhkb.cn/news/398225.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity | AmplifyShaderEditor插件基础(第一集:简单了解ASE和初识)

前言 我本来老老实实的写着我的Shader,群里的小伙伴强烈建议我开始讲ASE,我只能说,我是一个听话的Up。 一、什么是ASE 全称AmplifyShaderEditor,是一个unity插件,存在于unity商城中,售价看他们心情。&am…

Spring中WebSocket的使用

文章目录 前言什么是 WebSocketWebSocket 协议和 HTTP 协议的区别WebSocket 原理解析WebSocket 报文格式 Spring 中 WebSocket 的使用前后端发送的数据的数据类型是对象该如何做使用websocket协议如何获取到HTTP协议中的HttpSession WebSocket使用的完整代码 前言 我们在使用 …

Pixel Adventure Unity2D开发完整指南

本文参考:2-2. Get and Setup Assets_哔哩哔哩_bilibili 1、下载资源 在Asset Store中下载Pix Adventure1 2的资源: 在import的时候,不用到Scene import进来,如下图所示,Scenes目录反勾选一下。 两个资源都下载完成后…

Unity 使用 NewtonSoft Json插件报错

JsonReaderException: Unexpected character encountered while parsing value: . Path , line 0, position 0. 通过断点发现,头有一串ZWNBSP,这个是BOM格式的JSON。在文件下看不到。 解决方法:改编码格式,Remove BOM.

(回溯) LeetCode 51. N 皇后

原题链接 一. 题目描述 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后…

腾讯云AI代码助手:智能AI代码助手 ,新一代的高效代码开发辅助工具

前言 近些年是一个科技大爆发的时代,自从大模型发布以来越来越多的科技产品出现。例如去年的智能编码助手自出现以来,各大老牌大厂腾讯,百度 阿里也都紧随其后,智能编码助手的出现可以说大大的节省了我们写一些冗余代码的时间成本…

十七、访问者模式

文章目录 1 基本介绍2 案例2.1 Element 接口2.2 Vehicle 抽象类2.3 Car 类2.4 Jeep 类2.5 VehicleCollection 类2.6 Action 抽象类2.7 Repair 类2.8 Drive 类2.9 Client 类2.10 Client 类的运行结果2.11 总结 3 各角色之间的关系3.1 角色3.1.1 Element ( 元素 )3.1.2 ConcreteE…

靓图!多点创新!CEEMDAN-Kmeans-VMD-CNN-LSTM-Attention双重分解+卷积长短期+注意力多元时间序列预测

靓图!多点创新!CEEMDAN-Kmeans-VMD-CNN-LSTM-Attention双重分解卷积长短期注意力多元时间序列预测 目录 靓图!多点创新!CEEMDAN-Kmeans-VMD-CNN-LSTM-Attention双重分解卷积长短期注意力多元时间序列预测效果一览基本介绍程序设计…

LVS 调度器 nat和DR模式

lvs-nat 修改请求报文的目标IP,多目标IP的DNAT 配置网络 LVS主机 注意网卡的顺序 (nat和主机模式) [rootlvs ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection [connection] idens160 typeethernet interface-nameens160 ​ [ip…

Linux使用学习笔记3 系统运维监控基础

系统运维监控类命令 查询每个进程的线程数 for pid in $(ps -ef | grep -v grep|grep "systemd" |awk {print $2});do echo ${pid} > /tmp/a.txt;cat /proc/${pid}/status|grep Threads > /tmp/b.txt;paste /tmp/a.txt /tmp/b.txt;done|sort -k3 -rn for pid…

数据结构与算法-16高级数据结构_图论(图论基础)

图论基础 1 什么是图 1.1 基础定义 图(Graph)是一个用于描述一组对象之间关系的数学结构。这些对象被称为顶点(Vertex),也称为节点(Node)或点(Point),而对…

2024国赛Word论文模板【一键生成式操作】

一、比赛介绍 该竞赛创办于1992年,每年一届,是首批列入“高校学科竞赛排行榜”的19项竞赛之一。2023年,来自全国及美国、澳大利亚、马来西亚的1685所院校/校区、59611队(本科54158队、专科5453队)、近18万人报名参赛。 而今年的国赛马上就要…

【CTF | WEB】001、攻防世界WEB题目之backup

文章目录 backup题目描述:解题思路:解题过程: backup 题目描述: X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧! 进入题目后显示: 解题思路: 在进行网站安全检查时&#xf…

网络协议四 物理层,数据链路层

从这一节开始学习 五层模型。学习方法是从最底层物理层开始学习 七层模型 五层模型 各个层用的协议,以及加上协议后的称谓 各个层的作用 应用层:可以认为是原始数据,该数据称为 报文,用户数据。 运输层:也叫传输层&am…

全网超详细攻略——LVS原理详解及部署

目录 一、LVS原理 1.LVS简介 2.LVS结构 3.IP负载均衡技术 4.LVS相关术语 二、LVS负载均衡四种工作模式 1.LVS-DR模式 2.LVS-NAT模式 3.LVS-TUN模式(了解) 4.FULL-NAT模式(了解) 三、LVS负载均衡十种调度算法 四、LVS部…

米思奇安装——Mac版本

米思奇安装——Mac版本 1.下载 访问米思奇官网https://mixly.org/bnu-maker/mixl2.0rc 打开官网后在首页点击导航栏的软件平台,选择Mixly离线版 点击Mixly2.0RC4发布下载。 进入百度网盘分享的文件,选择Mac一键更新版本,等待下载完成。 …

尚品汇-ES(三十一)

目录: (1)封装搜索相关实体对象 (2)搜索接口封装 (3)在service-list-client模块添加远程接口 (1)封装搜索相关实体对象 搜索参数实体:SearchParam 搜索参…

第七节 流编辑器sed(stream editor)(7.1)

一,sed简介 sed是一种流编辑器,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕,接着处理下一行,这样不断重复,直到文件末尾,文件内容并没有改变 二,sed的语法 2,1,基本语法 sed options ... […

AI学习记录 - gpt如何进行token化,理论知识,以GPT2为举例

AI学习记录已经发了十几篇,大佬们可以看看,如果有帮助动动小手点赞 token入门版,有空会更新具体代码操作 GPT4当中,我们提问问题是按照token进行扣费的,那到底什么是token? 在不同的语言模型当中&#x…

gradio之进度条

输出控件显示进度,进度结束显示控件结果 import gradio as gr import timedef slowly_reverse(word, progressgr.Progress()):progress(0, desc"Starting")time.sleep(1)progress(0.05)new_string ""for letter in progress.tqdm(word, desc&…