{"id":13907497,"url":"https://github.com/Eltik/M3U8-Proxy","last_synced_at":"2025-07-18T05:32:03.097Z","repository":{"id":153625675,"uuid":"607454421","full_name":"Eltik/M3U8-Proxy","owner":"Eltik","description":"Proxy m3u8 files through pure JavaScript.","archived":false,"fork":false,"pushed_at":"2023-07-02T17:09:16.000Z","size":239,"stargazers_count":36,"open_issues_count":0,"forks_count":41,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-07T23:52:08.644Z","etag":null,"topics":["cors","javascript","m3u8","proxy","streaming","typescript"],"latest_commit_sha":null,"homepage":"https://m3u8-proxy-six.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Eltik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-02-28T02:03:11.000Z","updated_at":"2024-07-23T18:55:04.000Z","dependencies_parsed_at":"2024-01-19T10:22:24.165Z","dependency_job_id":"b6a03424-3371-4380-b888-d570cc00dd6f","html_url":"https://github.com/Eltik/M3U8-Proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eltik%2FM3U8-Proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eltik%2FM3U8-Proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eltik%2FM3U8-Proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eltik%2FM3U8-Proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eltik","download_url":"https://codeload.github.com/Eltik/M3U8-Proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226353713,"owners_count":17611751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cors","javascript","m3u8","proxy","streaming","typescript"],"created_at":"2024-08-06T23:01:58.010Z","updated_at":"2024-11-25T15:32:01.376Z","avatar_url":"https://github.com/Eltik.png","language":"TypeScript","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# M3U8-Proxy\nProxies m3u8 files through pure JavaScript.\n\n## About\nSome m3u8 files require special headers as well as CORS. This project achieves both by integrating Rob Wu's [CORS proxy](https://github.com/Rob--W/cors-anywhere) and adding a route to proxy m3u8 files.\n\n## Installation\n1. Clone the repository.\n```bash\ngit clone https://github.com/Eltik/M3U8-Proxy.git\n```\n2. Run `npm i`.\n3. Run `npm run build`.\n4. Run `npm start`.\n\nYou can configure how the proxy works via a `.env` file; it's relatively self-explanatory.\n```\n# This file is a template for .env file\n# Copy this file to .env and change the values\n\n# Web server configuration\nHOST=\"localhost\"\nPORT=\"3030\"\n\n# Public URL to proxy ts files from\nPUBLIC_URL=\"https://m3u8.eltik.net\"\n```\n\n## Usage\nTo proxy m3u8 files, use the `/m3u8-proxy` route. All you have to do is input the URL and headers. For example:\n```\nhttp://localhost:3030/m3u8-proxy?url=https%3A%2F%2Fojkx.vizcloud.co%2Fsimple%2FEqPFJvsQWADtjDlGha7rC8UurFwHuLiwTk17rqk%2BwYMnU94US2El_Po4w12gXe6GptOSQtc%2Fbr%2Flist.m3u8%23.mp4\u0026headers=%7B%22referer%22%3A%22https%3A%2F%2F9anime.pl%22%7D\n```\nThe URL in this case is `https://ojkx.vizcloud.co/simple/EqPFJvsQWADtjDlGha7rC8UurFwHuLiwTk17rqk+wYMnU94US2El_Po4w12gXe6GptOSQtc/br/list.m3u8#.mp4` and the headers are `{\"Referer\": \"https://9anime.pl\"}`. This will then send a request to the m3u8 using the headers, modify the content to use the ts proxy, then proxy each ts file using a CORS proxy. If you need help, please join my [Discord](https://discord.gg/F87wYBtnkC).\n\n## Credit\nInspired by [this](https://github.com/chaycee/M3U8Proxy) repository. I received some help from [chaycee](https://github.com/chaycee) as well. This project also uses code from [this CORS proxy](https://github.com/Rob--W/cors-anywhere).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEltik%2FM3U8-Proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEltik%2FM3U8-Proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEltik%2FM3U8-Proxy/lists"}