(零基础)如何使用python下载哔哩哔哩视频?
问题分析
在哔哩哔哩网站上没有下载功能,但是我们常常因为喜欢某个视频或者害怕它下架而想要将它下载下来。这里提供一个使用python下载视频的方法。对于这个方法,你不需要掌握python的全部语法,只需要会安装软件+打字即可。
需要的软件
pycharm (链接:https://pan.baidu.com/s/19Bw9Rq6UeIkTKsL__saQZg 提取码:tx0m )
操作步骤
1. 安装 pycharm (根据文件中的安装教程自行破解)
2. 安装 you-get库(下面有安装方法)
3. 下载视频
安装you-get库方法
有两种安装方法:
1. settings中安装
2. Terminal中安装
you-get命令表(不看也可以)
Download options:
-n, --no-merge Do not merge video parts
--no-caption Do not download captions (subtitles, lyrics, danmaku, ...)
-f, --force Force overwriting existing files
--skip-existing-file-size-check
Skip existing file without checking file size
-F STREAM_ID, --format STREAM_ID
Set video format to STREAM_ID
-O FILE, --output-filename FILE
Set output filename
-o DIR, --output-dir DIR
Set output directory
-p PLAYER, --player PLAYER
Stream extracted URL to a PLAYER
-c COOKIES_FILE, --cookies COOKIES_FILE
Load cookies.txt or cookies.sqlite
-t SECONDS, --timeout SECONDS
Set socket timeout
-d, --debug Show traceback and other debug info
-I FILE, --input-file FILE
Read non-playlist URLs from FILE
-P PASSWORD, --password PASSWORD
Set video visit password to PASSWORD
-l, --playlist Prefer to download a playlist
-a, --auto-rename Auto rename same name different files
-k, --insecure ignore ssl errors
Proxy options:
-x HOST:PORT, --http-proxy HOST:PORT
Use an HTTP proxy for downloading
-y HOST:PORT, --extractor-proxy HOST:PORT
Use an HTTP proxy for extracting only
--no-proxy Never use a proxy
-s HOST:PORT or USERNAME:PASSWORD@HOST:PORT, --socks-proxy HOST:PORT or USERNAME:PASSWORD@HOST:PORT
Use an SOCKS5 proxy for downloading
翻译版本:
下载选项:
-n、 --不合并不合并视频部分
--无字幕不下载字幕(字幕、歌词、danmaku…)
-f、 --强制覆盖现有文件
--跳过现有文件大小检查
跳过现有文件而不检查文件大小
-F流ID,--格式流ID
将视频格式设置为流ID
-O文件,--输出文件名文件
设置输出文件名
-o DIR,--输出DIR
设置输出目录
-p播放器,--播放器播放器
将提取的URL流到播放机
-c COOKIES\u文件,--COOKIES\u文件
加载cookies.txt文件或者曲奇.sqlite
-t秒,--超时秒
设置套接字超时
-d、 --调试显示跟踪和其他调试信息
-I文件,--输入文件
从文件读取非播放列表URL
-P密码,--密码
将“视频访问密码”设置为“密码”
-l、 --播放列表更喜欢下载播放列表
-a、 --自动重命名自动重命名同名不同文件
-k、 --不安全忽略ssl错误
代理选项:
-十主机:端口,--http代理主机:端口
使用HTTP代理下载
-是的主机:端口,--提取器代理主机:端口
使用HTTP代理仅用于提取
--没有代理从不使用代理
-s码主机:端口或用户名:PASSWORD@HOST:端口,--socks代理主机:端口或用户名:PASSWORD@HOST:端口
使用SOCKS5代理下载
setting中安装
鼠标点击:File-Settings-Project:PycharmCodes-Project Interpreter-
"+"
搜索框键入:you-get
鼠标点击:install package
Terminal中安装
在终端中输入pip install you-get
下载视频
下载视频有两种方法:
1. 编写脚本下载
2. 直接在终端输入指令下载
直接在终端输入指令下载
根据你需要的功能直接复制粘贴即可(注意 D:\\ 改成你要下载到的地址 https://www.bilibili.com/video/BV1AU4y147Pj 改成你要下载的视频的链接)
基本下载(下载的flv文件格式 一般不可直接打开)
you-get -o D:\\ https://www.bilibili.com/video/BV1AU4y147Pj
提取信息(获取信息)
you-get -i https://www.bilibili.com/video/BV1AU4y147Pj
指定格式下载(这里的dash-flv360是上面提取信息得到的 可以修改 得到的是mp4格式 可以打开)
you-get -F dash-flv360 -o D:\\ https://www.bilibili.com/video/BV1AU4y147Pj
脚本下载
单个文件下载
import sys
from you_get import common
#提取信息
def get_i(url):
sys.argv=["you-get","-i",url]
common.main()
#基本下载
def get_o(url,pwd):
sys.argv=["you-get","-o",pwd,url]
common.main()
#指定格式下载
def get_type(url,pwd,type):
sys.argv=["you-get","-F",type,"-o",pwd,url]
common.main()
pwd="D:\\"
type="dash-flv360"
url="https://www.bilibili.com/video/BV1AU4y147Pj"
get_o(url,pwd)
多个文件下载(多个视频一次下载)
import sys
from you_get import common
#提取信息
def get_i(url):
sys.argv=["you-get","-i",url]
common.main()
#基本下载
def get_o(url,pwd):
sys.argv=["you-get","-o",pwd,url]
common.main()
#指定格式下载
def get_type(url,pwd,type):
sys.argv=["you-get","-F",type,"-o",pwd,url]
common.main()
pwd="D:\\"
type="dash-flv360"
# url="https://www.bilibili.com/video/BV1AU4y147Pj"
//亮点 url是一个放着下载地址url的text文档
with open("url","r")as f:
for i in f.readlines():
get_type(i.strip(), pwd, type)
分p下载(下载的视频有很多p的)
import sys
from you_get import common
#提取信息
def get_i(url):
sys.argv=["you-get","-i",url]
common.main()
#基本下载
def get_o(url,pwd):
sys.argv=["you-get","-o",pwd,url]
common.main()
#指定格式下载
def get_type(url,pwd,type):
sys.argv=["you-get","-F",type,"-o",pwd,url]
common.main()
#分集视频下载
def get_type(url,pwd):
sys.argv=["you-get","-o",pwd,"-l",url]
common.main()
pwd="D:\\"
type="dash-flv360"
url="https://www.bilibili.com/video/BV1us411i7BB"
get_type(url,pwd)