Python库积累之you-get库:网页视频与资源下载
↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓

you-get库是一个强大的视频网站下载工具,可以通过音视频网页的url链接直接下载包括视频,图片等媒体内容,从而解决一些网站视频无法下载的问题。you-get支持很多网站下载,如哔哩哔哩,网易,油管等
you-get库的Github主页为https://github.com/soimort/you-get,中文文档地址为:https://github.com/soimort/you-get/wiki/%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E,在这里你可以找到对应的源码和官方文档,上面有其支持的视频网站列表.
需要注意的是,you-get也可以用于其官方没有列出的网站的视频下载,但是无法保证速度和下载稳定性,建议对于其他的网站,使用aria2工具进行下载
安装
pip3 install you-get
#使用清华源下载
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple you-get
同时需要安装ffmpeg,用来下载流式视频以及合并分块视频(例如,类似Youku), 以及YouTube的1080p或更高分辨率。ffmpeg可以在对应官方主页https://www.ffmpeg.org/下载
使用
-i参数:解析给定地址下的视频信息
如果你在某个网址上找到了想要下载的视频,您可以使用 --info/-i 以查看所有可以下载画质与格式.在cmd中输入:
you-get -i https://www.youtube.com/watch?v=jNQXAC9IVRw
即可返回对应的视频可下载的格式,画质,大小等信息。
site: YouTube
title: Me at the zoo
streams: # Available quality and codecs
[ DEFAULT ] _________________________________
- itag: 43
container: webm
quality: medium
size: 0.5 MiB (564215 bytes)
# download-with: you-get --itag=43 [URL]
- itag: 18
container: mp4
quality: medium
# download-with: you-get --itag=18 [URL]
- itag: 5
container: flv
quality: small
# download-with: you-get --itag=5 [URL]
- itag: 36
container: 3gp
quality: small
# download-with: you-get --itag=36 [URL]
- itag: 17
container: 3gp
quality: small
# download-with: you-get --itag=17 [URL]
需要注意一点,上述例子you_get的基本命令是在cmd中输入的命令行,如果我们使用IDE时需要使用os.system()方法来执行cmd命令
import os
os.system(you-get -i https://www.youtube.com/watch?v=jNQXAC9IVRw)
在下面的文章中我们给出的都是在在cmd中输入的命令行,如果需要在IDE中使用请对应修改代码。
下载视频
直接下载
在上述返回的视频信息中,标有[ DEFAULT ] ________为默认的下载文件,即视频类型为webm,画质为中等的那一个。如果需要下载这个视频可以直接使用you-get+网址即可:
you-get https://www.youtube.com/watch?v=jNQXAC9IVRw
#返回下载信息如下:
site: YouTube
title: Me at the zoo
stream:
- itag: 43
container: webm
quality: medium
size: 0.5 MiB (564215 bytes)
# download-with: you-get --itag=43 [URL]
Downloading zoo.webm ...
100.0% ( 0.5/0.5 MB) ├████████████████████████████████████████┤[1/1] 7 MB/s
Saving Me at the zoo.en.srt ...Done.
选择下载
如果需要下载其他格式或画质的视频,我们就可以根据视频信息列表中的itag进行选择,使用you-get --itag= +[URL]进行下载。例如我需要下载MP4格式的视频,上面利用-i参数返回的信息列表中对应的itag是18,对应下载语句为:
you-get --itag=18 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
-o参数:指定下载文件名或路径
使用–output-dir/-o 设定路径, --output-filename/-O 设定输出文件名:
you-get -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
下载其他内容
如你有URL,可以直接使用:
you-get https://stallman.org/rms.jpg
------------------------------------------
Site: stallman.org
Title: rms
Type: JPEG Image (image/jpeg)
Size: 0.06 MiB (66482 Bytes)
Downloading rms.jpg ...
100.0% ( 0.1/0.1 MB) ├████████████████████████████████████████┤[1/1] 127 kB/s
或者, you-get将自动检查网页,下载一切有可能感兴趣的内容:
you-get http://kopasas.tumblr.com/post/69361932517
---------------------------------------
Site: Tumblr.com
Title: kopasas
Type: Unknown type (None)
Size: 0.51 MiB (536583 Bytes)
Site: Tumblr.com
Title: tumblr_mxhg13jx4n1sftq6do1_1280
Type: Portable Network Graphics (image/png)
Size: 0.51 MiB (536583 Bytes)
Downloading tumblr_mxhg13jx4n1sftq6do1_1280.png ...
100.0% ( 0.5/0.5 MB) ├████████████████████████████████████████┤[1/1] 22 MB/s
批量下载
有些网站中一个页面往往会有多个视频(例如哔哩哔哩的分P),这个时候只需要使用–playlist参数即可全部下载,语法为:you-get --playlist 视频网址
-u 参数:解析视频真实的地址(url)
使用 --url/-u 获得页面可下载内容的URL,复制此URL我们可以直接到迅雷,IDM中下载
you-get -u https://www.youtube.com/watch?v=jNQXAC9IVRw
-p参数:在线播放视频
如果我们想要在本地的视频软件中在线播放网页中的视频则只需在电脑上的本地视频播放器根目录下打开Cmd窗口,然后输入命令,指定视频播放器播放网页视频即可
#使用Potplayer播放器,对应打开程序为Potplayer.exe
$ you-get -p Potplayer.exe 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
或者你想在浏览器中观看而不希望看广告或评论区:
you-get -p chromium 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
-x参数:代理设置
使用 --http-proxy/-x为you-get设置HTTP代理:
you-get -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
you-get代码用法
和众多其他命令行工具一样,you-get同样支持在代码中直接使用
from you_get.extractors import *
download_urls([url], title, 'mp4', 0, './videos')
CMD乱码问题的解决方法
CMD窗口下输入:chcp 65001修改字符集为UTF-8,默认的中文编码是GBK
CMD窗口上方标题栏,属性–字体中,修改为TrueType ‘Lucida Console’
Python库积累之you-get库:网页视频与资源下载的更多相关文章
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...
- Python网页解析库:用requests-html爬取网页
Python网页解析库:用requests-html爬取网页 1. 开始 Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等.在网上玩爬虫的文章通常都是 ...
- (转)Python爬虫利器一之Requests库的用法
官方文档 以下内容大多来自于官方文档,本文进行了一些修改和总结.要了解更多可以参考 官方文档 安装 利用 pip 安装 $ pip install requests 或者利用 easy_install ...
- python(4): regular expression正则表达式/re库/爬虫基础
python 获取网络数据也很方便 抓取 requests 第三方库适合做中小型网络爬虫的开发, 大型的爬虫需要用到 scrapy 框架 解析 BeautifulSoup 库, re 模块 (一) r ...
- python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整性约束)
昨日内容回顾 一.回顾 定义:mysql就是一个基于socket编写的C / S架构的软件 包含: ---服务端软件 - socket服务端 - 本地文件操作 - 解析指令(mysql语句) ---客 ...
- python 库安装方法及常用库
python 库安装方法及常用库 python库安装方法: 方法一:setpu.py 1.下载库压缩包,解压,记录下路径:*:/**/……/ 2.运行cmd,切换到*:/**/……/目录下 3.运行s ...
- Python爬虫利器一之Requests库的用法
前言 之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来 ...
- Python爬虫入门四之Urllib库的高级用法
1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...
- 学习Python要知道哪些重要的库和工具
本文转自:https://github.com/jobbole/awesome-python-cn 环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具. ...
- 转 Python爬虫入门四之Urllib库的高级用法
静觅 » Python爬虫入门四之Urllib库的高级用法 1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我 ...
随机推荐
- TGCTF2025 部分题目WP
TGCTF 2025 Web AAA偷渡阴平 ?tgctf2025=eval(end(current(get_defined_vars())));&b=system('cat /flag'); ...
- java——文件的上传、下载、删除操作DEMO
记录一下java实现文件的上传.下载.删除的功能demo: /** * Controller */ @Slf4j @RestController @RequestMapping public clas ...
- 掌握Tortoise-ORM高级异步查询技巧
title: 掌握Tortoise-ORM高级异步查询技巧 date: 2025/04/22 12:05:33 updated: 2025/04/22 12:05:33 author: cmdrago ...
- 一个Controller网关根据请求参数和版本号调用分发多个Service和方法
一个Controller网关根据请求参数和版本号分发Service 公司原有项目就是根据请求参数进行分发逻辑的,这次想着通过反射加入了版本号的分发,减轻各种版本的业务代码逻辑耦合度. 在一个项目中需要 ...
- hadoop部署安装(四)KAFKA+SCALA
3.8 配置scala 下载,解压 wget https://downloads.lightbend.com/scala/2.13.0-M5/scala-2.13.0-M5.tgz tar -zxvf ...
- JDK、tomcat、MySQL安装部署
大数据开发实战 计算机基础普及 [计算机基础与网络.1](动态主机配置协议 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是 RFC 1541( ...
- 一次小而美的重构:使用 C# 在 Avalonia 中生成真正好看的词云
前言 我之前不是开发 StarBlogPublisher(一款 Markdown 文章发布工具)吗? 当时里面有个分类 词云(Word Cloud) 展示功能. 初版的词云虽然 "能用&qu ...
- FirstUI:Deepseek能帮我们做很多事情,而这款开源框架专为开发者设计的开源UI框架,让你的项目加速起飞
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 开发者们总是在寻找能够提高工作效率.简化开发流程的工具.今天,我们要介绍的是一个名为Firs ...
- 解决get和post请求提交数据中文乱码问题
目录 get请求乱码 乱码案例 解决办法 方法一:进行转码 方法二:修改tomcat中conf/server.xml post请求乱码 解决办法:在取参数之前设置编码格式 get请求乱码 Tomcat ...
- 记一次移动光猫(GM219-S)安全测试
前言 过个年,WiFi密码忘记了-光猫管理密码也忘记了(这个光猫也不支持物理按钮重置设置),但是手机还连着WiFi,正规操作找回不了密码,那就用咱们测试的思维来试试PWN掉这个路由器. 过程 未授权获 ...