Coder Social home page Coder Social logo

bili-sync's Introduction

bili-sync

简介

Note

新版本已使用 Rust 重构,对于 v1.x 的 Python 版本,请前往 v1.x 分支查看。

Caution

当前新版本尚不稳定,可能会有未告知的不兼容更改,请优先使用 Python 版本。

为 NAS 用户编写的 BILIBILI 收藏夹同步工具,可使用 EMBY 等媒体库工具浏览。

支持展示视频封面、名称、加入日期、标签、分页等。

效果演示

概览

详情

配置文件

程序默认会将配置文件存储于 ~/.config/bili-sync/config.toml,数据库文件存储于 ~/.config/bili-sync/data.sqlite,如果发现不存在则新建并写入初始配置。

配置文件加载时会进行简单校验,对于默认的空配置,校验将会报错,程序将会终止运行。

对于配置文件中的 credential,请参考凭据获取流程

配置文件中的 video_namepage_name 支持使用模板,在执行时会被动态替换为对应的内容。

video_name 支持设置 bvid(视频编号)、title(视频标题)、upper_name(up 主名称)、upper_mid(up 主 id)。

page_name 除支持 video 的全部参数外,还支持 ptitle(分 P 标题)、pid(分 P 页号)。

对于每个 favorite_list 的下载路径,程序会在其下建立如下的文件夹:

  1. 单页视频:
    ├── {video_name}
    │   ├── {page_name}.mp4
    │   ├── {page_name}.nfo
    │   └── {page_name}-poster.jpg
  2. 多页视频:
    ├── {video_name}
    │   ├── poster.jpg
    │   ├── Season 1
    │   │   ├── {page_name} - S01E01.mp4
    │   │   ├── {page_name} - S01E01.nfo
    │   │   ├── {page_name} - S01E01-thumb.jpg
    │   │   ├── {page_name} - S01E02.mp4
    │   │   ├── {page_name} - S01E02.nfo
    │   │   └── {page_name} - S01E02-thumb.jpg
    │   └── tvshow.nfo

对于 filter_option 的可选值,请前往 analyzer.rs 查看。

配置文件示例与说明

video_name = "{{title}}"
page_name = "{{bvid}}"
interval = 1200

[credential]
sessdata = ""
bili_jct = ""
buvid3 = ""
dedeuserid = ""
ac_time_value = ""

[filter_option]
video_max_quality = "Quality8k"
video_min_quality = "Quality360p"
audio_max_quality = "QualityHiRES"
audio_min_quality = "Quality64k"
codecs = [
    "AV1",
    "HEV",
    "AVC",
]
no_dolby_video = false
no_dolby_audio = false
no_hdr = false
no_hires = false

[favorite_list]
52642258 = "/home/amtoaer/HDDs/Videos/Bilibilis/混剪"

路线图

  • 凭证认证
  • 视频选优
  • 视频下载
  • 支持并发下载
  • 支持作为 daemon 运行
  • 构建 nfo 和 poster 文件,方便以单集形式导入 emby
  • 支持收藏夹翻页,下载全部历史视频
  • 对接数据库,提前检查,按需下载
  • 提供简单易用的打包(如 docker)
  • 更好的错误处理
  • 更好的日志
  • 请求过快出现风控的 workaround

bili-sync's People

Contributors

amtoaer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.