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 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我 ...
随机推荐
- Linux centos8 VPS基本配置之SSH
Linux centos8 VPS基本配置之SSH 最近在使用阿里云的时候,需要安装一些nodejs模块,但是总是安装失败,我已经使用了淘宝镜像cnpm加速,查看了具体原因是有github的依赖. 阿 ...
- 【保姆级教程】windows 安装 docker 全流程
一.背景 许多小伙伴在安装 Dify 或是 RagFlow 这些工具的时候,往往会遇到一个难题,那就是 Docker 的安装. 首先,我们的PC安装的绝大部分是 Windows,但众所周知的原因,Wi ...
- DAY3--launch文件编写
1.launch启动文件简介 到目前为止,每当我们需要运行一个ROS节点或工具时,都需要打开一个新的终端运行一个命令.当系统中的节点数量不断增加时,"每个节点一个终端"的模式会变得 ...
- addAll(Collection<? extends E> c)的方法源码
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess ...
- Eclipse java项目转Maven项目
1.右键项目->configure->选择maven->配置maven的pom.xml 2.在src/main下新建java文件,将原来src下的java文件夹拷贝至该目录下: 3. ...
- 使用python批量爬取wallhaven.cc壁纸站壁纸
偶然发现https://wallhaven.cc/这个壁纸站的壁纸还不错,尤其是更新比较频繁,用python写个脚本爬取 点latest,按照更新先后排序,获得新地址,发现地址是分页展示的,每一页24 ...
- Spring Kafka: UnknownHostException: 34bcfcc207e0
参考: https://stackoverflow.com/questions/69527813/spring-kafka-unknownhostexception-34bcfcc207e0 我遇到的 ...
- MongoDB中distinct的用法
作用 获取集合中指定字段的不重复值,并以数组的形式返回 语法 db.collection_name.distinct(field,query,options) field:指定返回的字段(string ...
- 重磅消息,微软宣布 VS Code Copilot 开源,剑指 Cursor!
前言 微软宣布重磅消息将把 GitHub Copilot Chat 扩展的代码以 MIT 许可证协议开源,然后将扩展中的 AI 功能重构到 VS Code 核心中,这一举措是为了将 VS Code 成 ...
- L1-6、Prompt 与上下文的关系🤖
模型不是"记性差",只是"提示不清". 为什么理解上下文对话很重要? 大模型具备 "上下文窗口" 的能力,可以"记住"你 ...