PHPackages                             detain/phlix-plugin-omdb - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. detain/phlix-plugin-omdb

ActivePhlix-plugin[Utility &amp; Helpers](/categories/utility)

detain/phlix-plugin-omdb
========================

OMDb metadata provider for Phlix — IMDb/RT/Metascore ratings aggregation for movies and TV.

v0.2.0(1mo ago)02MITPHPPHP &gt;=8.3CI passing

Since Jul 10Pushed 3w agoCompare

[ Source](https://github.com/detain/phlix-plugin-omdb)[ Packagist](https://packagist.org/packages/detain/phlix-plugin-omdb)[ Docs](https://github.com/detain/phlix-plugin-omdb)[ RSS](/packages/detain-phlix-plugin-omdb/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)Dependencies (8)Versions (3)Used By (0)

phlix-plugin-omdb
=================

[](#phlix-plugin-omdb)

[![tests](https://github.com/detain/phlix-plugin-omdb/actions/workflows/test.yml/badge.svg)](https://github.com/detain/phlix-plugin-omdb/actions/workflows/test.yml)

> OMDb metadata provider for [Phlix](https://github.com/detain/phlix) — IMDb/RT/Metascore ratings aggregation for movies and TV.

Queries the [OMDb API](https://www.omdbapi.com/) to enrich Phlix media items with IMDb ID, Rotten Tomatoes critic rating, and Metascore ratings. Ratings are returned under the valid `metadata_ratings.source` ENUM values (`imdb`, `rt`); the host resolver owns writing them and Phlix's rating aggregation.

Features
--------

[](#features)

- **IMDb ID resolution** — search by title + year to resolve the canonical IMDb ID
- **Multi-source ratings** — captures IMDb and Rotten Tomatoes scores (Metascore is dropped — no valid `metadata_ratings.source` ENUM member)
- **Non-blocking HTTP** — async HTTPS-only client compatible with Workerman's event loop
- **Rate limiting** — configurable request throttling to respect OMDb API limits
- **Response caching** — configurable in-memory cache TTL to reduce API calls
- **TLS verification toggle** — option to disable SSL verification for self-hosted proxies
- **Pure read** — `getDetails()` fetches and shapes data only; `onEnable()` does no network or DB I/O and never throws on a missing key

Install
-------

[](#install)

The plugin is unsigned by design — install via the Phlix admin UI:

1. Log in to your Phlix server as an admin user (`users.is_admin = 1`).
2. Browse to `/admin/plugins`.
3. Paste this URL into the **Install from URL** form and submit:

    ```
    https://raw.githubusercontent.com/detain/phlix-plugin-omdb/main/plugin.json

    ```
4. The server downloads the manifest, validates it, runs `composer install --no-dev`, and stores a row in the `plugins` table. The plugin lands **disabled** by default.
5. Flip the toggle in the table to enable it.
6. Enter your OMDb API key in the plugin settings (get one at [OMDb API](https://www.omdbapi.com/apikey.aspx)).

Settings
--------

[](#settings)

SettingTypeRequiredSecretTierDefaultDescription`enabled`booleanNoNo`standard``false`Master on/off for OMDb rating enrichment. Optional; default off.`api_key`string**Yes**Yes`standard``null`Your OMDb API key. The free tier allows 1,000 requests/day.`use_ssl_verification`booleanNoNo`advanced``true`Verify OMDb's TLS certificate. Optional; default on. Leave on unless debugging.`cache_ttl_seconds`integerNoNo`advanced``86400`How long to cache OMDb responses. Optional; default 86400 (24 hours).### Where to get your OMDb API key

[](#where-to-get-your-omdb-api-key)

The `api_key` setting is required. Request a free key at  — the free tier allows 1,000 requests/day.

What it does
------------

[](#what-it-does)

When enabled, the plugin registers as a `MetadataSourceInterface` provider. When the Phlix metadata manager requests details for a media item:

1. The plugin receives the search query (title + optional year)
2. It queries OMDb's search endpoint to find matching entries
3. It fetches full details including ratings for the selected IMDb ID
4. Ratings are returned as a `ratings` list using the `metadata_ratings.source`ENUM values (`imdb`, `rt`) for the host resolver to persist and aggregate

Supported media types
---------------------

[](#supported-media-types)

- `movie`
- `series`

Running tests locally
---------------------

[](#running-tests-locally)

```
composer install
vendor/bin/phpunit
vendor/bin/phpstan analyse src --level=9
vendor/bin/phpcs src --standard=PSR12
```

License
-------

[](#license)

MIT — see [`LICENSE`](LICENSE).

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance94

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b1036e0717211b8030b83cbe729e8ba6ba442fdbd5285fb97a39d7dcfe339342?d=identicon)[detain](/maintainers/detain)

---

Top Contributors

[![detain](https://avatars.githubusercontent.com/u/1364504?v=4)](https://github.com/detain "detain (11 commits)")

---

Tags

aggregationcomposer-packageembyimdbjellyfinlibrarymedia-servermetadatametadata-providermetascoremoviesomdbphlixphlix-pluginphpplexratingsrotten-tomatoestvmetadatamoviesimdbomdbtvratingsrotten tomatoesmetadata-providerphlixphlix-pluginmetascore

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/detain-phlix-plugin-omdb/health.svg)

```
[![Health](https://phpackages.com/badges/detain-phlix-plugin-omdb/health.svg)](https://phpackages.com/packages/detain-phlix-plugin-omdb)
```

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.4k87.4M2.2k](/packages/symfony-symfony)[laravel/framework

The Laravel Framework.

34.9k556.2M21.6k](/packages/laravel-framework)[ecotone/ecotone

Enterprise architecture layer for Laravel and Symfony — CQRS, Event Sourcing, Durable Workflows (Sagas, Orchestrators), Projections, and Outbox messaging via PHP attributes.

568591.1k63](/packages/ecotone-ecotone)[tempest/framework

The PHP framework that gets out of your way.

2.3k37.6k21](/packages/tempest-framework)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

762297.9k53](/packages/civicrm-civicrm-core)[wikimedia/parsoid

Parsoid, a bidirectional parser between wikitext and HTML5

200569.1k3](/packages/wikimedia-parsoid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
