A high-performance, feature-rich artwork display component for foobar2000 v2 (x64 and 32-bit). It provides intelligent, multi-tiered artwork discovery and acoustic audio recognition for local tracks, internet radio streams, and YouTube playback. It seamlessly supports both Default User Interface (DUI) and Columns UI (CUI).
Artwork Discovery & Retrieval:
- Local Artwork Search: Automatically searches for artwork files and embedded tags configured in foobar2000 (Preferences > Display > Album Art).
- Online Commercial Search APIs: Automatically queries Deezer, iTunes, Last.fm, MusicBrainz (Cover Art Archive), and Discogs when local artwork is missing.
- Customizable API Priority: Reorder and enable/disable individual API services via an intuitive 5-position priority chain.
- In-Stream Broadcast Artwork Extraction: Parses dynamic in-stream cover links from
$info(cover_url),COVER_URL,ARTWORK_URL,icy-cover-url,song.art, and XML/JSON broadcast streams (e.g. Radio Paradise, Cidade FM).- YouTube Video Thumbnail Retrieval: Automatically extracts 11-character video IDs from YouTube links and plugin protocols (
youtube.com,youtu.be,3dyd://,fy://,fy+https://), querying commercial music APIs first and falling back to high-resolution video thumbnails (maxresdefault.jpg/hqdefault.jpg).- Interactive Provider Rejection: Reject mismatched artwork on-the-fly via shortcut or menu command (View > Artwork Display > Reject Artwork & Search Next Provider). Evicts the bad cache file, blacklists the provider for the active track, and queries the next provider in the fallback chain.
- Universal Format Support: High-performance decoding for
.png,.jpg/.jpeg,.webp(via Windows Imaging Component),.gif, and.bmp.Internet Radio & Streaming Intelligence:
- ACRCloud Acoustic Audio Recognition: Local 16 kHz PCM stream sampling and RIFF WAV payload generation to identify untagged radio streams and music tracks via acoustic fingerprinting.
- Multi-Account ACRCloud Failover: Configure Primary and Secondary credentials with automatic, seamless failover when the Primary account exhausts its monthly quota (Error 3001).
- Windows DPAPI Credential Security: ACRCloud Access Keys and Secrets are securely encrypted on disk using the Windows Data Protection API (
CryptProtectData), eliminating plaintext exposure in.cfgfiles.- CoverSync Stream Latency Compensation: Asynchronous cue delay compensation (
?coversync=±N) synchronizes artwork and metadata transitions on radio streams where the audio buffer lags behind metadata changes.- External Now-Playing Stream APIs: Automated polling and auto-probing for AzuraCast (
/api/nowplaying) and RadioReg (api.radioreg.net) JSON endpoints, supporting live listener counts, cue timings, and HLS streams.- m-TAGS & URL Modifiers: Full support for
.tagsfiles (reading target stream URLs from the@metadata tag) and URL query flags (?forceacr,?coversync,?inverted,?rejectstationcovers,?ext_api_autoprobe,?bypass).Dynamic Title Formatting Variables:
- Canonical API Metadata Publication: Commercial search APIs (Deezer, iTunes, Last.fm, Discogs) and ACRCloud extract authoritative metadata directly into foobar2000 title formatting variables (
%foo_artwork_artist%,%foo_artwork_title%,%foo_artwork_album%), replacing messy stream tags.- Dynamic Track Timing: Real-time duration (
%foo_artwork_length%), elapsed time (%foo_artwork_playback_time%), and countdown remaining (%foo_artwork_playback_remaining%) calculated for both local audio files and live radio streams.- Live Stream Diagnostics: Real-time status string (
%foo_artwork_status%) reporting query stages, stream connection progress, CoverSync countdowns, and image dimensions with payload size (e.g.Art 1200x1200 342 KB from Deezer).- Live Listener Counts: Real-time listener statistics (
%foo_artwork_listeners%) from AzuraCast and RadioReg broadcasts.Advanced Metadata Sanitization:
- 4-Stage Stream Metadata Sanitizer: Cleans noisy stream metadata by stripping broadcast slogans, stream headers, URLs, timestamps, track numbers, and media noise while protecting band names containing
&,and, or slashes (Mumford & Sons,Earth, Wind & Fire,AC/DC).- Accented UTF-8 Title Casing: Normalizes all-caps and all-lowercase stream metadata into Title Case with full support for accented characters across Portuguese, Spanish, French, and Italian without CP1252 character corruption.
- Non-Latin Script Preservation: Conservative sanitization rules protect Cyrillic, Greek, and other non-Latin alphabets from accidental bracket stripping or character truncation.
- Dedicated Noise Words Blacklist: User-configurable blacklist page backed by an auto-reloaded text file (
foo_artwork_data\blacklist.txt).Caching & Storage Architecture:
- Persistent Disk Metadata Caching (
.metaSidecars): Remote API metadata is cached on disk alongside image binaries (<hash>.metaalongside<hash>.cache), ensuring instant warm track replays in under 1ms with zero network overhead.- Automatic 1 GB Disk Cache Limit: Intelligent background LRU (Least Recently Used) cache eviction automatically keeps the cache under 1 GB, pruning old entries down to 900 MB when needed.
- Single-File Cache Mode (
current.cache): Overwrites a single cache file (current.cache) for external skin scripts and panels (e.g. JScript Panel 3 Thumbs) that monitor a folder for the currently playing track’s artwork.- Cache Freshness Verification: Automatically verifies whether local artwork or file tags were updated after the cache was generated, refreshing stale cache entries automatically.
User Interface & Interactivity:
- Dark Mode Support: Full native theme integration with foobar2000 dark mode across all UI elements and dialogs.
- Dual UI Support: Native panel integration for both Default UI (DUI) and Columns UI (CUI).
- Popup Artwork Viewer: Double-click any artwork panel to launch an interactive viewer with window memory, a toggle between “Fit to window” and “Show original size”, mouse-drag panning for oversized images, and a “Save Image…” button.
- foo_artgrab Integration: Automatic hover overlay displaying a download arrow icon in the bottom-left corner when
foo_artgrab.dllis installed, launching the art grabber gallery in one click.- On-Screen Display (OSD) & Infobar: Optional Infobar in DUI displaying artist, album, and track title; configurable OSD overlay showing the artwork provider source.
github.com/jame25/foo_artwork
hydrogenaudio.org/index.php/topic,128111.0
