BiliNote Documentation

repository·master·Indexed 27 days ago

https://github.com/jefferyhcool/bilinote

An open-source AI video note assistant that converts video content from Bilibili, YouTube, TikTok (Douyin), Kuaishou, and local files into structured Markdown notes. It features multimodal video understanding, RAG-based AI Q&A, automatic screenshot insertion, and support for various transcription engines (Fast-Whisper, MLX-Whisper, Groq, BCut) and LLM providers (OpenAI, DeepSeek, Qwen). Available as a browser extension, desktop client for Windows and macOS, or via Docker deployment.

Tokens
12.7K
Snippets
24
Records
95
Agent score
90%

What's inside BiliNote

  1. BiliNote Feature Overview

    master

    BiliNote is an AI-powered video note assistant that generates structured Markdown notes from video links.

    Key Capabilities:

    • Multi-platform Support: Bilibili, YouTube, TikTok (Douyin), Kuaishou, and local video files.
    • Note Customization: Selectable note formats and styles.
    • Multimodal Understanding: Supports multimodal video comprehension.
    • AI Q&A: RAG-based (Retrieval-Augmented Generation) AI chat about your notes, supporting Function Calling for querying original data.
    • Visuals & Links: Automatic screenshot insertion and content jump links to the original video timestamp.
    • History Management: Support for multiple versions of records and history playback.
  2. Update CHANGELOG and README for a release

    master

    On the release/X.Y.Z branch, perform the following documentation updates:

    • Edit CHANGELOG.md: Add a new section ## [X.Y.Z] - YYYY-MM-DD categorized by Added, Changed, Fixed, Removed, Security, or Internal.
    • Edit README.md: Update the version number in the top title and add a summary section for the new version.
    • (Optional) Update CLAUDE.md for major changes.

    Commit and push these changes to the origin.

    git commit -am "docs: vX.Y.Z CHANGELOG + README 版本"
    git push -u origin release/X.Y.Z
  3. Configure GPU Acceleration for Faster Whisper

    master

    BiliNote supports NVIDIA GPU acceleration for local Faster Whisper transcription. The backend automatically detects CUDA if the correct environment is provided.

    Requirements:

    Setup Steps:

    1. Verify GPU access on host: docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi.
    2. Stop the current CPU stack: docker-compose down.
    3. Start the GPU stack: docker-compose -f docker-compose.gpu.yml up --build -d.
    4. In the BiliNote UI, go to Settings $\rightarrow$ Audio Transcription Configuration and select Faster Whisper (Local).

    Verification: Check logs for CUDA 可用,使用 GPU or monitor nvidia-smi during transcription.

  4. Merge release branch to master and develop

    master

    Create two Pull Requests on GitHub to finalize the release. Both must use Merge commit (--no-ff) and follow the type(scope): subject format to pass commitlint validation.

    PR TargetBase BranchMerge MethodRequired Commit Title
    mastermaster--no-ffchore(release): vX.Y.Z
    developdevelop--no-ffchore(release): merge release/X.Y.Z back into develop
  5. Download BiliNote Desktop Client

    master

    BiliNote provides desktop clients for Windows and macOS. You can download the latest versions from the GitHub Releases page.

    Important for Windows users: Ensure the application is run in an environment where the installation path does not contain Chinese characters.

    https://github.com/JefferyHcool/BiliNote/releases
  6. Execute the full release process

    master

    The release process follows a specific workflow to ensure stability and synchronization between branches.

    Workflow Overview:

    1. Create a release/X.Y.Z branch from develop.
    2. Update CHANGELOG.md and README.md.
    3. Merge release/X.Y.Z into master (using --no-ff merge commit) and back into develop (using --no-ff merge commit).
    4. Tag the master branch with vX.Y.Z.
    5. CI automatically builds extension artifacts and attaches them to a GitHub Release.
    6. Manually upload artifacts to browser stores (Chrome, Edge, Firefox) or use automated secrets for CI-based publishing.
  7. Manually upload extension to browser stores

    master

    Once the GitHub Release is generated, manually upload the artifacts to the respective developer consoles:

    Note: Desktop (Tauri) builds are automatically handled by GitHub Actions when a v* tag is pushed.

  8. Enable type-aware ESLint rules in the React + TypeScript + Vite template

    master

    For production applications, it is recommended to upgrade the default ESLint configuration to use type-aware lint rules. This requires updating the extends array and configuring parserOptions to point to your tsconfig files.

    export default tseslint.config({
      extends: [
        // Replace ...tseslint.configs.recommended with one of these:
        ...tseslint.configs.recommendedTypeChecked,
        // Or for stricter rules:
        ...tseslint.configs.strictTypeChecked,
        // Or for stylistic rules:
        ...tseslint.configs.stylisticTypeChecked,
      ],
      languageOptions: {
        // other options...
        parserOptions: {
          project: ['./tsconfig.node.json', './tsconfig.app.json'],
          tsconfigRootDir: import.meta.dirname,
        },
      },
    })
  9. Execute an emergency hotfix

    master

    For urgent production issues, bypass the release/* flow and use a hotfix/* branch:

    1. Create a branch from master: git checkout -b hotfix/<scope>-<issue>.
    2. Fix the issue.
    3. Create a PR to merge into master.
    4. Create a PR to merge (back-port) into develop.
    5. Tag the master branch with a patch version (e.g., v2.1.1) to trigger the CI release process.
    git checkout master && git pull
    git checkout -b hotfix/<scope>-<事项>
  10. Deploy BiliNote from Source

    master

    To run BiliNote without Docker, follow these steps to set up the backend and frontend separately.

    Prerequisites:

    • Install ffmpeg and ensure it is in your system PATH.
    • Python (for backend).
    • pnpm (for frontend).

    Steps:

    1. Clone the repository and prepare the environment.
    2. Start the FastAPI backend.
    3. Start the Vite + React frontend.

    Access the application at http://localhost:3015.

    # 1. Clone and setup env
    git clone https://github.com/JefferyHcool/BiliNote.git
    cd BiliNote
    mv .env.example .env
    
    # 2. Start Backend (FastAPI)
    cd backend
    pip install -r requirements.txt
    python main.py
    
    # 3. Start Frontend (Vite + React)
    cd BillNote_frontend
    pnpm install
    pnpm dev