Skip to content

feat: add external player intent filter for HTTP/HTTPS video/audio URLs#2837

Open
AiCurv wants to merge 1 commit into
recloudstream:masterfrom
AiCurv:feature/external-player-intent
Open

feat: add external player intent filter for HTTP/HTTPS video/audio URLs#2837
AiCurv wants to merge 1 commit into
recloudstream:masterfrom
AiCurv:feature/external-player-intent

Conversation

@AiCurv
Copy link
Copy Markdown

@AiCurv AiCurv commented May 25, 2026

Summary

Allows CloudStream to appear in Android's "Open with" / "Share" menu when clicking video, audio, or HLS URLs from other apps (e.g., Stremio, web browsers, media apps).

Currently, CloudStream's DownloadedPlayerActivity only handles content:// URIs and magnet links via intent filters. If you click an http/https video URL in another app, CloudStream doesn't show up as an option.

Changes

AndroidManifest.xml

Added 3 new <intent-filter> blocks to DownloadedPlayerActivity:

  • ACTION_VIEW for http/https + video/* MIME type
  • ACTION_VIEW for http/https + application/x-mpegURL + application/vnd.apple.mpegurl (HLS)
  • ACTION_VIEW for http/https + audio/* MIME type

All use @string/play_with_app_name as the label and include both DEFAULT and BROWSABLE categories.

DownloadedPlayerActivity.kt

Fixed URL routing: http/https URIs are now routed through playLink() instead of playUri(). Without this fix, network URLs would be passed to playUri() which treats them as local content URIs and fails to play.

Use Case

As an example, Stremio users can now select CloudStream as an external player for streaming URLs. This also works with any app that shares video/audio URLs via Android's standard intent system.

Testing

  • Verified that CloudStream appears in the "Open with" menu when clicking video URLs in browsers
  • Verified that HTTP/HTTPS video URLs play correctly via playLink() instead of failing via playUri()
  • Verified that existing functionality (content URIs, magnet links, SEND intents) is unaffected

Screenshots

N/A — this is an intent-filter change, no UI changes

Allow CloudStream to appear in Android's 'Open with' menu when
clicking video/audio/HLS URLs from other apps like Stremio or browsers.

- Add 3 intent-filters to DownloadedPlayerActivity for video/*,
  HLS (x-mpegURL, vnd.apple.mpegurl), and audio/* MIME types
  over http/https schemes
- Route http/https URIs through playLink() instead of playUri()
  so network streams are handled correctly instead of being
  treated as local content URIs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant