scene release to discogs release
in-ws-predb.ovh.sh | ||
LICENSE | ||
out-deezer-cover.jq | ||
out-fallback.jq | ||
out-ids.jq | ||
out-simple.jq | ||
parse-rls.fish | ||
README.md | ||
search-deezer-api.fish | ||
search-discogs-api.fish | ||
search-discogs-elastic.fish |
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 websocketparse-rls.fish
parse scene release namesearch-discogs-api.fish
search discogs release using Discogs REST APIsearch-discogs-elastic.fish
search discogs release using ElasticSearchsearch-deezer-api.fish
search for album with Deezer REST APIout-fallback.jq
fallback search helperout-ids.jq
filter ids from json outputout-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