Use bilix to download BiliBili video and upload to the Internet Archive with metadata and danmaku.
Go to file
2024-01-21 20:49:16 +08:00
.github/workflows chore: Refactor import statements to avoid ci fail & update CI 2023-08-29 14:11:05 +08:00
.vscode feat(i18n): add en locale 2023-08-17 02:56:03 +08:00
biliarchiver fix: #13 2024-01-21 20:49:16 +08:00
.gitignore bump 0.1.7 2023-11-20 23:36:55 +08:00
bilibili-archive-checker.user.js refactor: better --bvids and lint 2023-08-13 23:57:54 +08:00
build.py build.py: publish to pypi 2023-08-17 04:52:15 +08:00
poetry.lock dependencies: re-lock 2023-11-20 23:38:22 +08:00
pyproject.toml bump 0.1.7 2023-11-20 23:36:55 +08:00
README.md feat(api): api command 2023-10-30 02:31:09 +08:00
requirements.txt feat(api): initial 2023-10-30 23:40:58 +08:00

biliarchiver

Archiving tool for Bilibili based on bilix

PyPI version

Install

pip install biliarchiver

Usage

biliarchiver --help

Basic usage

Follow these steps to start archiving:

  1. Initialize a new workspace in current working directory:
biliarchiver init
  1. Provide cookies and tokens following instructions:
biliarchiver auth
  1. Download videos from BiliBili:
biliarchiver down --bvids BVXXXXXXXXX
  • This command also accepts a list of BVIDs or path to a file. Details can be found in biliarchiver down --help.
  1. Upload videos to Internet Archive:
biliarchiver up --bvids BVXXXXXXXXX
  • This command also accepts a list of BVIDs or path to a file. Details can be found in biliarchiver up --help.

Rest API

  1. Start server
biliarchiver api
  1. Add videos
curl -X PUT -H "Content-Type: application/json" http://127.0.0.1:8000/archive/BVXXXXXX

Develop

Install

Please use poetry to install dependencies:

poetry install

Build English locale if necessary. Refer to the last section for details.

Run

poetry run biliarchiver --help

Lint

poetry run ruff check .

i18n

To generate and build locales, you need a GNU gettext compatible toolchain. You can install mingw and use sh to enter a bash shell on Windows.

Generate biliarchiver.pot:

find biliarchiver/ -name '*.py' | xargs xgettext -d base -o biliarchiver/locales/biliarchiver.pot

Add a new language:

msginit -i biliarchiver/locales/biliarchiver.pot -o en.po -l en

Update a language:

pnpx gpt-po sync --po biliarchiver/locales/en/LC_MESSAGES/biliarchiver.po --pot biliarchiver/locales/biliarchiver.pot

(Important) Build a language:

msgfmt biliarchiver/locales/en/LC_MESSAGES/biliarchiver.po -o biliarchiver/locales/en/LC_MESSAGES/biliarchiver.mo