recloudstream / recloudstream/cloudstream
Feature Request: Internal Proxy Server with Custom Headers for External Player Compatibility
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 10.7k
- Forks
- 1.1k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 15
Description
Describe your suggested feature
Many Cloudstream extensions rely on custom HTTP headers—such as User-Agent, Referer, Authorization, and Cookie—to fetch and stream video content from protected sources. While the internal player supports direct header injection, it is currently limited:
- Media3 ExoPlayer often fails to handle HLS streams correctly, leading to MediaCodec errors or undetected audio tracks.
- As a result, many users are forced to use external players.
- However, external players like VLC, MPV, and MX Player were able to play those files but wont get custom headers.
🧩 Problem Statement
- Many sources require specific headers for access.
- Internal player issues (e.g., with HLS or codecs) necessitate external playback.
- External players do not reliably support header injection, especially for complex headers or cookies.
- This causes many links to break, even though they are valid and playable with headers.
- Extensions become harder to maintain, and users have a degraded experience.
🎯 Proposed Solution
- Introduce a lightweight local HTTP proxy server within Cloudstream that:
- Runs on a loopback address (e.g., http://127.0.0.1:12345).
- Accepts a request with:
- a video or subtitle URL
- extension-defined headers
- Performs the request with headers applied.
- Streams the content back to the requesting external player.
Other details
No response
Acknowledgements
- My suggestion is NOT about adding a new provider
- I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points, so a contributor must first locate the external-player handoff and networking code. Done is not fully specified; the proposal describes a loopback proxy that applies extension-supplied headers and streams video or subtitle content successfully to external players.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100