Per-user catalog display names
Users can now assign a custom visual name to each catalog from Manifest order while the internal catalog type and ID remain unchanged.
Changelog
A visual timeline built from the project documentation, with dates, concise summaries and the main sections of each update.
La respuesta final response:meta:* podía conservar la lista de episodios durante 30 días. Mientras siguiera vigente, ni la caducidad de las fuentes TMDB ni la fecha del próximo estreno provocaban su reconstrucción.
Users can now assign a custom visual name to each catalog from Manifest order while the internal catalog type and ID remain unchanged.
New canonical Stremio logo: /the relevant component · New web icon: /the relevant component · New horizontal wordmark: /the relevant component
Streaming Catalogs Plus migra su URL pública desde el subdirectorio de apps.soluserv.es a https://the relevant component
Adds public aggregate usage statistics, a visible service-status shortcut and a voluntary rating reminder to the addon configurator.
New canonical Stremio logo: /the relevant component · New web icon: /the relevant component · New horizontal wordmark: /the relevant component
https://the relevant component/
Replaced the mixed the relevant component block with one primary Save configuration and generate manifest action. · After save, the generated-manifest screen now prioritizes Install in Stremio and Copy for Nuvio, with Stremio Web and edit actions secondary. · Existing protected configuration hashes remain unchanged when updating a configuration.
Fixes the action layout on the generated manifest page. · Makes anchors and buttons share the same flex alignment, height, padding and responsive behavior. · Uses a balanced 2x2 desktop grid for Install in Stremio, Stremio Web, Copy for Nuvio and Edit this configuration.
La interfaz compartida se renueva con fondo aurora, rejilla luminosa, glassmorphism, bordes con glow, inputs modernos, tablas y tarjetas con mayor contraste y una jerarquía visual más marcada.
Donate no longer floats over the configurator. It is rendered in the document footer, following AnimeSub+'s footer support pattern. · Section-level Todos / Ninguno buttons have a strict 42 px height and cannot stretch with long descriptive copy. · The Cinemeta language warning now uses the same configure-section shell and width as the other cards, including…
Improves the image quality of home-screen carousel backgrounds in Nuvio by serving larger TMDB backdrops, while keeping lightweight posters for catalog grids.
Adds an automatic visual changelog to the configuration experience, with chronological updates, search, localized controls, concise English summaries, and support for private documentation.
After importing the community_infantil and community_infantil_series community catalogs, the Community section appeared enabled again after saving a configuration and reopening /configure.
The configurator can now remove search altogether. When disabled, movie and series search catalogs are omitted from the manifest, and previously installed or manually constructed search requests return no results.
Search can now return only titles classified with the TMDB animation genre. The restriction applies to both movies and series while the existing adult and restricted-content protections remain active, making this mode suitable for child-focused configurations.
Reduces persistent cache growth by keeping large TMDB payloads in Valkey, retaining only essential shared data in MariaDB, and safely removing redundant legacy copies.
cache_store grew from approximately 2.5 GB to 16 GB over a weekend. The catalog response key included freshness_bucket, a time-based value that changed every 2, 6, 12, or 24 hours, or every 3 days, depending on the catalog.
The installation does not need or create the cache_payload_audit table.
The administrative route sets the relevant component; charset=utf-8 before loading data. · Any inherited Content-Type or Content-Disposition is removed. · After validating the password, a 303 redirect is used so that the private
Every proposal can open the visual builder from administration. · Identity, section, type, filters, rotation, and pages can be edited. · Description-only changes preserve participation.
This revision expands the community lab and the definitive editor for the relevant component without changing the global publishing model introduced in the relevant component
The community lab link is always shown in /configure, even when no configuration has been saved yet.
The ranking no longer exposes internal parameters or filters. · Each proposal shows only its identity, creator, destination section, and votes. · View catalog opens a dedicated page with a Stremio-style appearance, real TMDB results, and the vote button.
TMDB responses that are not associated with dynamic lists are stored once under tmdb:*.
The lab lets the community design TMDB Discover catalogs, publish proposals, vote during a monthly edition, and browse the winners archive. The administrator reviews proposals and decides which ones become definitive addon catalogs.
The former JSON definition preview is removed from the public portal. · Technical JSON remains available exclusively in the administration panel. · The builder includes a Stremio-inspired visual preview:
The public portal requires a real 40-character config_hash that exists in the database and contains: · an effective TMDB credential, saved in the configuration or globally defined in the environment configuration; · a saved language;
The administration panel represents two complete trees: · definitive TMDB catalogs grouped under their parent section; · providers as dynamic parents with all the relevant component variants as children.
The declarative system in the relevant component remains fully intact. No Stremio history, Trakt data, or external profiles are integrated, and no decade catalogs are removed or modified.
MariaDB reported SQLSTATE[40001] / 1213 Deadlock found errors in search_cardinality_registry_failed when multiple search requests attempted to register terms for the same configuration and date.
the relevant component now contains _provider_catalogs with:
This prevents rental and purchase items from being mixed with content included through subscriptions, free access, or ads.
a SHA-1 fingerprint of the effective definition; · the refresh time bucket; · the rotation bucket and offset;
This revision enforces a minimum public version of cv2. Even if the deployed the environment configuration retains CATALOG_CACHE_VERSION=1, the runtime publishes _cv2 IDs. Higher values are still respected.
Discovery catalogs cycle through 3 pages; decade catalogs cycle through 5 pages. The selection remains stable during the week to preserve cache effectiveness and changes in the following period. top catalogs do not rotate because their purpose is to show the strict ranking.
Each of the 120 catalogs and 8 provider modes declares its policy. Main values:
The recent mode uses a rolling 1,095-day window ending today:
Reduce the relevant component catalog-search latency without unnecessarily increasing the number of TMDB requests, while preserving strict IMDb IDs, person searches, distributed caching, and fault tolerance.
the relevant components used CRLF. On AlmaLinux, the \r character could make Bash interpret options such as pipefail incorrectly and abort before running the script.
The runtime directory, its Apache protection, and the series-overrides file were missing.
The client made only one attempt, did not process Retry-After, and did not share the pause with other workers.
An entry recovered from MariaDB continued to cause database reads until it was rewritten.
Results with ok=false were stored, but the next request queried TMDB again.
When stale or last_good data existed and TMDB failed, every new request attempted another refresh.
Two configurations could use the same visible provider key with different TMDB IDs and share the same catalog response.
Even when TmdbClient correctly returned stale or last_good during an incident, AddonController could rebuild the catalog or meta and store it as fresh for days or weeks. This artificially rejuvenated old information and concealed the failed refresh.
Several processes could rebuild the same catalog or meta simultaneously. In addition, Valkey unlocking removed the lock without checking its owner.
Without Valkey, tokenBucketWait() authorized uncoordinated traffic.
Valkey retained the value for TTL + stale, but the payload did not store expires_at. The runtime therefore could not distinguish the fresh period from the stale period. MariaDB did mark _stale, but TmdbClient still returned that value without attempting to refresh it.
Failed jobs were rescheduled without an immediate limit.
addon_activity records configuration creation, editing, deletion, rejected searches, cache failures, migrations, and garbage-collector runs. Valkey, MariaDB, rate-limit, and Sidekick errors are no longer silently discarded.
The Adult section and the the relevant component catalogs are now removed from configure, the manifest, and runtime. Legacy adult_porn and adult_hentai URLs return metas: [].
General, language, anime, special, provider, and search catalogs use include_adult=false and discard results with adult=true. Every non-adult catalog also inspects titles, descriptions, adult certifications, and TMDB keywords to block adult or softcore content. Explicit catalogs were historically separated under an adult group and were not selected by defau…
The Platform region selector shows countries as English name · Spanish name (XX), for example Spain · España (ES) and United States · Estados Unidos (US). This is validated by the relevant component
Distinguishes the current scp:v2: prefix from the legacy scp: namespace.
Prevents truncated namespaces such as t_good, b, ponse, or alog_cache_version from being displayed.
Purges the legacy namespace in batches and synchronizes cache_payload_audit.
Shows the aggregate size by prefix and by the relevant component layer.
Shows the average size in KiB instead of rounding it to 0 GiB.
Every catalog declares a cache policy and, when applicable, a rotation policy in the relevant component:
Regular catalogs exclude adult content and the relevant component with without_genres=16. Anime catalogs are the only catalogs that show the relevant component Historical adult catalogs were separated into Porn and Hentai. The Trend, Classics, Anime, Adventure Anime, and School Anime catalogs were removed; 70s Classics became 1970s.
Catalog previews require a valid imdb_id beginning with tt. If TMDB does not return an IMDb ID in external_ids, the result is discarded and catalog_item_skipped_missing_imdb is logged. Explicit porn, porno, pornography, xxx, and hentai titles are also blocked even when TMDB does not mark them as adult.
General catalogs include media type, name, and block so they are not mixed together:
The configurator includes complete translation coverage for every language in the selector. the relevant component verifies equal key coverage and ensures that only technical labels such as IDs remain identical to English.
This fixes the error raised when generating a new manifest:
The configurator translates visible section text, notices, buttons, catalog groups, AJAX provider-loading states, and internal buttons according to the selected title, synopsis, and configure language. the relevant component verifies that every language shares the same keys.
Explicit search no longer applies the anti-animation filter. It can find The Simpsons and One Piece, prioritizes exact matches over documentaries and spin-offs, and uses only the addon name for the search catalog.
The /c.<hash>/the relevant component routes use the relevant component without loading AddonController.
After migrating from old SHA-1 keys, run the relevant component once because their historical version cannot be recovered from the hash.
CPU recovery · GC runs exclusively with php the relevant component
The HTTP runtime and the relevant component do not execute DDL, query information_schema, or run garbage collection.
CPU recovery · Migrations run with php the relevant component
New catalog keys expose a sortable internal version; the relevant component removes lower versions in batches.
the relevant component rotates the relevant component before every run.
Regular and provider catalogs exclude the relevant component except for Crunchyroll provider catalogs (provider_cru_* or TMDB provider 283). Crunchyroll still uses include_adult=false, so adult content is not mixed in.
When available, the tool uses cache_payload_audit to measure bytes without rereading every MEDIUMTEXT. It distinguishes expired garbage, anomalous TTLs, namespaces, opaque legacy keys, the active version, and older visible versions. updated_at is the write time, not the last-access time. CACHE_MAX_RETENTION_SECONDS globally limits TTL + stale and prevents a…
After general catalogs were rebuilt, Anime groups became anime_movies and anime_series. The router still detected anime only when group === 'anime', so it applied the regular-catalog filter and excluded animation (without_genres=16) from catalogs that explicitly requested with_genres=16.
Stremio can load dozens of catalogs simultaneously. If the addon tries to resolve the relevant component for every foreground result, TMDB may exhaust the the relevant component limit and leave a catalog empty. The runtime now:
the relevant component contains 120 general catalogs and 8 reusable provider modes. the relevant component trends, upcoming releases, digital releases, recent documentaries, currently airing series, local new releases, Asia, Turkey, anime, and special lists based on runtime, status, and rating were added.
The manifest groups extra catalogs by provider. For each selected provider, the order is:
In addition to removing defaultVideoId in the mapper, metadata is sanitized immediately before it is returned or cached. This covers normal cache and last_good.
Permanent garbage collector with MaintenanceService, coordination through GET_LOCK(), and batched deletion, run exclusively from the relevant component through cron or a systemd timer.
Limits on length, page, and daily unique terms per configuration through SearchGuard.
Explicit, deduplicated logging of the relevant component errors in the relevant component and addon_activity.
ConfigRepository is the only configuration persistence layer; the JSON fallback is removed.
Protected deletion from /configure and auditing of creation, changes, deletion, and failures.
Per-search budget and minimal TMDB inspection with external_ids, certifications, and keywords in a single cached response; avoids the old heavy detail request plus a second IMDb request per item.
the relevant component rotation, compression, and automatic retention for the relevant component.
Responsibilities extracted into repository, DTO, maintenance, auditing, search guard, budget, typed result, and CatalogContentPolicy components for TMDB the relevant component
Previously silent cache, rate-limit, and Sidekick failures are logged with context, retaining fail-open behavior only where it prevents a total outage.
readonly DTOs, the relevant component objects, and typed signatures replace ambiguous arrays at the new system boundaries.
adult_porn and adult_hentai were added at runtime to old configurations so they appeared as a separate manifest section. If TMDB Discover returned too few adult results, search fallbacks were used while preserving content separation.
the relevant components use the relevant component, generated from the same configure translation package. Validation is provided by the relevant component
the relevant component imports StreamingCatalogPlus\Env before calling Env::get().
The installation button uses the standard deep link:
The button in /the relevant component now uses:
The guide for uninstalling or disabling Cinemeta no longer depends on the old kids-es addon.
The manifest and configurator screens use:
The manifest uses a square Stremio logo:
The description shown in the relevant component can be set with:
User configurations are read, created, updated, and deleted exclusively in addon_configs. the relevant component is a legacy format and is not read during normal runtime.
/the relevant component includes a Stremio Sidekick-style section for reading and managing the addons in a Stremio account.
The status and information shortcuts are removed from configure. The addon version remains visible.
The visible View the relevant component the relevant component is removed from the generated-manifest screen. The manifest URL remains available for copying and installation, but there is no separate button to open the JSON.
The View the relevant component button is also removed from the password screen used to edit a protected configuration.
When creating a manifest from scratch, Edit password and Confirm edit password are required and must contain at least 8 characters. During editing, the fields are optional and change the password only when filled in.
MaintenanceService is used only by the relevant component The collector uses GET_LOCK() to prevent concurrent runs and deletes expired cache, completed or abandoned jobs, old HTTP records, old activity, and expired search cardinality in batches. Schedule it through cron or a systemd timer; it never runs from HTTP requests or the TMDB worker.
The id field in the relevant component is controlled by:
The name field in the relevant component is controlled by:
General TMDB catalogs are organized into eight blocks: Global Movies, Global Series, Country Movies, Country Series, Anime and Animation Movies, Anime and Animation Series, Special Movies, and Special Series.
If TMDB_TOKEN is not set in the environment configuration, extra providers are not loaded when the form opens. Entering a valid TMDB v3 API key or v4 Read Access Token makes the configurator load the actual providers for the selected region through a CSRF-protected AJAX POST, without saving the manifest yet.
The server publishes a stable manifest.id and uses versioned IDs only for catalogs:
Search length, pagination, and daily cardinality are configurable per config_hash. SEARCH_TMDB_CALL_BUDGET limits how many TMDB operations a search request can attempt. For catalogs, one minimal cached inspection requests external_ids, certifications, and keywords together, avoiding per-item credits, videos, provider downloads, and a separate second IMDb qu…
To prevent Stremio from mixing an addon series with Cinemeta or internal state for the same IMDb title, catalog series open through tmdb:series:ID.
Compatible routes remain registered:
The Sidekick JSON API is excluded from configure-form CSRF while retaining:
tmdb:* responses are no longer duplicated as last_good:tmdb:* in MariaDB. The primary row retains:
Explicit searches no longer exclude the relevant component, so series such as The Simpsons and One Piece remain visible when TMDB returns them. Common variants are also tried:
Some series have separate TMDB entries but share one tt... ID in IMDb and streaming addons. For those cases, the addon reads the relevant component, publishes the series with the root ID tmdb:series:<id>, and generates episodes with stream=tt... to preserve Torrentio, Peerflix, and Nuvio compatibility.
Stremio identifies the addon by manifest.id, which must remain stable. ADDON_VERSION is published in manifest.version but does not change the ID by default.
behaviorHints.defaultVideoId is removed from movies and series. Movies also omit videos because streams resolve through the meta's IMDb ID.
Stremio may retain old names after the manifest starts returning the relevant component because it caches by addon ID and catalog ID. Catalogs publish IDs without a fixed _vN revision; only CATALOG_CACHE_VERSION in the environment configuration changes:
the relevant component includes the stremio-addons.net-compatible block:
Catalogs publish no item without a valid tt... IMDb ID. This prevents new or future TMDB entries that the relevant component cannot open because resolvable metadata is missing.
The the relevant component utilities load the environment configuration from the addon root using Env::load(dirname(DIR)).
Global and local catalogs show their origin in the name to make Stremio issues easier to distinguish:
The configurator shows a translated notice explaining that the relevant component may prioritize Cinemeta. If Cinemeta remains installed or protected, metadata may not appear in the selected language. The notice links to the multilanguage guide.
Movie and series metadata publishes TMDB trailers through trailers and trailerStreams, preserving compatibility with clients that follow Cinemeta's format. Trailers are not added to videos, so they do not reactivate autoplay or interfere with Torrentio, Peerflix, or Nuvio.