Skip to content

[Feature Request] External Downloader Support (1DM, ADM, etc.) via Android Intent #2561

Open

Description

@anees-dahot

Describe your suggested feature

Problem

The built-in downloader fails frequently on slow or unstable networks. When it fails,
there is no resume support — the entire file has to be re-downloaded from scratch.
There is also no retry logic, making it very frustrating for users on mobile data
or in regions with poor connectivity.

Proposed Solution

Add an option in Settings > General > Downloads to send downloads to an external
downloader app via Android Intent instead of using the built-in downloader.

Two things needed:

  1. A toggle — "Use External Downloader" — in the Downloads settings section
  2. When enabled, fire an ACTION_VIEW Intent with the download URL + headers
    (referer, user-agent, cookies) so any installed downloader app can pick it up

Apps like 1DM (IDM+), ADM, and Download Navi all handle this Intent standard
and would receive the download automatically.

Why This Matters

  • External downloaders support resume — if a download fails it continues from where it left off
  • They have built-in retry logic and handle slow/unstable networks gracefully
  • They support multi-segment downloading which is significantly faster
  • This is a well-established pattern in Android media apps

Notes

  • HLS/DASH streams could be excluded (they can't be handled by simple downloaders anyway)
  • If no external app is installed, it should gracefully fall back to the built-in downloader
  • The Intent extras needed: title, filename, referer, extra-headers, userAgent

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.

Activity

  1. fire-light42 commented on Mar 11, 2026

    @fire-light42
    Collaborator

    When it fails, there is no resume support — the entire file has to be re-downloaded from scratch. There is also no retry logic

    There is resume and retry support

    When enabled, fire an ACTION_VIEW Intent with the download URL + headers
    (referer, user-agent, cookies) so any installed downloader app can pick it up

    We already have ACTION_VIEW support, called Play in browser: https://github.com/recloudstream/cloudstream/blob/master/app/src/main/java/com/lagradost/cloudstream3/actions/temp/PlayInBrowserAction.kt#L35

    if a download fails it continues from where it left off
    They have built-in retry logic and handle slow/unstable networks gracefully
    They support multi-segment downloading which is significantly faster

    We already support all of this

    The Intent extras needed: title, filename, referer, extra-headers, userAgent

    There is not an established format for specifying these intent extras. The best I could find was EXTRA_HEADERS which may work on chrome-based browsers and could be added.

  2. anees-dahot commented on Mar 11, 2026

    @anees-dahot
    Author

    There is resume and retry support

    There is resume button, but it doesn't work, clicking resume download does nothing.... also there isn't any retry logic too... only workaround for me is to delete that downloaded file and then redownlaod.

    We already support all of this

    But it doesn't work, or am i missing some settings? which i am sure i am not...

    There is not an established format for specifying these intent extras. The best I could find was EXTRA_HEADERS which may work on chrome-based browsers and could be added.

    But if we could just get download URL, it may work for most of the users..

    PS: Currently i am using Cloudstream beta, and IT has these download issues or blunders..

  3. anees-dahot commented on Mar 11, 2026

    @anees-dahot
    Author

    Ok, i am facing serious download issues, i have posted bug issues here:

    #2562

  4. fire-light42 commented on Mar 11, 2026

    @fire-light42
    Collaborator

    But if we could just get download URL, it may work for most of the users..

    That's exactly what the 'open in browser' option does!

  5. Shariqtechie commented on Oct 13, 2026

    @Shariqtechie

    External Download Manager Support Should Be the Top Priority

    External download manager integration should be the first priority.

    I know we can extract download URLs and manually send them to a download manager, but that isn't a clean or seamless solution.

    It should work like Firefox, where users can configure an external download manager, such as 1DM, in the settings and have download requests automatically redirected to it.

    Suggested Download Flow

    Please also consider implementing the following workflow:

    1. Tap the Download button: Display all available download qualities in a clean, tab-based interface.
    2. Select a quality: When the user taps a quality option, immediately send the corresponding download request to the configured external download manager.
    3. Start downloading: The selected download should open directly in the external manager, such as 1DM or AB Download Manager (ABDM), an open-source alternative, without requiring users to copy and paste URLs manually.

    Expected Behavior

    • A dedicated setting to configure the preferred external download manager.
    • Automatic redirection of download requests to the configured manager.
    • A clean interface for selecting available download qualities.
    • One-tap integration that sends the selected download directly to the external manager.
    • Support for multiple download managers where technically feasible.

    The goal is to make external download manager integration seamless, similar to Firefox, rather than treating it as a secondary feature that requires manual URL handling.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpotential extensionThis could be turned into an extension

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions