尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Catalogue FR pour Nuvio : un accueil 100 % en français (rangées, collections, recherche intelligente, notes IMDb, bandes-annonces VF) et un guide pour tout installer.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Un addon Nuvio / Stremio en français, servi en direct depuis TMDB, avec son site d'accompagnement « salle de cinéma » : un guide pour tout installer de zéro et une page pour personnaliser son lien.
| Adresse | |
|---|---|
| Le site (hall, guide, personnalisation) | https://nuvio-assets.xnzxflix.workers.dev |
| L'addon à installer dans Nuvio | https://nuvio-assets.xnzxflix.workers.dev/manifest.json |
| Les affiches (Nuvio : Paramètres → Disposition → Custom Poster Source ; à régler en salle 2, « Tes affiches ») | https://affiches-catalogue-fr.vercel.app/{type}/{shape}/{id}.jpg?imdb={imdb_id?} |
| Les collections (copier tout son contenu, puis dans Nuvio, onglet Collections, bouton presse-papiers en haut à droite, sur téléphone comme sur PC ; sur téléphone, le lien marche aussi par Importer → URL) | https://nuvio-assets.xnzxflix.workers.dev/collections.json |
Le plus simple : ouvrir le site, salle 1 (le guide) si tu n'as pas encore Nuvio, salle 2 pour régler ton lien.
Catalogues et accueil
catalogs.json.Fiches
Recherche (catalogues « Films » et « Séries »)
Avec une clé Gemini (facultative, gratuite sur Google AI Studio)
| Adresse | Page | Fichier |
|---|---|---|
/ | Le hall : on choisit sa salle | worker/hall.js |
/guide | Salle 1 : installer Nuvio et toute la configuration (#apercu : l'accueil final) | worker/guide.js |
/configure | Salle 2 : personnaliser son lien d'addon | worker/page.js |
/f…/manifest.json | Lien fixe : les réglages gardés dans la base D1 LIENS (créée toute seule au déploiement), modifiables sans réinstaller | worker/fixe.js |
/<config ou f…>/programmation.json | « Soirée à deux » (salle 2) : les rangées d'un lien, sans clé Gemini ni jeton d'alerte | worker/soiree.js |
/galerie/… | Galerie des styles d'affiches de la régie (table galerie de la même base D1, limite facultative LIMITE_GALERIE) | worker/galerie.js |
/copie | Monte ta propre salle : héberger sa copie | worker/copie.js |
/nouveautes | Ce qui a changé, du plus récent au plus ancien (pour qui ne suit pas le Discord) | worker/nouveautes.js |
/lien#u=… | Ouverte par les QR codes du guide, pour copier un lien sur le téléphone | worker/lien.js |
/tv | Adresse courte pour Downloader : télécharge l'APK de Nuvio TV |
Décor de fête à prévisualiser : ?saison=noel, saint-valentin, paques, ete ou halloween.
Le lien principal est partagé par tout le monde : ses quotas gratuits peuvent saturer. Ta copie tourne avec tes
clés et ton quota, avec le même code, et continue de lire les images et données communes sur ce dépôt
(tuiles, vocabulaire de la recherche) : elle profite de leurs mises à jour de chaque nuit. Les notes IMDb, elles,
sont intégrées au code de l'addon (refaites chaque lundi) : une copie Cloudflare les reçoit avec « Sync fork »
(puis le redéploiement automatique), une copie Docker avec la nouvelle image (docker compose pull), refaite
dès que les notes changent.
Il te faut :
TMDB_API_KEY et ADMIN_PASSWORD
(voir le tableau plus bas).https://nuvio-assets.<ton-sous-domaine>.workers.dev, ton addon : …/manifest.json.docker-compose.yml, mets-y ta clé TMDB et ton mot de passe.docker compose up -dhttp://<adresse-du-serveur>:8787, l'addon : …:8787/manifest.json
(Nuvio TV accepte le http sur le réseau de la maison). Si tout passe par un tunnel ou un proxy https sur
la même machine, publie le port en 127.0.0.1:8787:8787 : plus rien ne circule en clair.http://localhost:8787, ou ton reverse proxy (nginx : proxy_set_header Host $host;).
Renseigne alors ADRESSE_PUBLIQUE, sinon les liens resteraient en http://.Le conteneur fait tourner le Worker avec wrangler dev (runtime workerd de Cloudflare), sans les droits root ;
le cache, tes choix et le secret de connexion sont gardés dans ./donnees. Image : ghcr.io/xnzx07/nuvio-assets:latest (ou :<version>).
docker ps affiche healthy quand l'addon répond.
| Variable | Rôle | |
|---|---|---|
TMDB_API_KEY | obligatoire | Clé TMDB v3 |
ADMIN_PASSWORD | obligatoire | Mot de passe de l'espace hébergeur (salle 2), 10 caractères au moins |
HOTE_SECRET | conseillé sur Cloudflare | Longue suite de caractères au hasard qui signe la connexion (créé tout seul sur Docker) |
GEMINI_API_KEY | facultatif | Clé Gemini de ta copie (pages /debug) |
GEMINI_PUBLIC | facultatif | on : cette clé sert aussi aux liens sans clé, et au diagnostic par photo du guide pour qui n'a pas de clé |
RELAIS_KEY | facultatif | Si tu héberges aussi le service d'affiches avec une variable RELAIS_KEY : la même valeur, pour que l'addon y lise la VF des sources (/vf.json) |
DEPOT | Cloudflare | ton-pseudo/nuvio-assets, pour que « Mettre à jour » mène à ton fork |
ADRESSE_PUBLIQUE | Docker | Ton adresse https derrière un tunnel ou un proxy |
Sur Cloudflare, ces variables survivent aux redéploiements (keep_vars dans wrangler.toml).
Ta copie compare sa version à celle de ce dépôt et ne te propose que les vrais paliers (5.23 → 5.24), jamais chaque correction. Rien ne change sans ton accord.
https://ton-adresse/configure#s-hote),
connexion avec ADMIN_PASSWORD. Tu y vois la nouvelle version, ses nouveautés, et deux boutons :
« Mettre à jour » (Cloudflare : « Sync fork » sur GitHub, puis redéploiement automatique ;
Docker : docker compose pull && docker compose up -d) et « Plus tard » (plus rien jusqu'au palier suivant).HOTE_SECRET, sinon ta clé TMDB) : impossible de retrouver le mot de passe à partir du lien.com.xnzx07.catalogue-fr.perso),
on peut donc installer les deux dans Nuvio../donnees sur Docker ; sur Cloudflare, dans le cache (ou un KV ETAT déclaré
dans ton wrangler.toml). Si le cache est vidé, la proposition revient.| Dossier / fichier | Contenu |
|---|---|
worker/ | L'addon et le site (Cloudflare Worker, point d'entrée worker/index.js) |
affiches/ | Le service des affiches maison, sur Vercel (voir affiches/README.md) |
worker/search.js, worker/ai.js | Recherche classique et recherche par IA |
worker/hote.js | Copies auto-hébergées : version, espace hébergeur, alertes |
worker/stage.js, worker/statique.js | Mise en scène commune et feuilles de style partagées |
worker/polices/, worker/tiers/ | Polices du site (licence OFL) et bibliothèque des QR codes (MIT), servies par le site lui-même (worker/statique.js) |
worker/nuvio.js, worker/apercu.js, worker/reglages.js | Les écrans Nuvio TV recopiés pour les aperçus du guide |
catalogs.json | Définition des catalogues et rangées |
collections/ | Les collections Nuvio |
assets.json, genres/, seasons/, gifs/, titles/ | Images des tuiles de collections (1280×720) et animations au survol |
data/ | Données communes : notes IMDb, vocabulaire de recherche, plateformes, fenêtres salle → numérique des distributeurs (estimations-vod.json, lues aussi par les copies) |
scripts/ | Scripts Python lancés par GitHub Actions |
addon/ | Ancien addon statique (encore construit chaque nuit pour les anciennes installations) |
Dockerfile, docker/, docker-compose.yml | Image des copies Docker |
node --import ./tests/support/register.mjs --test "tests/*.test.js" # addon et site
cd affiches && npm ci && npm test # service des affiches
python -m unittest discover -s tests/python # scripts (Pillow nécessaire)
Addon et site : Node 22 ou plus, aucun paquet à installer (tests/support charge les JSON et le fichier des
notes IMDb comme le fait Cloudflare). Les trois suites tournent sur GitHub à chaque push et pull request
(workflow « Tests »).
Le Worker est déployé par Cloudflare (Workers Builds) à chaque push sur main. Le service des affiches
(affiches/) est déployé par Vercel, seulement quand ce dossier change. Ni l'un ni l'autre n'attend le
workflow « Tests ».
| Workflow | Quand | Ce qu'il fait |
|---|---|---|
| Tests | à chaque push et pull request | Les trois suites de tests |
| Mettre à jour l'addon | chaque nuit, et à chaque changement de catalogs.json, scripts/update_addon.py, scripts/build_search_words.py ou scripts/build_fenetres_vod.py | Addon statique, saison en cours, vocabulaire de recherche, fenêtres des distributeurs américains (dates « Dispo vers le ») |
| Notes IMDb | chaque lundi, et à chaque changement de scripts/build_imdb_ratings.py | Refait data/imdb-ratings.bin, puis relance l'image Docker s'il a changé |
| Générer les images des collections | à chaque changement d'assets.json, scripts/make_assets.py ou fonts/ | Tuiles et GIF |
| Image Docker | à chaque changement du Worker, de catalogs.json, wrangler.toml, Dockerfile ou docker/, et après de nouvelles notes IMDb | Publie ghcr.io/xnzx07/nuvio-assets |
| Liste des plateformes TMDB | à la main | Refait data/providers_fr.json |
Secret GitHub nécessaire : TMDB_API_KEY. Les workflows qui enregistrent sur main ne tournent que sur ce
dépôt (jamais sur un fork) ; en cas d'échec, ils ouvrent une issue « Échec de … » (ou la complètent).
Une panne de TMDB ne publie pas un addon troué : une liste en échec garde ses pages de la veille, et au-delà
de 10 % de listes en échec rien n'est modifié.
Les pages /debug/… dépensent la clé Gemini de l'instance : elles ne s'ouvrent que depuis le lien d'addon
de l'hébergeur, celui qui contient cette clé.
/<config>/debug/search/<movie|series>/<requête> : détail d'une recherche/<config>/debug/renewal/<id TMDB> : diagnostic « saison suivante »Données et images : TMDB (ce produit utilise l'API TMDB sans être approuvé ni
certifié par TMDB). Notes : fichiers publics d'IMDb.
Épisodes de remplissage : animefillerlist.com.
Police : Bebas Neue, licence SIL OFL (fonts/OFL.txt).