[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: