scene release to discogs release
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bux b509f07851 select best match based on record type when multiple are returned 2 years ago
LICENSE Initial commit 2 years ago
README.md example cover art download 2 years ago
in-ws-predb.ovh.sh v0.0.3 2 years ago
out-deezer-cover.jq select best match based on record type when multiple are returned 2 years ago
out-fallback.jq v0.0.3 2 years ago
out-ids.jq v0.0.3 2 years ago
out-simple.jq v0.0.3 2 years ago
parse-rls.fish accept SP as lang/country 2 years ago
search-deezer-api.fish test that API response contains total 2 years ago
search-discogs-api.fish v0.0.3 2 years ago
search-discogs-elastic.fish v0.0.3 2 years ago

README.md

rls-discogs

scene release to discogs release

using

flow

scene rls name > parse > artist / title / year as .tsv > search discogs > .json

tools

  • in-ws-predb.ovh.sh read scene release names from predb websocket
  • parse-rls.fish parse scene release name
  • search-discogs-api.fish search discogs release using Discogs REST API
  • search-discogs-elastic.fish search discogs release using ElasticSearch
  • search-deezer-api.fish search for album with Deezer REST API
  • out-fallback.jq fallback search helper
  • out-ids.jq filter ids from json output
  • out-simple.jq filter genre from json output

usage

parse rls name as tab separated values

$ echo 'Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC' | ./parse-rls.fish | column -t -s "$(printf '\t')"
Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC  Kraftwerk  Autobahn      CD  Remastered  2009

parse rls name as json

$ echo 'Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC' | ./parse-rls.fish -j | jq .
{
  "artist": "Kraftwerk",
  "barcode": null,
  "catno": null,
  "edition": "Remastered",
  "format": "CD",
  "rls": "Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC",
  "title": "Autobahn",
  "year": "2009"
}

parse rls name, search local ElasticSearch, output discogs ids

$ echo 'Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC' | ./parse-rls.fish | ./search-discogs-elastic.fish | ./out-ids.jq
{"artist_id":4654,"master_id":2994,"release_id":1966322,"rls":"Kraftwerk-Autobahn-Remastered-CD-FLAC-2009-BCC"}

get rls names from websocket, parse rls name, search with api.discogs.com, write .json

$ ./in-ws-predb.ovh.sh | ./parse-rls.fish | search-discogs-api.fish > out.api.json

parse rls name, search local ElasticSearch, write json, filter empty results and convert json to tsv, fallback search with Discogs API, write json

$ echo 'Band_Of_Horses-Things_Are_Great-CD-2022-FATHEAD' | ./parse-rls.fish | ./search-discogs-elastic.fish | \
  tee out.es.json | ./out-fallback.jq | ./search-discogs-api.fish > out.api.json
$ jq ._search_result_count out.es.json out.api.json
0
1

With fish shell:

parse rls names from local folder, search Deezer, filter cover URL, download cover image into local folder

ls -1 /path/ | ./parse-rls.fish | ./search-deezer-api.fish | ./out-deezer-cover.jq | while read -l RLS COVER ; if not test -f "/path/$RLS/cover.jpg"; curl -s -o "/path/$RLS/cover.jpg" "$COVER"; end; end