feat: add UrlSource for arbitrary URL-based media playback

Introduces the pmourlsource crate as a standard MusicSource that resolves HTTP/HTTPS URLs via a priority-ordered UrlHandler registry. Includes specialized handlers for Qobuz and Radio France alongside an SSRF-safe generic scraper supporting playlists, feeds, and HTML audio. Integrates with existing browse flows, REST endpoints, and Android Web Share targets while updating source capability flags to correctly route URL queries.
This commit is contained in:
2026-06-14 13:55:38 +02:00
parent 429bc0d274
commit d49bb604ca
22 changed files with 2053 additions and 18 deletions

View File

@@ -110,6 +110,9 @@ pub struct SourceCapabilities {
pub supports_advanced_search: bool,
/// Supports pagination in browse operations
pub supports_pagination: bool,
/// Handles URL input (http/https) instead of plain text search queries.
/// When true, this source is called exclusively for URL-like search inputs.
pub handles_url_input: bool,
}
/// Audio format information
@@ -650,6 +653,7 @@ pub trait MusicSource: Debug + Send + Sync {
supports_multiple_formats: false,
supports_advanced_search: false,
supports_pagination: false,
handles_url_input: false,
}
}