@robinp7720/oblecto
BOblecto is a self-hosted media server for streaming the media you already own.
Install
agr install @robinp7720/oblecto --target codexWrites 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 toOblecto-Web/dist/. - Backend tests are in
tests/; helper scripts inscripts/.
Quick commands (from repo root)
npm run dev(backend dev server via tsx)npm run build(backend build todist/)npm run start(run built backend)npm run oblecto/npm run oblecto:dev(CLI)npm run build:web(frontend build; runs npm install insideOblecto-Web/)npm test/npm run test:mocha/npm run test:startup
Config and data
- Config is read from
/etc/oblecto/config.json(seesrc/config.ts). - Default sqlite DB is
/etc/oblecto/database.sqlite(seesrc/submodules/database.js). - External metadata uses TVDB/TMDB keys from config.
Conventions
- ESM modules (
package.jsonhas"type": "module"). dist/andOblecto-Web/dist/are build outputs; avoid editing.node_modules/andOblecto-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.

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)
- Install:
npm install -g oblecto - Initialize config and assets:
oblecto init - Edit
/etc/oblecto/config.jsonand set:movies.directoriesandtvshows.directories- API keys:
themoviedb.key,tvdb.key,fanart.tv.key - Database settings (SQLite by default)
- Initialize the database:
oblecto init database - Start the server:
oblecto start(oroblecto start-tui) - Open the web UI at
http://localhost:8080/web(or the port set inserver.port)
From source (development)
- Install dependencies:
npm install - Build the web UI:
npm run build:web - Build or run the backend:
npm run buildthennpm run start, ornpm run devfor live development
- Use the CLI if needed:
npm run oblecto(ornpm 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