Bug#1057152: RFP: sacad -- Smart Automatic Cover Art Downloader
Package: wnpp
Severity: wishlist
X-Debbugs-Cc: debian-python@lists.debian.org
* Package name : sacad
Version : 2.7.5
Upstream Contact: https://github.com/desbma
* URL : https://github.com/desbma/sacad/
* License : MPL-2
Programming Lang: Python
Description : Smart Automatic Cover Art Downloader
SACAD is a multi platform command line tool to download album covers
without manual intervention, ideal for integration in scripts, audio
players, etc.
SACAD also provides a second command line tool, sacad_r, to scan a
music library, read metadata from audio tags, and download missing
covers automatically, optionally embedding the image into audio audio
files. Features
* Can target specific image size, and find results for high resolution covers
* Support JPEG and PNG formats
* Customizable output: save image along with the audio files / in a different directory named by artist/album / embed cover in audio files...
* Currently support the following cover sources:
* Amazon CD (.com, .ca, .cn, .fr, .de, .co.jp and .co.uk variants)
* Amazon digital music
* CoverLib (site is dead)
* Deezer
* Discogs
* Google Images (removed, too unreliable)
* Last.fm
* Itunes
* Smart sorting algorithm to select THE best cover for a given query,
using several factors: source reliability, image format, image
size, image similarity with reference cover, etc.
* Automatically crunch images with optipng, oxipng or jpegoptim (can
save 30% of filesize without any loss of quality, great for
portable players)
* Cache search results locally for faster future search
* Do everything to avoid getting blocked by the sources: hide
user-agent and automatically take care of rate limiting
* Automatically convert/resize image if needed
* Multiplatform (Windows/Mac/Linux)
SACAD is designed to be robust and be executed in batch of thousands
of queries:
* HTML parsing is done without regex but with the LXML library, which
is faster, and more robust to page changes
* When the size of an image reported by a source is not reliable
(ie. Google Images), automatically download the first KB of the
file to get its real size from the file header
* Process several queries simultaneously (using asyncio), to speed up
processing
* Automatically reuse TCP connections (HTTP Keep-Alive), for better
network performance
* Automatically retry failed HTTP requests
* Music library scan supports all common audio formats (MP3, AAC,
Vorbis, FLAC..)
* Cover sources page or API changes are quickly detected, thanks to
high test coverage, and SACAD is quickly updated accordingly
----
There are no tools, as far as I know, to do this in Debian. A friend
used this to great effect to cleanup their local music library, while
in the meantime I did this by hand to much lesser effect...
Reply to: