Overview
MediaPulse provides one graphical workflow for individual tracks, videos, albums, and playlists. It analyzes a link, displays its metadata and available formats, then processes the selected item through a persistent download queue. Jobs and settings survive an application restart. YouTube and SoundCloud media are handled through yt-dlp. Spotify links are used as catalog metadata: MediaPulse does **not** download audio from Spotify. It searches for an external audio source, preferring YouTube Music and using YouTube search as a fallback. The actual source and match confidence are shown before the job is added to the queue. MediaPulse is local-first. Its database, settings, logs, managed FFmpeg tools, and support files remain on the Windows PC. Telemetry is disabled by default.
Features
Supported sources and collections
- - Analyze individual YouTube video links.
- - Analyze individual SoundCloud track links.
- - Resolve Spotify track metadata to a verified external audio source.
- - Expand Spotify albums and public playlists into as many as 500 queue items.
- - Expand YouTube playlists into audio-only queue items.
- - Preserve source-provider and resolved-provider information for Spotify jobs.
- - Require confirmation when a Spotify match is below the automatic confidence threshold.
Output and media processing
- Audio outputs: original, MP3, AAC, Opus, FLAC, and WAV.
- Video outputs for supported individual video links: original, MP4, and MKV.
- Configurable audio bitrate from 96 through 320 kbps.
- Configurable video resolution and codec preferences.
- Optional metadata and artwork embedding.
- FFmpeg/ffprobe installation from the GUI with checksum and executable health verification.
- Atomic output finalization so incomplete processing does not replace a valid destination file.
- Pre-download disk-space checks and reservations for parallel jobs.
Queue and history
- Persistent bounded queue with configurable concurrency.
- Live progress, speed, ETA, status, and output-path information.
- Cancel, retry, open-folder, refresh, and failure-details actions.
- Completion notification when all active queue work finishes.
- Green completed status and red failed status for fast visual scanning.
- Duplicate detection with choices to download again or inspect the existing Queue/History entry.
- Searchable history and safe history clearing.
- Crash recovery for jobs interrupted by an unexpected shutdown.
Safety, privacy, and diagnostics
- Local SQLite persistence.
- Proxy settings that reject stored plaintext credentials.
- Cookie-file and supported-browser authentication boundaries.
- Sanitized rotating JSONL logs.
- Sanitized support ZIP creation without media, database, cookies, credentials, or runtime tools.
- Bounded retry, timeout, rate-limit, and disk-space policies.
- Light, dark, and system themes with accessibility and high-DPI support.
Packaging and maintenance
- Windows installer that does not require Python.
- Optional PyInstaller one-file executable that does not require Python.
- Managed FFmpeg/ffprobe update, health-check, and rollback workflow.
- Application-update safety boundary for future signed releases.
Requirements
- OS
- Windows 11, 64-bit, or Windows 10 version 22H2 (build 19045), 64-bit.
- MEMORY
- 8 GB RAM or more.
- NETWORK
- Stable broadband Internet connection.
- STORAGE
- 5 GB available for application data, tools, cache, and temporary processing, plus capacity for the intended media library.
- GRAPHICS
- Integrated or dedicated graphics supporting a 1920 x 1080 display; GPU acceleration is not required.
- PROCESSOR
- Quad-core x64 processor, 2.5 GHz or faster.
- SOUND CARD
- Windows-compatible audio device for local playback.
FAQ
Does MediaPulse download audio directly from Spotify?
No. Spotify supplies catalog metadata. MediaPulse resolves that metadata to an external audio source and records the source used for the download.
What does "Use Closest Match" mean?
The best available external source did not reach the automatic confidence threshold. Review the title, creator, duration, thumbnail, provider, and score. Select **Use Closest Match** only when it is the version you want; otherwise cancel and do not queue it.
Why can one Spotify track work while another needs confirmation or fails?
Each Spotify item is matched independently. Search availability, title differences, featured artists, remixes, live versions, and duration differences can produce different confidence and verification results.
Are YouTube playlists downloaded as video?
No. YouTube playlist expansion is intentionally audio-only. Individual YouTube video links can still use supported video outputs.
Do I need to install FFmpeg manually?
No. On first launch, use **Install Media Tools**. MediaPulse downloads its pinned FFmpeg and ffprobe package, checks its SHA-256 value, verifies both executables, and activates it after an application restart.
Why does MediaPulse ask me to restart after installing media tools?
The running download engine was created before the tools were activated. Restarting makes every worker use the newly verified binaries consistently.
Do I need Python to run MediaPulse?
No for the installer and portable builds. Python 3.11 or newer is needed only when running the source project.
Is the portable build completely self-contained?
The application runtime is contained in one executable. Persistent settings, the database, logs, and managed media tools are intentionally external in LocalAppData. The executable also expands its frozen runtime into a temporary directory during launch.
Why is portable startup slower than the installed version?
The one-file executable must extract its frozen runtime before starting the GUI. Later launches may still vary because of temporary-file and antivirus scanning behavior.
What happens if I queue the same URL again?
MediaPulse displays a duplicate notice. You can download it again or navigate to its existing Queue or History record. Clearing History removes those history entries from later duplicate checks.
What should I do when a download fails?
Select the failed row and open **Failure Details**. Review the error code, reason, attempt count, source URL, output path, and expandable diagnostic output. Correct the reported condition and use **Retry Selected** when appropriate.
Where are settings and application data stored?
They are stored in the current Windows user's non-roaming LocalAppData location for MediaPulse. This includes the SQLite database, logs, cache, temporary work, managed runtime, backups, support bundles, and update staging. Downloaded media remains in the destination selected by the user.
Does uninstalling remove my downloaded files?
No. The per-user installer preserves MediaPulse user data by design, and it does not remove media from user-selected download directories.
Does MediaPulse update yt-dlp automatically?
The packaged yt-dlp library is part of the application build and changes when a new MediaPulse build is produced. Managed FFmpeg/ffprobe have their own update and rollback workflow. A new yt-dlp release can occasionally require MediaPulse compatibility changes, so it is tested as part of an application update rather than replaced blindly at runtime.
Why are signed application updates unavailable?
Version 0.1.0 is a personal-use development release without an Authenticode identity or signed application-update service. Managed media-tool maintenance is available, but application update installation remains disabled until a trusted signed release channel is configured.
Does MediaPulse send telemetry?
Telemetry is disabled by default. Diagnostics are stored locally, and support bundles are created only when requested by the user.