Skip to main content

A simple tool to download videos from bilibili{*≧∀≦}

Project description

Bilibili视频下载器

  

下载

方式一

pip install sole-bili-get -i https://www.pypi.org/simple/

PS(更新版本):pip install sole-bili-get -U

方式二

git clone https://github.com/muggledy/bili-get.git
python setup.py sdist bdist_wheel
pip install dist\sole_bili_get-0.0.13-py3-none-any.whl //demo
bili-get --help

使用

C:\Users\muggledy\Downloads>bili-get https://www.bilibili.com/video/BV1CY4y1F7hP
output: C:\Users\muggledy\Downloads
  (origin url):https://www.bilibili.com/video/BV1CY4y1F7hP
       (title):p1_总耗时近一年!七爷带你一步到位看完昭和《奥特曼》系列全部345集怪兽及宇宙人们!_1初代奥特曼
        (desc):此视频送给希望一气看完昭和全奥的朋友们!
(episodes num):7
     (quality):清晰 480P(id:32), 流畅 360P(id:16)
selected download quality(MAX):32
get danmu urls success for 7 episodes
p1 danmu xml file is downloaded into C:\Users\muggledy\Downloads\bili_output\BV1CY4y1F7hP\p1_总耗时近一年!七爷带你一步到位看完昭和《奥特曼》系列全部345集怪兽及宇宙人们!_1初代奥特曼.xml
start to download p1(video:清晰 480P,852x480,avc1.64001F_581618_29.412) from https://www.bilibili.com/video/BV1CY4y1F7hP/?p=1...
100.00%|████████████████████| 下载完成【application/octet-stream】 84.96MB/84.96MB
start to download p1(audio)...
100.00%|████████████████████| 下载完成【application/octet-stream】 28.28MB/28.28MB
ffmpeg merge success, save into C:\Users\muggledy\Downloads\bili_output\BV1CY4y1F7hP\p1_总耗时近一年!七爷带你一步到位看完昭和《奥特曼》系列全部345集怪兽及宇宙人们!_1初代奥特曼.mp4
Note: this is a multi-episode video, you can download them all at once with --playlist
  • 默认是下载到当前工作路径,可以通过-o--output指定输出目录,不存在则自动创建,譬如bili-get https://www.bilibili.com/video/BV1CY4y1F7hP -o D:\workspace\bilibili。这会在--output目录下产生两个文件夹:bili_tmp/bili_output/,前者存放一些临时文件,用于记录多剧集视频的下载进度,如果下载过程中发生中断,重新执行命令可以继续下载过程(且对于尚未合成的剧集会尝试进行合成,除非指定--nomerge参数),后者则是视频、音频、封面、弹幕文件的输出文件夹

  • 对于多剧集视频,可以指定--playlist自动下载全部剧集,只要不删除对应的bili_tmp/临时文件,可以任意重复执行下载命令,如bili-get https://www.bilibili.com/video/BV1CY4y1F7hP --playlist,也不会重复下载,如果UP主新发布了剧集,则会继续下载

  • -c--cookie用于指定您的B站Cookie信息,这样就可以下载1080P视频了

    C:\Users\muggledy\Downloads>bili-get https://www.bilibili.com/video/BV1CY4y1F7hP -c "your cookie"
    output: C:\Users\muggledy\Downloads
      (origin url):https://www.bilibili.com/video/BV1CY4y1F7hP
           (title):p1_总耗时近一年!七爷带你一步到位看完昭和《奥特曼》系列全部345集怪兽及宇宙人们!_1初代奥特曼
            (desc):此视频送给希望一气看完昭和全奥的朋友们!
    (episodes num):7
         (quality):高清 1080P(id:80), 高清 720P(id:64), 清晰 480P(id:32), 流畅 360P(id:16)
    selected download quality(MAX):80
    get danmu urls success for 7 episodes
    p1 danmu xml file is downloaded into C:\Users\muggledy\Downloads\bili_output\BV1CY4y1F7hP\p1_总耗时近一年!七爷带你一步到位看完昭和《奥特曼》系列全部345集怪兽及宇宙人们!_1初代奥特曼.xml
    start to download p1(video:高清 1080P,1920x1080,avc1.640032_2344634_29.412) from https://www.bilibili.com/video/BV1CY4y1F7hP/?p=1...
    100.00%|████████████████████| 下载完成【video/mp4】 342.48MB/342.48MB
    start to download p1(audio)...
    100.00%|████████████████████| 下载完成【video/mp4】 28.28MB/28.28MB
    ffmpeg merge success, save into C:\Users\muggledy\Downloads\bili_output\BV1CY4y1F7hP\p1_总耗时近一年!七爷带你一步到位看完昭和《奥特曼》系列全部345集怪兽及宇宙人们!_1初代奥特曼.mp4
    Note: this is a multi-episode video, you can download them all at once with --playlist
    

    Cookie获取方式如下(方式一):

    B站cookie获取方式

    方式二:上图F12开发者工具中点击“Application”标签页,再依次点击“Storage”-“Cookies”-“https://www.bilibili.com”,找到“SESSDATA”字段,复制该字段值,填充构造如下字符串即可:

    bili-get {URL链接} -c "SESSDATA={字段值};CURRENT_QUALITY=112"
    

    注:如果是Windows平台使用Chrome浏览器,可以指定-c参数为chrome,程序将自动从./AppData/Local/Google/Chrome/User Data/default/Network/Cookies读取B站的Cookie信息(其实就是获取上述SESSDATA字段值),譬如我们可以通过bili-get https://www.bilibili.com/video/BV18G411D7FM -c chrome命令下载1080p视频(由于最新版本的chrome更新了cookie的加密机制,新的加密密文是以"v20"为前缀,现有解密方式仅支持解密"v10"前缀密文,因此-c chrome参数已不可用 2024.10.4)

  • -q--quality用于指定要下载的视频质量(清晰度),可选值有MAX(最高质量,缺省值)、MIN(最低质量)、MANUAL(手动选择视频质量)

  • 支持多线程下载,-t--threads用于指定额外的下载线程数(缺省值为0,表示不启用多线程),譬如指定-t 3,加上主线程,总计会有1+3=4个线程同时下载单个视频二进制文件,不同线程分别下载视频的不同部分,并且只有在平均每个线程被分派下载的字节数>4M时才会真的启用多线程,即对于小文件,仍是采用单个主线程下载

  • --nomerge表示是否自动合成下载下来的音视频文件,默认合成,但需要提前下载ffmpeg工具(如windows版本)并将其路径添加到PATH环境变量

  • --force表示强制重新下载视频,如果没有指定--playlist参数,则只是重新下载当前剧集,否则会直接删除bili_tmp/临时文件,重新下载全部剧集,但不会立即删除全部已下载音视频文件,而是覆盖更新

  • --debug用于在控制台输出全部debug日志信息,不指定该参数,也会将日志输出到bili_tmp/download.log中以备查阅

  • 默认随视频会下载封面图片

  • 默认随视频会下载弹幕XML文件,可以使用danmu2ass做弹幕格式转换,双击Danmu2Ass.sln,用Visual Studio打开并编译,在项目Danmu2Ass目录下会生成bin文件夹,进入其中的Debug文件夹,可以看到一个Kaedei.Danmu2Ass.exe可执行文件,将视频和弹幕文件一块拖动到该可执行文件图标上去即可生成ASS字幕文件,再通过potplayer打开视频即可自动加载字幕

  • 对于多剧集视频,支持一种特殊的多进程下载方式:开启多个终端窗口,分别执行同一个下载命令bili-get https://www.bilibili.com/video/BV16S4y1C7ad --playlist,不同的bili-get进程将互相协作各自选取不同的剧集号进行下载。原理简单来说就是:本地存储了一个临时文件用于记录当前多剧集视频的下载进度,将该文件抽象为一个待下载剧集号池子,不同bili-get进程通过文件锁的方式互斥地访问该临时文件、即互斥地从待下载剧集号池中锁定各自想要下载的剧集号,每个进程每次只会从池子中选取一个下载任务,下载完再从池子中选取另一个任务。另注意,多进程下载不支持--force参数,其行为未定义

致谢

如果觉得本工具有用,请点个Star呗~,有bug或有改进意见请提issue,thx!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sole_bili_get-0.0.13.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sole_bili_get-0.0.13-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file sole_bili_get-0.0.13.tar.gz.

File metadata

  • Download URL: sole_bili_get-0.0.13.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for sole_bili_get-0.0.13.tar.gz
Algorithm Hash digest
SHA256 e9fa1faf363f0b5cc37b76a40a44e6f91327f39427748f33747d8b4ef82efe5a
MD5 2706c76730369c043f1c0ed72e63da48
BLAKE2b-256 573fec70886dd7c019c765999192f66fd127ebe44d78af11831cf0a8495472cb

See more details on using hashes here.

File details

Details for the file sole_bili_get-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: sole_bili_get-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for sole_bili_get-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 e42320b0113dd014b3bfaa2b94ca807e66fa252cc8e2e0d0ccc42219d9d82b33
MD5 457b116c423f6232e95ac103a2093b6e
BLAKE2b-256 8f253d84b445f82530359eba08ad14810fcc3035484ee3461aef165a4f1148b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page