Skip to content

Librarian

Librarian is the Coral module focused on media hygiene and enrichment. It provides tools for organizing, enriching, and maintaining your self-hosted Jellyfin media libraries.

Keep your media organized, metadata enriched, and everything running smoothly.

Librarian offers:

  • Library management - Organize and optimize your collections
  • Metadata enrichment - Enhance missing information
  • Duplicate detection - Find and clean up duplicates
  • Quality assurance - Tools for maintaining library health
  • Bulk operations - Manage items across your library
  • Local connection - SQLite-backed Jellyfin settings
  • Node.js 18+
  • pnpm (or npm/yarn)
  • Running Jellyfin server
  1. Clone the repository:
Terminal window
git clone https://github.com/Get-Coral/librarian.git
cd librarian
  1. Install dependencies:
Terminal window
pnpm install
  1. Configure environment variables (optional):
Terminal window
JELLYFIN_URL=http://your-server:8096
JELLYFIN_API_KEY=your-api-key
JELLYFIN_USER_ID=your-user-id

If not set in environment, Librarian will prompt for connection on startup and store settings locally.

  1. Start the development server:
Terminal window
pnpm dev

App runs at http://localhost:3000

  • Organize by type - Movies, TV shows, music, books
  • Create collections - Group related content
  • Manage folders - Physical library structure
  • Cleanup tools - Remove orphaned files
  • Missing metadata - Identify items needing information
  • Bulk editing - Update multiple items at once
  • Match against sources - Auto-populate from external APIs
  • Custom metadata - Add your own tags and fields
  • Duplicate detection - Find and manage duplicates
  • File validation - Check format compatibility
  • Performance optimization - Index and cache management
  • Backup tools - Export library configuration
  • Library statistics - Size, growth, composition
  • Format analysis - What codecs and containers you use
  • Utilization metrics - Storage and performance data

Set these for automatic connection:

Terminal window
JELLYFIN_URL=http://your-server:8096
JELLYFIN_API_KEY=your-api-key
JELLYFIN_USER_ID=your-user-id

Connection settings are stored in SQLite at ./data/librarian.sqlite.

Librarian is built with:

  • src/routes/ - Page and API routes
  • src/components/ - UI components
  • src/lib/ - Utilities and helpers
  • src/data/ - Data storage

Deploy Librarian to:

  • Vercel
  • Docker (Dockerfile included)
  • Self-hosted servers

Production build:

Terminal window
pnpm build
pnpm preview

Get-Coral/librarian on GitHub