Releases: NaturalDevCR/MediaToolsPro
Release list
MediaToolsPro v0.2.4
Bug Fix
'This video is not available' never retried with cookies
Problem: Downloads failed with:
ERROR: [youtube] VIDEO_ID: This video is not available
Even when valid cookies were saved, the app never retried with them.
Root Cause: The error-detection heuristic looks_like_public_video_failure contained the overly broad pattern "not available". This matched every "not available" error, including private videos that actually need cookies. The app interpreted these as "cookies are causing the problem" and skipped the cookie retry.
Fix: Narrowed the heuristic to only detect errors clearly caused by cookies on public videos:
drm protectedpo_tokensign in to confirm you're not a bot
All other errors (including "not available", "private video", "members-only", etc.) now correctly trigger a retry with cookies when cookies are available.
How it works now
- App tries without cookies first (avoids DRM on public videos)
- If that fails with an ambiguous error → retries with cookies
- If that fails with a clear cookie-caused error (DRM, bot check) → stops and reports the error
Bump version to 0.2.4.
MediaToolsPro v0.2.3
Bug Fix
YouTube DRM errors on public videos
Problem: Every download attempt failed with:
ERROR: [youtube] VIDEO_ID: This video is DRM protected
Root Cause: YouTube now serves DRM-only formats to logged-in sessions for many previously-public videos. The app was trying with cookies first, which triggered the DRM gate.
Fix: The app now tries without cookies first for all YouTube requests:
list_formats→ anonymous request first, cookies only if neededstart_download→ anonymous request first, cookies only if needed
This mirrors what works in browsers and other tools: anonymous YouTube requests often receive non-DRM streams, while logged-in sessions get DRM-only formats.
Additional changes:
- Added
"drm protected"and"drm"to the error detection heuristics so the app knows when to skip cookies. - Added a friendly error message explaining DRM restrictions and suggesting a yt-dlp update.
How to test
- Remove or keep your cookies (the app will try anonymous first regardless)
- Paste any public YouTube URL
- The app should now list formats and download successfully
Note: Some videos may genuinely be DRM-protected (e.g., YouTube Premium originals). In those cases, no tool can download them.
MediaToolsPro v0.2.2
What's New
Separated Download from Processing Targets
- Download now keeps the source quality exactly as selected in the format explorer.
- Removed AzuraCast and Google TV Streamer Cast targets from the Download tab.
These delivery profiles are exclusively for the Process stage. - Download summary and options overlay no longer show Audio/Video target selectors.
- A note in Download Options redirects users to the Process tab for delivery profiles.
Automatic Cookie Fallback
list_formats: if cookies fail with a public-video availability error, automatically retries without cookies using theandroid_vrfallback extractor.start_download: same automatic retry logic inside the download task.- New helper
looks_like_public_video_failure()detects errors caused by expired/invalid cookies on public videos.
Why this matters
Previously, expired cookies would break downloads for public videos because the app unconditionally used the default extractor (which requires valid authentication). Now the app is resilient: it tries with cookies first, and if that fails on what looks like a public video, it falls back to the public-video extractor automatically.
Files changed
src-tauri/src/ytdlp.rs– removed target overrides from download, added fallback logicsrc/views/Downloader.vue– cleaned up download UI, removed target selectors
MediaToolsPro v0.2.1
Bug Fix
YouTube format listing failed with cookies
Problem: When a cookies.txt file was imported, listing formats for some YouTube videos still failed with:
ERROR: [youtube] VIDEO_ID: This video is not available
Cause: The app unconditionally forced --extractor-args youtube:player_client=android_vr for every YouTube URL. That client bypasses PO-Token 403 errors on public videos, but it cannot access private, age-restricted, members-only, or region-blocked content that requires an authenticated session.
Fix: The extractor client fallback is now applied only when NO cookies are present:
- If you have a valid
cookies.txt→ the default YouTube extractor is used with your session (handles authenticated content correctly). - If you have NO cookies →
android_vris used as a fallback to avoid 403 errors on public videos.
Both list_formats and start_download now share this conditional logic.
Files changed
src-tauri/src/ytdlp.rs
MediaToolsPro v0.2.0
What's New
Format Explorer
- Step-by-step download flow: Downloads now use a guided 3-step process:
- Paste the URL
- Explore and pick an exact format from the real available formats (Video + Audio, Audio only, Video only)
- Review and confirm before queuing
- Eliminates the dreaded
"Requested format is not available"error by usingyt-dlpexactformat_id.
Decoupled Tasks
- Removed the tightly coupled
"Download & Process"pipeline from the Downloads tab. - Download and Process are now fully independent stages.
- When a download finishes in the Queue, a new "Send to Process" button (wrench icon) lets you send the downloaded file straight to the Process tab for local mastering.
UI/UX Improvements
- Cleaned up the Downloads sidebar: removed confusing chained split options and pipeline summaries.
- Action buttons adapt to the current step (Explore formats → Continue → Add to queue).
- Better format cards with resolution, codec, extension, fps and estimated size.
- Clearer visual separation between job types in the Queue.
Technical
- New Rust command
list_formatsto query available formats before downloading. - New types
YtdlpFormatItemandYtdlpFormatsResponse. - Updated
DownloadRequestto support an optionalformat_idfor exact format selection.
MediaToolsPro v0.1.1
See the assets below to download this release.
AudioToolsPro v0.1.0
See the assets below to download this release.