-
Notifications
You must be signed in to change notification settings - Fork 10
Plugin Development
Jules Martins edited this page May 12, 2026
·
3 revisions
Note: The Plugin SDK is currently in Beta as of v0.5.0.
MangoFetch is designed to be infinitely extensible. If a platform is not supported natively or via yt-dlp, you can build your own extractor using our Rust SDK.
All plugins must implement the PlatformDownloader trait defined in mangofetch-core.
#[async_trait]
pub trait PlatformDownloader: Send + Sync {
fn name(&self) -> &str;
fn can_handle(&self, url: &str) -> bool;
async fn get_media_info(&self, url: &str) -> anyhow::Result<MediaInfo>;
async fn download(
&self,
info: &MediaInfo,
opts: &DownloadOptions,
progress: mpsc::Sender<f64>,
) -> anyhow::Result<DownloadResult>;
}-
Initialize: Create a new library crate and add
mangofetch-plugin-sdkas a dependency. - Implement: Write your extraction logic.
-
Compile: Build as a dynamic library (
.so,.dll, or.dylib). -
Install: Place the compiled library in the
plugins/directory of MangoFetch.
Detailed tutorials and ABI stability documentation are coming soon in v0.6.0.