[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81180":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":12,"contributorsCount":12,"subscribersCount":12,"size":12,"stars1d":14,"stars7d":14,"stars30d":15,"stars90d":12,"forks30d":12,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":12,"starSnapshotCount":12,"syncStatus":15,"lastSyncTime":26,"discoverSource":27},81180,"HydraFreecker","MysticSaba-max\u002FHydraFreecker","MysticSaba-max","Coupez la tête de l'hydre. Gardez le lien. — Hydracker × Movix.",null,"JavaScript",29,0,28,1,2,3,42.7,"MIT License",false,"main",true,[],"2026-06-12 04:01:32","\u003Cdiv align=\"right\">\n\n**🇫🇷 Français** · [🇬🇧 English](README.en.md)\n\n\u003C\u002Fdiv>\n\n# HydraFreecker\n\n\u003Cimg src=\"chrome\u002Ficons\u002F128.png\" alt=\"HydraFreecker\" width=\"96\" align=\"right\">\n\n> **Hydracker, résolu.** Un clic. Un lien direct. Zéro popup pourri.\n\nExtension Chrome qui intercepte le bouton de téléchargement premium d'Hydracker et résout le lien via l'API Movix à la place. Plug-and-play : même clic, backend différent, modal custom.\n\nRemplace la requête `https:\u002F\u002Fhydracker.com\u002Fapi\u002Fv1\u002Fcontent\u002Fliens\u002F{id}` par `https:\u002F\u002Fapi.movix.cloud\u002Fapi\u002Fdarkiworld\u002Fdecode\u002F{id}?title_id={titleId}`, spoofe `Referer`\u002F`Origin` vers `https:\u002F\u002Fmovix.cloud`, puis affiche un modal custom avec la réponse.\n\n---\n\n## Fonctionnalités\n\n- **Interception transparente** — fonctionne avec l'UI Hydracker existante, aucun bouton à ajouter.\n- **Spoofing des headers** — `Referer` et `Origin` réécrits via `declarativeNetRequest` pour que l'API Movix accepte la requête.\n- **Modal natif** — thème sombre inspiré shadcn, animations d'ouverture\u002Ffermeture, icônes Lucide, boutons copier\u002Fouvrir\u002Ftélécharger.\n- **Métadonnées riches** — qualité, langues (avec badges drapeau inline custom, pas d'emoji cassé sous Windows), taille, hébergeur (avec favicon), uploader, votes, dates, source\u002Fprovider, IDs.\n- **Inspecteur de réponse brute** — JSON dépliable avec animation de hauteur fluide.\n- **Tueur de dialog site** — retire automatiquement le dialog \"Téléchargement Premium\" d'Hydracker pour n'afficher que celui d'HydraFreecker.\n\n## Installation (mode développeur)\n\nLe repo contient deux versions :\n\n- `chrome\u002F` — Chrome \u002F Brave \u002F Edge \u002F Opera \u002F Vivaldi (Chromium)\n- `firefox\u002F` — Firefox 128+\n\n### Chrome \u002F Chromium\n\n1. Clone ou télécharge ce repo.\n2. Ouvre `chrome:\u002F\u002Fextensions` et active **Mode développeur** (en haut à droite).\n3. Clique **Charger l'extension non empaquetée** → sélectionne le dossier `chrome\u002F`.\n4. Va sur `https:\u002F\u002Fhydracker.com`, ouvre un titre, clique sur l'icône d'un hébergeur.\n\n### Firefox\n\n1. Clone ou télécharge ce repo.\n2. Ouvre `about:debugging#\u002Fruntime\u002Fthis-firefox`.\n3. Clique **Charger un module complémentaire temporaire…** → sélectionne le fichier `firefox\u002Fmanifest.json`.\n4. Va sur `https:\u002F\u002Fhydracker.com`, ouvre un titre, clique sur l'icône d'un hébergeur.\n\n> Firefox 128+ requis (pour `world: \"MAIN\"` dans les content scripts). En mode dev, l'extension est retirée à chaque redémarrage du navigateur — pour un install permanent, signer le `.xpi` via [addons.mozilla.org](https:\u002F\u002Faddons.mozilla.org).\n\nL'extension n'a pas de popup ni de page d'options — elle tourne en arrière-plan.\n\n## Comment ça marche\n\n```\n[ Page Hydracker ]\n       │\n       │  utilisateur clique sur icône 1Fichier (ou autre hébergeur)\n       ▼\n[ interceptor.js  (MAIN world, document_start) ]\n       │  hook  window.fetch  +  XMLHttpRequest\n       │  matche  GET \u002Fapi\u002Fv1\u002Fcontent\u002Fliens\u002F{id}\n       │  capture title_id depuis \u002Fapi\u002Fv1\u002Ftitles\u002F{title_id}\u002Fcontent\u002Fliens\n       │  abort de la requête originale, postMessage → ISOLATED world\n       ▼\n[ content.js  (ISOLATED world) ]\n       │  ouvre modal custom (état loading)\n       │  tue aussi le dialog \"Téléchargement Premium\" d'Hydracker\n       │  chrome.runtime.sendMessage → background\n       ▼\n[ background.js  (service worker) ]\n       │  fetch  https:\u002F\u002Fapi.movix.cloud\u002Fapi\u002Fdarkiworld\u002Fdecode\u002F{lienId}?title_id={titleId}\n       │  declarativeNetRequest pose  Referer: https:\u002F\u002Fmovix.cloud\u002F\n       │                              Origin:  https:\u002F\u002Fmovix.cloud\n       │  retourne le JSON parsé\n       ▼\n[ content.js render ]\n       │  nom fichier, pill qualité, drapeaux langues, taille, badge hébergeur,\n       │  boutons copier\u002Fouvrir\u002Ftélécharger, grid métadonnées, inspecteur JSON\n       ▼\n[ utilisateur clique Télécharger → lien direct ouvert dans nouvel onglet ]\n```\n\n## Structure du repo\n\n```\nHydraFreecker\u002F\n├── chrome\u002F          # build Chromium (Chrome, Brave, Edge…)\n├── firefox\u002F         # build Firefox 128+\n├── README.md        # ce fichier (FR)\n├── README.en.md     # version anglaise\n└── LICENSE          # MIT\n```\n\nChaque dossier `chrome\u002F` et `firefox\u002F` contient les mêmes fichiers, seul `manifest.json` diffère.\n\n| Fichier           | Rôle                                                                                  |\n| ----------------- | ------------------------------------------------------------------------------------- |\n| `manifest.json`   | Manifest MV3 (Chromium ou Gecko). Permission : `declarativeNetRequest`.                |\n| `rules.json`      | Règle declarativeNetRequest — réécrit `Referer`\u002F`Origin` sur les appels Movix API.    |\n| `interceptor.js`  | Tourne en MAIN world. Patch `fetch` + `XMLHttpRequest` pour intercepter l'endpoint lien Hydracker. |\n| `content.js`      | Tourne en ISOLATED world. UI du modal, watcher du dialog site, pont de messages.      |\n| `background.js`   | Service worker (Chrome) \u002F event page script (Firefox). Effectue le fetch cross-origin vers Movix. |\n| `modal.css`       | Modal style shadcn, animations, pills, badges drapeau, icônes.                        |\n| `icons\u002F`          | Icônes extension (16\u002F32\u002F48\u002F128 PNG) + SVG source.                                     |\n\n## Personnalisation\n\n### Ajouter d'autres drapeaux de langues\n\nÉdite la map `FLAGS` dans `content.js` :\n\n```js\nconst FLAGS = {\n  fr: ['#0055A4', '#FFFFFF', '#EF4135'],\n  \u002F\u002F [haut, milieu, bas] couleurs pour un badge 3 bandes\n  xx: ['#color1', '#color2', '#color3'],\n};\n```\n\nLes 2 premières lettres du nom de langue sont superposées sur les bandes — pas de dépendance aux emojis Unicode.\n\n### Changer le endpoint API\n\nLes deux endpoints sont codés en dur à trois endroits :\n\n- Pattern de match dans `interceptor.js` (`LIEN_RE`)\n- Construction d'URL dans `background.js`\n- Condition de réécriture des headers dans `rules.json` (`urlFilter`)\n\nPour pointer vers un autre backend résolveur, modifie les trois.\n\n### Ajuster le modal\n\n`modal.css` expose des variables HSL shadcn en haut de `#movix-modal-root` — modifie couleurs, radii, fonts, durées d'animation là.\n\n## Notes & limitations\n\n- **`AbortError` dans la console** — Hydracker peut logger le fetch annulé. Sans conséquence.\n- **DirectDL parfois absent** — pour certains liens l'API Movix retourne l'URL hébergeur d'origine (`embed_url.lien`) plutôt qu'un lien direct résolu. Le modal affiche l'URL disponible.\n- **`title_id` best-effort** — récupéré depuis le dernier fetch `\u002Fapi\u002Fv1\u002Ftitles\u002F{id}\u002Fcontent\u002Fliens`, fallback sur l'URL de la page. Si rien matche, le paramètre est omis dans la requête Movix.\n\n## Licence\n\n[MIT](LICENSE). À tes risques — dépend de l'API tierce Movix et de la structure actuelle des pages Hydracker ; les deux peuvent changer.\n\n---\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#MysticSaba-max\u002FHydraFreecker&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=MysticSaba-max\u002FHydraFreecker&type=Date&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=MysticSaba-max\u002FHydraFreecker&type=Date\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=MysticSaba-max\u002FHydraFreecker&type=Date\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\nSi le projet t'a servi, lâche une ⭐ sur [github.com\u002FMysticSaba-max\u002FHydraFreecker](https:\u002F\u002Fgithub.com\u002FMysticSaba-max\u002FHydraFreecker) — ça aide à le faire connaître.\n","HydraFreecker 是一个 Chrome 扩展程序，旨在通过拦截 Hydracker 的下载按钮并使用 Movix API 解析链接来提供直接下载链接，从而避免烦人的弹窗。其核心功能包括透明拦截、请求头伪装以及自定义模态框展示丰富的元数据信息如质量、语言、大小等，并且能够自动移除 Hydracker 的“Premium 下载”对话框。该扩展基于 JavaScript 开发，利用了 `declarativeNetRequest` 等现代浏览器技术特性以实现高效的内容拦截与替换。适用于希望简化从 Hydracker 获取直链过程的用户，特别是那些经常需要处理多语言资源和偏好无广告体验的人士。","2026-06-11 04:03:48","CREATED_QUERY"]