Biligrab, Bilibili的另一个danmaku和视频文件下载器

分享于 

13分钟阅读

GitHub

  繁體 雙語
Yet another danmaku and video file downloader of Bilibili.
  • 源代码名称:Biligrab
  • 源代码网址:http://www.github.com/cnbeining/Biligrab
  • Biligrab源代码文档
  • Biligrab源代码下载
  • Git URL:
    git://www.github.com/cnbeining/Biligrab.git
    Git Clone代码到本地:
    git clone http://www.github.com/cnbeining/Biligrab
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/cnbeining/Biligrab
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Biligrab

    另一个 automatic/semi-automatic/manual danmaku和Bilibili的视频文件下载器。

    这里抓取器与大多数"黑色技术"集成。 最好绕过一些版权和地理位置限制:

    • 7 个独立的解析 source(s)的方法 ! 现在BilibiliPr和你得到了 ! 还有假 IP !
    • 自动连接和转换到 MP4 (。或者 FLV,即使不可能,也是) 文件,通过与 Mukioplayer-Py-Mac (。Flash danmaku播放解决方案) 和 ABPlayer-HTML5-Mac (。HTML5播放解决方案,首选)的直接集成。
    • 针对不同用例的交互式和 命令行 模式。 还有静音模式。
    • 轻松处理单个或者多个视频。 现在你可以使用 Bilibili mylist mylist。
    • 将danmaku转换为ASS字幕,轻松使用 m13253 Danmaku2ass的( GPLv2 )。 py2和主( py3 ) 分支可以用于更好的danmaku处理。
    • damaku仅导出
    • M3U不需要等待 MPlayer。MPC或者VLC等玩家就可以导出--播放 danmaku。
    • 内置多部分下载,有助于降低慢速开销。

    用法

    如果你有一个Bilibili帐户,用 dantmnf/biliupload/getcookie.py 设置 cookie,将帮助你下载一些受限视频。 你也可以手工操作。

    文件应类似于:

    
    DedeUserID=123456;DedeUserID__ckMd5=****************;SESSDATA=*******************
    
    
    
    

    交互模式( 注意某些功能在这里模式下不可用):

    
    $ python2 biligrab.py
    
    
    
    

    或者 命令行 模式:

    
    $ python2 biligrab.py -h
    
    
    python biligrab.py (-h) (-a) (-p) (-s) (-c) (-d) (-v) (-l) (-e) (-b) (-m) (-n) (-u) (-t) (-q) (-r) (-g)
    
    
    
    -h: Default: None
    
    
     Print this usage file.
    
    
    
    -a: Default: None
    
    
     The av number.
    
    
     If not set, Biligrab will use the fallback interactive mode.
    
    
     Support"~","," and mix use.
    
    
     Examples:
    
    
     Input Output
    
    
     1 [1]
    
    
     1,2 [1, 2]
    
    
     1~3 [1, 2, 3]
    
    
     1,2~3 [1, 2, 3]
    
    
    
    -p: Default: 0
    
    
     The part number.
    
    
     Able to use the same syntax as"-a".
    
    
     If set to 0, Biligrab will download all the available parts in the video.
    
    
    
    -s: Default: 0
    
    
    Source to download.
    
    
    0: The original API source, can be Letv backup,
    
    
     and can fail if the original video is not available(e.g., deleted)
    
    
    1: The CDN API source,"oversea accelerate".
    
    
     Can be MINICDN backup in Mainland China or oversea.
    
    
     Good to bypass some bangumi's restrictions.
    
    
    2: Force to use the original source.
    
    
     Use Flvcd to parse the video, but would fail if
    
    
     1) The original source DNE, e.g., some old videos
    
    
     2) The original source is Letvcloud itself.
    
    
     3) Other unknown reason(s) that stops Flvcd from parsing the video.
    
    
    For any video that failed to parse, Biligrab will try to use Flvcd.
    
    
    (Mainly for oversea users regarding to copyright-restricted bangumies.)
    
    
    If the API is blocked, Biligrab would fake the UA.
    
    
    3: (Not stable) Use the HTML5 API.
    
    
     This works for downloading some cached Letvcloud videos, but is slow, and would fail for no reason sometimes.
    
    
     Will retry if unavailable.
    
    
    4: Use Flvcd.
    
    
     Good to fight with oversea and copyright restriction, but not working with iQiyi.
    
    
     May retrieve better quality video, especially for Youku.
    
    
    5: Use BilibiliPr.
    
    
     Good to fight with some copyright restriction that BilibiliPr can fix.
    
    
     Not always working though.
    
    
    6: Use You-get (https://github.com/soimort/you-get).
    
    
     You need a you-get callable directly like"you-get -u blahblah".
    
    
    
    -c: Default:./bilicookies
    
    
    The path of cookies.
    
    
    Use cookies to visit member-only videos.
    
    
    
    -d: Default: None
    
    
    Set the desired download software.
    
    
    Biligrab supports aria2c(16 threads), axel(20 threads), wget and curl by far.
    
    
    If not set, Biligrab will detect an available one;
    
    
    If none of those is available, Biligrab will quit.
    
    
    For more software support, please open an issue at https://github.com/cnbeining/Biligrab/issues/
    
    
    
    -v: Default:None
    
    
    Set the desired concatenate software.
    
    
    Biligrab supports ffmpeg by far.
    
    
    If not set, Biligrab will detect an available one;
    
    
    If none of those is available, Biligrab will quit.
    
    
    For more software support, please open an issue at https://github.com/cnbeining/Biligrab/issues/
    
    
    Make sure you include a *working* command line example of this software!
    
    
    
    -l: Default: INFO
    
    
    Dump the log of the output for better debugging.
    
    
    Can be set to debug.
    
    
    
    -e: Default: 1
    
    
    Export Danmaku to ASS file.
    
    
    Fulfilled with danmaku2ass(https://github.com/m13253/danmaku2ass/tree/py2),
    
    
    Author: @m13253, GPLv3 License.
    
    
    *For issue with this function, if you think the problem lies on the danmaku2ass side,
    
    
    please open the issue at both projects.*
    
    
    If set to 1 or 2, Biligrab will use Danmaku2ass's py2 branch.
    
    
    If set to 3, Biligrab will use Danmaku2ass's master branch, which would require
    
    
    a python3 callable via 'python3'.
    
    
    If python3 not callable or danmaku2ass2/3 DNE, Biligrab will ask for action.
    
    
    
    -b: Default: None
    
    
    Set the probe software.
    
    
    Biligrab supports Mediainfo and FFprobe.
    
    
    If not set, Biligrab will detect an available one;
    
    
    If none of those is available, Biligrab will quit.
    
    
    For more software support, please open an issue at https://github.com/cnbeining/Biligrab/issues/
    
    
    Make sure you include a *working* command line example of this software!
    
    
    
    -m: Default: 0
    
    
    Only download the danmaku.
    
    
    
    -n: Default: 0
    
    
    Silent Mode.
    
    
    Biligrab will not ask any question.
    
    
    
    -u: Default: 0
    
    
    Export video link to. m3u file, which can be used with MPlayer, mpc, VLC, etc.
    
    
    Biligrab will export a m3u8 instead of downloading any video(s).
    
    
    Can be broken with sources other than 0 or 1.
    
    
    
    -t: Default: None
    
    
    The number of Mylist.
    
    
    Biligrab will process all the videos in this list.
    
    
    
    -q: Default: 3
    
    
    The thread number for downloading.
    
    
    Good to fix overhead problem.
    
    
    
    -r: Default: -1
    
    
    Select video quality.
    
    
    Only works with Source 0 or 1.
    
    
    Range: 0~4, higher for better quality.
    
    
    
    -g: Default: 6
    
    
    Threads for downloading every part.
    
    
    Works with aria2 and axel.
    
    
    
    -i: Default: None
    
    
    Fake IP address.
    
    
    
    

    要求

    • python 2.7
    • curl + None/aria2c/wget/axel
    • ffmpeg
    • mediainfo/ffprobe ( 适用于 danmaku2ass )
    • python 3.x ( 用于danmaku2ass模式的python3,或者你得到)
    • 获取( 参见 https://github.com/soimort/you-get 模式 6信息)。

    作者

    Beining,http://www.cnbeining.com/

    许可证

    MIT许可证。

    Danmaku2ass(master) 和 Danmaku2ass(py2) 部分属于 @m13253, GPLv3许可证。 在原始作者的授权下使用。

    本程序为 ,绝对无保修。

    欢迎任何捐赠。

    对于问题,最好包括日志输出,这可以通过 -l 来启用。

    确保删除任何不希望公开共享的敏感信息,然后再发布任何内容 !

    你仍然可以通过我的电子邮件以私人方式发送信息。 public 键可以在 http://www.cnbeining.com/about/

    欢迎任何捐赠。 请与我联系: cnbeining[at]gmail.com。

    发布历史

    0.98.95: 使用miniloader的键。

    0.98.92: 再次更改API密钥集。

    0.98.91: 更改API密钥集。

    0.98.86: 紧急更新:下载伪 UA。

    0.98.85: 重写url获取功能,还添加IP假。

    0.98.81: 更新为API域更新。 感谢你的@m13253 帮助。

    0.98.8: 通过你的获取添加下载;修复回溯打印。

    0.98.72: 添加线程控制,如 #15.

    0.98.7: 添加一些质量选择。

    0.98.6: 添加bilibilipr的API。

    0.98.5: 添加测试多部分下载,更改 UA,更改错误处理,修复 #13, #14.

    0.98.4: 更改,更改为使用最佳源代码,重写 HTML5 API作为 #11.

    0.98.39: 更改高质量的优酷视频,重写错误报告和日志记录,如果未能获取视频,重写参数。

    0.98.3: 将默认的探测软件改为 ffprobe,解决分辨率错误,只有danmaku输出;更好的调试输出;danmaku2ass ( py2 ) 美化代码的float problem; 修正错误。

    0.98.29: 添加:修复: 使用普通 api #9, 感谢 @arition 帮助时,请不要伪造 UA。

    0.98.28: 修复错误,使用CLI模式修复错误。

    0.98.27: 更新为 #7.

    0.98.26: 添加对破碎源的更多支持。

    0.98.25: 为新浪源和来源的M3U导出添加支持。

    0.98.2: 为非新浪源的M3U导出增加的支持。

    0.98.1: 添加mylist下载。

    在文件中添加特殊字符,添加输出到M3U文件,使用 MPlayer,VLC,等等,重写视频URL逻辑,修改视频URL逻辑,使用ffprobe修复错误

    0.97.9: 重写URL检索逻辑;将URL检索划分为函数;转换为 .format() 样式;添加 HTML5 API ;直接使用 Flvcd ;美化错误日志。

    0.97.5: 添加( 自动) 下载所有页面;自动 PEP-8.

    0.97: 静默模式;多种视频模式;功能美化;更多错误处理。

    0.96.2: 合并请求请求 #6, #7: 优化Danmaku2ASS参数和异常处理,感谢 @m13253's 帮助;修复cookie时,修复错误,感谢 @m13253's 报告。

    0.96.1: 添加关于Danmaku2ass2的异常处理;修正视频猜测。

    添加服务,在没有 python 3的情况下处理ass转换;添加danmaku2ass依赖项检查模式;添加"仅 danmaku"模式;在更新过程中将默认的实时时间改为 8秒;更新许可信息。

    0.95: 添加 danmaku2ass,可以将danmaku转换为ass文件;修正axel错误。

    0.94: 添加假冒UA以绕过阻塞;添加自动生成 UA ;重写API逻辑。

    0.93: 处理包含 /&的文件名时出错,感谢 @solimot 报告;添加日志模式,可以通过 -l 1 来启用;清除多个标头;重新排列全局变量。

    0.92: 在下载多个部件时错误地退出。

    0.91: 增加对 axel。wget。curl和简单方式的支持;添加更多支持;添加简单的concat支持;可以选择软件并自动检测;代码美丽;代码美观。

    0.90: 修复如果不能获得某些原因( 地理位置或者API服务器错误),尝试使用Flvcd下载视频。

    0.89: 修复 #4, 力声明变量,如果未指定,则设置路径。

    0.88: 修复 #3, 2错误。

    0.87: 能够编辑cookie路径。 修复无法读取 cookie。

    0.86: 添加非交互模式,更改API域,修复 #2.

    如果失败,将连接到 flv,如果失败,则保留原始文件,删除一些行,使它的更易于 intregrate ;修复域 NAME

    0.8: 使用api修复最近的更改,并使用播放机 biliInterface-201407302359. 使用自己的密钥而不是 acdown

    在 V0.74, 访问 http://www.cnbeining.com/ 之前,或者在 https://gist.github.com/cnbeining/9605757/revisions 检查代码。


    相关文章