diff --git a/CHANGELOG.md b/CHANGELOG.md index f0efb16..c57aa0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,25 @@ All notable changes to this project will be documented in this file. +## [1.0.9] - 2025-11-19 + +### Removed +- **Showbox/FebBox/PStream provider**: Permanently removed due to PStream API being protected by Cloudflare bot detection, making it inaccessible without complex proxy infrastructure + - Deleted `providers/Showbox.js` and backup files + - Removed FebBox cookie management from configuration panel + - Removed `FEBBOX_COOKIES`, `SHOWBOX_CACHE_DIR`, and related environment variables + - Cleaned up all Showbox-specific logic from provider registry + - Removed FebBox/PStream configuration UI panel and related functions +- **Unused dependencies**: Removed 121 packages including puppeteer, patchright, puppeteer-extra, puppeteer-extra-plugin-stealth, and vm2 (~200MB+ saved) +- **Unused utility files**: Removed `cloudflareBypasser.js` and `jsunpack.js` + +### Fixed +- **VidZee provider**: Updated to support two-stage AES decryption with dynamic API keys. The provider now fetches an encrypted key from `https://core.vidzee.wtf/api-key`, decrypts it using AES-256-GCM with a hardcoded key, then uses the result to decrypt video URLs with AES-256-CBC. Includes 1-hour API key caching for performance. +- **4khdhub provider**: Added support for `links.modpro.blog` domain (site migrated from `modrefer.in`). +- **moviesmod provider**: Added support for `links.modpro.blog` domain alongside existing `modrefer.in`. +- **uhdmovies provider**: Fixed domain to use `uhdmovies.rip` instead of outdated `uhdmovies.mov`. Added automatic domain replacement for stale scraped URLs. Created new `utils/linkResolver.js` utility to handle driveseed/driveleech download button extraction (supports Instant Download, Resume Cloud, Resume Worker Bot, Direct Links CF Type 1). +- **Provider registry**: Fixed `listProviders()` to return all available providers with their enabled status, not just enabled ones. Config panel now shows all 6 providers correctly. + ## [1.0.8] - 2025-10-03 ### Added diff --git a/README.md b/README.md index f88b63b..0079507 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ - +

@@ -34,7 +34,7 @@ ## ✨ Features - **Multi‑TMDB Key Rotation** – Supply multiple API keys; one is chosen randomly per request. -- **Provider Aggregation** – Pluggable providers (Showbox, 4khdhub, MoviesMod, MP4Hydra, VidZee, Vixsrc, UHDMovies) with per‑provider enable toggles + default selection. +- **Provider Aggregation** – Pluggable providers (4khdhub, MoviesMod, MP4Hydra, VidZee, Vixsrc, UHDMovies) with per‑provider enable toggles + default selection. - **🔥 Plugin System** – Drop new provider files in `providers/` and add its exported function to the registry map (`providers/registry.js` → `providerFunctionMap`). - **Dynamic Filtering** – Minimum quality presets, custom JSON quality map, codec exclusion rules (presets + JSON). - **Runtime Overrides UI** – Fully interactive web admin at `/` (login protected) writing to `utils/user-config.json`. @@ -130,7 +130,6 @@ docker compose up -d --build Environment variables can be supplied via a `.env` file in the same directory (Compose automatically loads it). Example `.env`: ``` TMDB_API_KEY=first_key -FEBBOX_COOKIES=cookie1,cookie2 ``` To stop & remove: @@ -153,7 +152,6 @@ or add / remove keys inside the Admin UI (Keys panel) and save. | `API_PORT` | Port the server listens on | Defaults to 8787 | | `TMDB_API_KEY` | Single TMDB key (legacy) | Use if you only have one key | | `TMDB_API_KEYS` | JSON array of keys | Overrides single key when present | -| `FEBBOX_COOKIES` | Comma separated FebBox cookies | Enables Showbox provider immediately | | `PASSWORD_HASH` | Pre-seed admin password hash | Optional (UI can set) | | `ADMIN_USERNAME` | Override default username | Default: `admin` | @@ -201,9 +199,9 @@ Saving in the UI writes only changed keys. Setting a field to empty removes the **Override File:** `utils/user-config.json` ```json { - "defaultProviders": ["showbox","4khdhub"], + "defaultProviders": ["4khdhub","moviesmod"], "tmdbApiKeys": ["KEY_A","KEY_B"], - "enableShowboxProvider": true + "enable4khdhubProvider": true } ``` @@ -215,7 +213,6 @@ Saving in the UI writes only changed keys. Setting a field to empty removes the | Core | Port, default providers, default region | | Quality / Filters | Min quality presets & codec exclusion JSON | | Keys | Add/remove TMDB API keys (rotated randomly) | -| FebBox / PStream | Manage FebBox cookies powering Showbox provider | | Advanced | Provider toggles, cache & validation flags | | Server Status | Live metrics, provider functional checks | | Live Config | View merged + override JSON snapshots | @@ -228,7 +225,6 @@ Session is revalidated on visibility and back/forward navigation to prevent stal The API supports a plugin system. Drop a new provider file in the `providers/` folder and register its exported function in `providers/registry.js` under `providerFunctionMap`. ### Current Built-in Providers -- `showbox` - Showbox/PStream integration - `4khdhub` - 4KHDHub streams - `moviesmod` - MoviesMod streams - `mp4hydra` - MP4Hydra streams @@ -244,7 +240,6 @@ The API supports a plugin system. Drop a new provider file in the `providers/` f ```js // providers/registry.js const providerFunctionMap = { - 'Showbox.js': 'getStreamsFromTmdbId', '4khdhub.js': 'get4KHDHubStreams', 'moviesmod.js': 'getMoviesModStreams', 'MP4Hydra.js': 'getMP4HydraStreams', @@ -320,9 +315,7 @@ Filtering passes through `applyFilters` to enforce min quality + codec exclusion ## ⚙️ Configuration Flags (Advanced Panel) | Flag | Default | Purpose | |------|---------|---------| -| disableCache | false | Disables internal caches (Showbox + proxy segment cache) | -| enablePStreamApi | true | Enables Showbox PStream-specific handling | -| disableUrlValidation | false | Skip general URL pattern validation checks | +| disableCache | false | Disables internal caches |\n| disableUrlValidation | false | Skip general URL pattern validation checks | | disable4khdhubUrlValidation | false | Skip 4khdhub-specific URL validation | | enableProxy | false | Mounts proxy routes and rewrites stream URLs through them | @@ -334,7 +327,7 @@ Toggle `enableProxy` to activate the internal proxy. This adds lightweight playl - Presets: `all`, `480p`, `720p`, `1080p`, `1440p`, `2160p`. - Custom quality JSON example: ```json -{ "default": "900p", "showbox": "1080p" } +{ "default": "900p", "4khdhub": "1080p" } ``` - Codec exclusion JSON example: ```json @@ -367,7 +360,6 @@ For ephemeral platforms (e.g., Vercel) note that some providers use temporary di ## 💡 Troubleshooting | Symptom | Cause / Fix | |---------|------------| -| No streams from Showbox | Missing FebBox cookies | | TMDB quota issues | Add more keys under Keys panel | | Provider missing in matrix | Ensure its enable flag exists & UI updated | | Empty merged config after restart | `user-config.json` deleted or unreadable | diff --git a/package.json b/package.json index 2ec6e66..59534ca 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "tmdb-embed-api", - "version": "1.0.8", + "version": "1.0.9", "description": "Standalone streaming embed source aggregation API (TMDB ID in, streams out)", "main": "apiServer.js", "scripts": { "start": "nodemon --watch restart.trigger apiServer.js", - "start:dev": "nodemon --watch restart.trigger --ignore providers/.cache --ignore **/tmdb-embed-showbox-cache apiServer.js", + "start:dev": "nodemon --watch restart.trigger --ignore providers/.cache --ignore **/cache apiServer.js", "lint": "eslint . --ext .js" }, "dependencies": { @@ -19,22 +19,20 @@ "dotenv": "^16.5.0", "express": "^4.21.2", "form-data": "^4.0.3", - "hls-parser": "^0.13.5", + "hls-parser": "^0.13.5", "jsdom": "^26.1.0", "node-fetch": "^2.7.0", "p-limit": "^6.2.0", - "puppeteer": "^24.11.0", "string-similarity": "^4.0.4", "tough-cookie": "^5.1.2", "ttl-cache": "^1.0.2", - "vm2": "^3.9.19", "yargs": "^17.7.2" }, "engines": { "node": ">=14.0.0" }, "devDependencies": { - "nodemon": "^3.1.10", - "eslint": "^8.57.0" + "eslint": "^8.57.0", + "nodemon": "^3.1.10" } }