Bili digest
Bilibili Watch Later and Favorites digest exporter for local agent notes
npx -y skills add JackMeds/BiliDigest --skill bili-digestAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Summarize and organize the user's own logged-in Bilibili Watch Later and Favorites lists for local agent notes.
SKILL.md
5.2 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
BiliDigest
Use this skill when the user asks to summarize, inspect, or take notes from Bilibili Watch Later, Favorites, or a specific Bilibili video.
This repository is GPL-3.0-or-later and includes attribution notes for BiliTools in NOTICE.
Commands
Prefer the bundled launcher next to this SKILL.md so the skill also works when installed outside the repository:
scripts/bilidigest auth status
scripts/bilidigest auth import-browser edge
scripts/bilidigest auth session-path --json
scripts/bilidigest auth login --json --no-wait
scripts/bilidigest auth poll <qrcode_key> --json
scripts/bilidigest list watch-later --limit 15
scripts/bilidigest list watch-later --limit 600 --no-items
scripts/bilidigest transcript <BV-or-url> --format md
scripts/bilidigest summary <BV-or-url>
scripts/bilidigest batch watch-later --limit 600 --fallback-summary --with-summary
If the launcher cannot find the repository, set BILIDIGEST_HOME to the cloned BiliDigest path. When already inside the BiliDigest project root, these direct commands are equivalent:
python -m tools.bilidigest auth status
python -m tools.bilidigest auth import-browser edge
python -m tools.bilidigest auth session-path --json
python -m tools.bilidigest auth login
python -m tools.bilidigest auth login --json --no-wait
python -m tools.bilidigest auth poll <qrcode_key> --json
python -m tools.bilidigest list watch-later --limit 15
python -m tools.bilidigest list watch-later --limit 600 --no-items
python -m tools.bilidigest list favorites --mid me
python -m tools.bilidigest list favorite --media-id <id> --limit 15
python -m tools.bilidigest transcript <BV-or-url> --format md
python -m tools.bilidigest summary <BV-or-url>
python -m tools.bilidigest batch watch-later --limit 15 --with-summary
python -m tools.bilidigest batch watch-later --limit 600 --fallback-summary --with-summary
Workflow
- Check login status first.
- If login is missing and the user uses Microsoft Edge, prefer
auth import-browser edgebefore QR login. - For a list request, fetch at most 15 items unless the user explicitly asks for a smaller number.
- For a video, export Bilibili's existing subtitle first. Do not run ASR unless the subtitle export fails and the user asks for fallback transcription.
- Read the generated Markdown from
output/bilidigest/<date>/and summarize or organize notes from that text. - If Bilibili returns risk-control or login errors, stop and tell the user to re-login or retry later.
Batch Workflow
For large Watch Later runs, prefer the resumable batch command:
scripts/bilidigest batch watch-later --limit 600 --fallback-summary --with-summary
The command stores local cache and state here:
output/bilidigest/cache/watch-later.jsonl
output/bilidigest/cache/watch-later.meta.json
output/bilidigest/snapshots/watch-later.json
output/bilidigest/state/watch-later.json
List commands return the remote total, so agents can use --limit 1 for fast size checks. Rerunning the same batch command resumes from the state file. Completed videos and previously failed videos are skipped. Use --refresh-list when the user explicitly wants a fresh Watch Later list, and --no-resume only when they want to ignore the old state.
For daily automation, refresh the list and process only newly added items:
scripts/bilidigest batch watch-later --limit 600 --refresh-list --only-new --fallback-summary
Do not use --retry-failed in daily automation or large background batches. It is only for manual investigation after a temporary outage; videos without subtitles or AI summaries should remain failed after one attempt.
Chat Login Flow
For chat surfaces such as Hermes Agent, Telegram, or a TUI, do not block forever inside an interactive login command. Run:
python -m tools.bilidigest auth login --json --no-wait
Send the returned login_url or qr_image to the user. Then poll with:
python -m tools.bilidigest auth poll <qrcode_key> --json
Treat logged_in as success, expired as a request to regenerate the QR code, scanned as waiting for phone confirmation, and pending as still waiting for the scan.
Session Storage
The shared macOS session path is:
~/Library/Application Support/BiliDigest/session.json
Do not store session files inside individual Skill directories. Use auth session-path --json to confirm where the CLI is reading from.
Safety
Only process videos the user's own account can already access. Do not expose, print, or copy .user_session.json, cookies, API keys, or .env values into chat.
The CLI intentionally waits about 8-12 seconds between API requests. Do not override the delay for routine daily automation unless the user explicitly asks. The legacy yt-dlp downloader also runs with slow sleeps and one concurrent fragment by default.
For one-off large local batches, a modest override such as BILIDIGEST_DELAY_SECONDS=6 BILIDIGEST_DELAY_JITTER_SECONDS=2 is acceptable when the user explicitly asks to process hundreds of videos. Do not start multiple BiliDigest batch jobs at the same time.