← Browse

@robinp7720/oblecto

B

Oblecto is a self-hosted media server for streaming the media you already own.

instructionscodex

Install

agr install @robinp7720/oblecto --target codex

Writes 1 file into AGENTS.md, pinned to git-4a6b5049.

  • AGENTS.md

Document

Oblecto repository guide

Scope

  • Backend Node/ESM server lives in src/.
  • Default Vue 2 frontend lives in Oblecto-Web/ and builds to Oblecto-Web/dist/.
  • Backend tests are in tests/; helper scripts in scripts/.

Quick commands (from repo root)

  • npm run dev (backend dev server via tsx)
  • npm run build (backend build to dist/)
  • npm run start (run built backend)
  • npm run oblecto / npm run oblecto:dev (CLI)
  • npm run build:web (frontend build; runs npm install inside Oblecto-Web/)
  • npm test / npm run test:mocha / npm run test:startup

Config and data

  • Config is read from /etc/oblecto/config.json (see src/config.ts).
  • Default sqlite DB is /etc/oblecto/database.sqlite (see src/submodules/database.js).
  • External metadata uses TVDB/TMDB keys from config.

Conventions

  • ESM modules (package.json has "type": "module").
  • dist/ and Oblecto-Web/dist/ are build outputs; avoid editing.
  • node_modules/ and Oblecto-Web/node_modules/ are vendor.

Repository README

Describes robinp7720/Oblecto as a whole, which may contain artifacts other than this one. Where this artifact had no useful description of its own, its summary was taken from here.

npmjs Join the chat at https://gitter.im/robinp7720/Oblecto DeepSource DeepSource DeepSource

Oblecto logo

Oblecto

What is it?

Oblecto is a self-hosted media server for streaming the media you already own. It indexes Movies and TV Shows, enriches them with metadata and artwork, and serves them through a web interface or compatible clients.

Features

  • Movie and TV library indexing with background updates.
  • Metadata and artwork from TMDb, TVDB, and Fanart.tv (bring your own API keys).
  • Built-in web UI (Oblecto-Web) served by the backend.
  • Jellyfin/Emby API emulation for compatible clients (port 8096).
  • Streaming sessions with direct play and recode/HLS support (via FFmpeg).
  • Optional federation and seedbox import support.
  • CLI tools for setup, database init, and user management.

What Oblecto can do

  • Scan folders of Movies/TV, identify items, and keep your library organized.
  • Fetch posters, fanart, episode banners, descriptions, and ratings.
  • Serve your library to the web UI and compatible Jellyfin clients.
  • Track playback progress and provide "Next Up" for TV series.
  • Store assets and metadata in a local database (SQLite by default).

Setup

Oblecto can be installed using NPM or directly from Git. We recommend NPM unless you plan to develop.

Quick start (npm)

  1. Install: npm install -g oblecto
  2. Initialize config and assets: oblecto init
  3. Edit /etc/oblecto/config.json and set:
    • movies.directories and tvshows.directories
    • API keys: themoviedb.key, tvdb.key, fanart.tv.key
    • Database settings (SQLite by default)
  4. Initialize the database: oblecto init database
  5. Start the server: oblecto start (or oblecto start-tui)
  6. Open the web UI at http://localhost:8080/web (or the port set in server.port)

From source (development)

  1. Install dependencies: npm install
  2. Build the web UI: npm run build:web
  3. Build or run the backend:
    • npm run build then npm run start, or
    • npm run dev for live development
  4. Use the CLI if needed: npm run oblecto (or npm run oblecto:dev)

Configuration notes

  • Config path order: OBLECTO_CONFIG_PATH -> ./res/config.json -> /etc/oblecto/config.json
  • Default SQLite file: /etc/oblecto/database.sqlite
  • Sample config template: res/config.json

Need help? Ask in the gitter chat or check the setup guide: https://github.com/robinp7720/Oblecto/wiki/Getting-Started

Powered by

Trustgrade B

  • passBody integrity

    Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.

  • passType matchnot applicable to this artifact type

    Whether the artifact is really the kind of thing its metadata claims it is.

  • passFreshness

    How long since the source repository was last pushed to.

  • passPrompt injection

    Scans the artifact's own text for instructions aimed at your agent rather than at you.

  • warnLicensecopyleft/unknown — index-and-link only

    Whether the source repository declares an SPDX license permissive enough to redistribute.

How the grade is calculated

Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:

  • Aevery check passed
  • Bone warning
  • Ctwo warnings
  • Dprompt injection or body integrity failed, or three warnings
  • Fone of those failed, and something else is wrong

These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.

Versions

  • git-4a6b5049d8322026-08-06