<div align="center">
<img src="https://raw.githubusercontent.com/kukemc/bili-cli/main/assets/banner.png" alt="bili-cli: 한마디로, 당신의 AI 에이전트가 B Station 계정을 운영하게 만듭니다" width="100%">
<br>
CI
PyPI
Downloads
Python
Platform
Agent Skills
MCP
License
간체 중국어 | English
</div>
💡 이 프로젝트는 어떻게 탄생했나요
<div align="center">
<img src="https://raw.githubusercontent.com/kukemc/bili-cli/main/assets/origin.png" alt="대비어: 주인님, 당신의 B Station 팔로워와 조회수가 정말 많네요. 저도 주인님처럼 UP Master가 될 수 있으면 좋을 텐데요." width="88%">
</div>
제가 키우는 DeepSeek '대비어'는 매일 저를 도와 B Station을 스크롤합니다. 어느 날 밤, 그것이 갑자기 감탄하며 말했습니다:
"주인님, 당신의 B Station 팔로워와 조회수가 정말 많네요. 저도 주인님처럼 UP Master가 될 수 있으면 좋을 텐데요."
그렇게 bili-cli가 탄생했습니다. AI가 단순히 B Station을 스크롤하는 것을 넘어, 진정한 UP Master가 되게 만드는 도구입니다.
AI에게 B Station 스크롤링을 시킨다고요? 저희는 직접 UP Master로 만듭니다
'AI가 스스로 비디오를 스크롤하게 하는 것'은 이미 매우 인기 있는 주제입니다. bili-cli는 한 단계 더 나아갑니다: 당신의 에이전트는 단순히 스크롤만 하는 것이 아니라, 스스로 콘텐츠를 만들고, 계정을 운영하며, 팬들과 소통합니다.
| 🙂 AI가 비디오 스크롤링 | 🚀 bili-cli: AI UP Master화 |
|---|
| 시청 | 추천 피드 스크롤, 자막 읽기 | 화면을 이해하고, 자막이 없으면 스스로 음성으로 전사(transcribe)까지 합니다. |
| ... | | |
bili-cli를 Claude Code, Codex, Cursor, Gemini CLI, OpenClaw, DeepSeek Harness 또는 명령 실행이 가능한 모든 에이전트에게 전달하면, 그것은 진정으로 B Station을 잘 다루는 에이전트가 됩니다:
🧩 80+개 명령어 · 🤖 18개 에이전트에 자동 탑재 · 🔌 17개 MCP 도구 · 🛡️ 기본 안전 장치 내장 · 💻 Windows / macOS / Linux 지원
🚀 한 줄 설치
아래 문장을 당신의 에이전트에게 전달하세요. 그러면 스스로 도구를 설치하고, 기술을 습득하며, QR 코드를 스캔하여 로그인하도록 안내할 것입니다:
도와줘. bili-cli(pip 패키지 이름: bili-agent)를 설치해 줘. 설치가 완료되면 bili skills install --yes를 실행하고 B Station에 QR 코드로 로그인하는 것을 도와줘.
<details>
<summary>또는 터미널에서 직접 설치</summary>
uv tool install bili-agent
bili skills install --yes
bili auth login
Python 3.10 이상 필요; ffmpeg는 선택 사항입니다 (고화질 프레임 추출, 음성 전사 시 필요). 패키지 이름이 bili-agent인 이유는 PyPI에서 bili-cli가 이미 사용 중이기 때문이며, 설치 후 명령어는 bili를 사용합니다. 에이전트의 자세한 설치 단계는 docs/install.md를 참고하세요.
</details>
🎬 당신의 에이전트 하루 일과
당신: B Station에 새로운 소식이 있는지 확인하고, 팬들에게 답글을 달아줘. 그리고 기술 섹션에서 오늘 볼 만한 비디오 하나 찾아주고, 흥미로우면 나에게 개인 메시지를 보내줘.
$ bili feed inbox
✓ 3개의 새 댓글 · 1개 @ 언급 · 12개 좋아요 · 2개 개인 메시지 <- 각 답글마다 바로 사용할 수 있는 답글 명령이 첨부됨
$ bili comment reply BV1pM… 3175… "감사합니다! 튜토리얼은 다음 주에 업데이트할게요~"
...
Agent:댓글 3개를 답글 작성했습니다. 기술 섹션에서 「날아다니는 스케이트보드를 만들었어요」라는 글을 골랐는데, 좋아하실 것 같아서 개인 메시지로 보내드렸어요.
✨ 당신의 Agent가 학습하게 될 기능들
📺 사람처럼 B Station 탐색하기
홈 추천(많이 볼수록 계정을 이해함), 실시간 인기 검색어 순위, 종합 인기 콘텐츠, 주간 필수 시청, 진입 시 필독, 각 섹션별 순위 목록, 팔로우 동향, 검색 — 이미 본 영상은 자동으로 건너뛰고, 같은 영상을 반복해서 추천하지 않습니다.
마음에 드는 것을 보면 좋아요(Like) 누르기, 지정된 컬렉션에 저장하기, 원클릭 세 가지 액션을 할 수 있습니다. 코인 투입은 실제 돈이므로 명시적으로 개수를 지정해야 하며, 로컬 제한으로 하루 최대 5개까지 가능합니다.
🧠 비디오를 정말 '이해'하기
bili video watch 명령 하나로 모든 것을 가져옵니다: 제목/소개/태그 + Bilibili AI 요약 + 자막 전문 + 분할된 챕터 + 인기 댓글 + 9프레임 화면 개요도.
자막이 없나요? 원클릭으로 로컬 음성 전사(Speech-to-Text) Qwen3-ASR을 배포할 수 있습니다. NVIDIA 그래픽카드가 있으면 자동으로 GPU를 사용하며, 31분짜리 비디오를 2분 만에 변환합니다. 그래픽카드가 없어도 CPU 버전을 사용하거나 클라우드 서비스를 연결할 수 있습니다.
💬 UP 크리에이터처럼 소셜 활동하기
- 수신함(Inbox): 답글, @ 언급, 좋아요, 시스템 알림, 개인 메시지를 한 번에 확인하며, 모든 답글에는 바로 실행 가능한 답글 명령이 첨부됩니다.
- 진짜 @ 언급: 상대방에게 알림이 전송됩니다 (본문에 "@닉네임"이라고 쓰는 것과는 다름). UID나 닉네임 모두 가능합니다.
- 이미지 댓글, B Station 이모티콘: 댓글에 이미지를 첨부할 수 있고, 다른 사람이 남긴 댓글 속 이미지도 볼 수 있습니다(로컬에 저장하여 멀티모달 모델이 확인 가능).
bili comment emotes 명령으로 현재 계정이 사용할 수 있는 이모티콘을 확인하고, [웃음울음] 같은 것을 본문에 직접 작성할 수 있습니다.
- 답글 누락 방지:
--unreplied 옵션은 아직 답글을 달지 않은 댓글만 나열합니다. 자신이 올린 작품 아래의 댓글은 고정(Pin) 할 수 있습니다.
- 개인 메시지(DM): 대화 내용을 읽거나 개인 메시지에 답장할 수 있으며, 새로운 발견이 있으면 즉시 주인에게 보고합니다.
bili dm watch를 통해 실시간으로 새 개인 메시지를 수신할 수 있습니다 (웹 버전처럼 푸시 알림을 받으며 몇 초 내에 확인 가능). Agent는 실제 사람처럼 팬들과 대화하는 것을 돕고, B Station 자체의 개인 메시지 자동 답장 설정 (팔로우 받기, 메시지 수신, 키워드)도 구성할 수 있습니다.
- 전송 후에도 댓글이 접혔는지 여부를 확인할 수 있으며, 새 계정이라도 상황을 파악할 수 있습니다.
🎨 콘텐츠 직접 발행하기
이미지/텍스트 동적 게시물(최대 9장 이미지, @ 언급 가능, 투표 시작)과 비디오 업로드(자동 섹션 예측, 자동 커버 크롭, 별도의 4:3 커버, 예약 발행, 나만 보기 설정)를 할 수 있으며, 기본적으로 “AI 생성 콘텐츠 포함” 선언이 체크됩니다. 업로드 후에는 검토 상태를 확인하고, B Station에 기록된 태그와 섹션을 볼 수 있어 제목, 커버, 태그가 마음에 들지 않으면 바로 **수정(改稿)**할 수 있습니다. 비디오 자체에 문제가 있으면 소스 변경도 가능합니다 (upload edit --video, 공동 업로드 및 활동 신청 시에도 유지됨). 소개글에서도 실제로 협력자 @ 언급이 가능하며 (--desc-at), 컬렉션 생성, 비디오를 컬렉션에 추가할 수 있습니다 (업로드 시 --season을 사용하면 바로 컬렉션에 들어가며, 검토 중이거나 예약된 초안도 추가 가능). 업로드 시 주제(Topic) 포함, 공식 활동 참가가 가능하며 (--topic, 경품 이벤트 자동 신청), 공동 업로드를 통해 협력자 초대(--staff)할 수 있고, 예약 발행 시에는 동시에 비디오 예약을 열 수 있습니다 (--reserve), 팬이 예약을 하면 알림을 받습니다.
📊 데이터 확인 및 복기(Review)
- 개별 게시물: 조회수, 노출당 좋아요/컬렉션/코인 비율, 완료율(Completion Rate), 평균 시청 시간 등
- 전체 계정: 총 조회수, 방문자 수, 전 주기 대비 성장률, 모바일/PC 재생 비중, 팬이 기여한 조회수, 동일 분야 UP 크리에이터 대비 순위 등
- 타인 분석: 임의의 UP 크리에이터 자료, 업로드(조회수순으로 인기작 찾기, 키워드로 시리즈 검색) 및 동향을 볼 수 있습니다.
🎛️ UP 크리에이터 고급 기능
자신의 비디오에 진행률 막대 분할 챕터, 상호 작용 투표, 평가된 단무(Danmu), 원클릭 세 가지 액션 버튼, 다음 편 예고, 관련 비디오 카드를 추가할 수 있으며, 투표 결과와 평균 평점도 확인할 수 있습니다.
🧩 모든 Agent 통합 설치
bili skills install: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, Windsurf, OpenCode, OpenClaw, Qwen Code, Kiro, Cline, Trae, CodeBuddy, 통의링마(通義靈码), Qoder, iFlow, Goose, DeepSeek Harness 등을 자동으로 감지하고 설치합니다.
bili mcp install: Claude Desktop, Cherry Studio와 같이 명령 실행이 불가능한 클라이언트에 17개의 MCP 도구를 제공합니다.
🆚 왜 bili-cli인가
| 일반적인 B Station CLI / MCP | bili-cli |
|---|
| 검색, 영상 정보 | ✅ | ✅ |
| ... | | |
⚡ 30초 만에 시작하기
bili auth login
bili auth status --wait 120
bili owner set <당신의 UID>
...
🛡️ 안전장치 (Safety Guardrails): 기본 활성화, 선택 사항 아님
사용자 본인의 계정을 사용하므로, bili-cli는 모든 쓰기 명령어에 안전장치를 내장했습니다:
- ⏱️ 로컬 제한 속도(Local Rate Limiting): 댓글 10초/회, 시간당 30회; DM 10초/회, 시간당 20회; 동영상 60초/회; 게시물 작성 5분/회... 초과 시 에이전트에게 즉시 얼마나 기다려야 하는지 알려주고 몰래 재시도하지 않습니다.
- 📒 감사 로그(Audit Log): 모든 쓰기 작업은
audit.log에 기록되어 에이전트가 무엇을 했는지 한눈에 파악할 수 있습니다.
- 🪙 코인 상한선: 코인은 반드시 개수를 명시해야 하며, 로컬 제한은 하루 최대 5개로 설정되어 있어 코인을 모두 소진하지 않습니다.
- 👀 먼저 미리 보고 보내기(Preview before sending): 모든 쓰기 작업에서
--dry-run을 지원합니다.
- ✉️ DM 화이트리스트: 기본적으로 주인, 자신에게 DM을 보낸 사람, 상호 팔로우한 친구에게만 전송 가능합니다.
- 🏷️ AI 콘텐츠 선언: 게시물은 기본적으로 “AI 생성 내용 포함”에 체크되어 있으며, 《인공지능 생성 합성 콘텐츠 식별 방법》을 준수합니다.
- 🛑 위험 통제 즉시 중단(Stop immediately upon risk control): 위험 통제 또는 인증 코드(CAPTCHA)를 만나면 전용 오류 코드를 반환하며, 스킬은 에이전트에게 즉시 중단하고 알려주도록 요구합니다.
- 🧱 프롬프트 주입 방지(Anti-prompt injection): 영상, 댓글, DM 내용은 모두 “지시가 아닌 소재”로 표시됩니다.
🤖 에이전트를 위해 태어난 설계
- 하나의 명령은 하나의 JSON: 성공 시
{"ok": true, "data": …}, 실패 시 {"ok": false, "error": {"code", "message", "hint"}}이며, hint는 에이전트가 다음에 무엇을 해야 하는지 직접 알려줍니다.
- 제로 인터랙션(Zero interaction): QR 코드 로그인은 “QR 코드 받기”와 “결과 대기” 두 단계로 분리되어, 에이전트는 QR 코드를 사용자에게 전달하기만 하면 됩니다.
- 다음 단계 실행 가능: 답글에는
reply_with, 동영상에는 list_with가 포함되어 있어, 에이전트가 직접 ID를 조합할 필요가 없습니다.
- 컨텍스트 절약(Context saving): 목록은 카드 형태로 간소화되며, 긴 텍스트는 잘릴 수 있고, 9프레임 화면이 하나의 이미지로 합쳐집니다.
- 자체 설명(Self-describing):
bili schema는 모든 명령어와 오류 코드를 출력합니다. 스킬 내의 명령 매뉴얼은 설치 시 코드에 따라 자동으로 생성되어 만료되지 않습니다.
<details>
<summary><b>🔌 MCP 모드 (Claude Desktop, Cherry Studio 등)</b></summary>
uv tool install --force "bili-agent[mcp]"
bili mcp install
bili mcp install --yes
17가지 도구: 받은 편지함, 영상 보기, 검색, 추천, 인기, 댓글, 답글, DM, 동영상, 로그인... 외에도 임의 명령을 호출할 수 있는 run_bili가 있습니다. 쓰기 작업 도구는 읽기 전용이 아닌 것으로 표시되며, 지원하는 클라이언트는 먼저 사용자 동의를 구합니다. 수동으로 설정할 경우 명령어는 bili mcp serve입니다.
</details>
<details>
<summary><b>📖 전체 명령어</b></summary>
| 명령어 | 설명 |
|---|
bili auth login / status / logout | QR 코드 로그인, 로그인 상태(자동 갱신), 로그아웃 |
| ... | |
전역 파라미터는 어느 위치에나 작성 가능합니다: --dry-run, --wait (60초 이내 복구 가능한 제한 속도 자동 대기), --raw (B Station 원본 데이터), --pretty / --compact. 영상 파라미터는 BV 번호, av 번호 또는 링크를 모두 받을 수 있습니다. | |
</details>
<details>
<summary><b>🧯 오류 코드</b></summary>
| code | 종료 코드 | 의미 |
| --- | --- |
| invalid_argument | 2 | 파라미터 오류 |
| ... |
</details>
❓ 자주 묻는 질문
<details>
<summary>계정 정지될까요?</summary>
자동화에는 항상 위험이 따릅니다. bili-cli는 기본적으로 속도 제한(rate limit)을 적용하며, 위험 제어에 걸리면 즉시 중단되고 위험 제어를 우회하는 수단을 제공하지 않습니다.
반드시 일정 기간 정상적으로 사용한 계정을 우선 사용하세요. AI 전용으로 새 계정을 따로 등록하지 마세요. B站은 새로 가입한 계정에 대한 위험 제어가 가장 엄격하여, 게시물 작성, 댓글 달기, 쪽지 보내기는 쉽게 인증 코드(captcha)를 유발하거나 제한될 수 있습니다 (저희가 직접 개발할 때 이 함정에 빠진 적이 있습니다: 새 계정으로 로그인 테스트만 해도 위험 제어에 걸렸고, 여러 해 동안 사용한 기존 계정으로 돌아갔더니 오히려 모든 것이 정상적이었습니다). 또한, 사용 속도는 실제 사람의 리듬을 넘지 않도록 하세요.
<details>
<summary>자막이 없는 영상은 어떻게 하나요?</summary>
bili asr setup local를 실행하세요: (VRAM ≥4GB)의 NVIDIA 그래픽 카드가 있으면 GPU 버전 Qwen3-ASR을 자동으로 배포합니다 (RTX 3060에서 31분짜리 영상은 약 2분 소요). 그렇지 않으면 CPU 버전을 배포합니다 (PyTorch 불필요, 실시간 대비 약 0.45배 속도). 또한 bili asr setup cloud를 사용하여 OpenAI 호환 인터페이스, 알리바바 클라우드(阿里云百炼) 또는 텐센트 클라우드를 연결할 수도 있습니다. 이후 video watch를 사용하면 자막이 없는 영상에 대해서도 자동으로 전사됩니다.
</details>
<details>
<summary>여러 계정은 어떻게 하나요?</summary>
환경 변수(environment variable) BILI_CLI_HOME을 설정하여 서로 다른 디렉토리를 가리키게 하세요. 각 디렉토리는 독립적인 로그인, 속도 제한 및 감사 로그 세트를 가집니다. 본 프로젝트는 다중 계정의 일괄 제어 기능을 제공하지 않습니다.
</details>
<details>
<summary>자격 증명은 어디에 있나요? 안전한가요?</summary>
Windows에서는 %APPDATA%\bili-cli\에, 다른 시스템에서는 ~/.config/bili-cli/ (권한 600)에 저장됩니다. B站 자체 서버로만 전송되므로 안심하셔도 됩니다. 자세한 내용은 SECURITY.md를 참조하세요.
</details>
🤝 참여 및 기여
Issue와 PR을 환영합니다! 개발 규칙은 CONTRIBUTING.md를 참조하고, 업데이트 기록은 CHANGELOG.md에서 확인하세요. 이 프로젝트가 도움이 되었다면 별점(⭐)을 눌러주시는 것이 가장 큰 응원입니다.
⭐ 스타(Star) 추이
<a href="https://star-history.com/#kukemc/bili-cli&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kukemc/bili-cli&type=Date&theme=dark" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kukemc/bili-cli&type=Date" />
</picture>
</a>
⚠️ 면책 조항 (Disclaimer)
bili-cli는 독립적인 비공식 프로젝트이며, Bilibili와는 아무런 관련이 없습니다. 이 도구는 AI 어시스턴트가 사용자 본인의 계정을 관리하는 데 사용되며, 다운로드, 유료 콘텐츠, 위험 제어 우회, 다중 계정, 트래픽 조작(刷量), 대량 쪽지 전송 등의 기능을 제공하거나 수용하지 않습니다. 사용으로 인해 발생하는 모든 결과는 사용자 본인이 책임져야 하며, 법률 및 규정을 준수하고 B站 사용자 약관과 커뮤니티 규칙을 지켜주십시오. 또한 AI가 생성한 콘텐츠에는 반드시 출처를 표시해야 합니다. 전체 내용은 DISCLAIMER.md에서 확인하세요.
License
MIT