[RED/NWCD] Upload Assistant

Accurate filling of new upload/request and group/request edit forms based on foobar2000's playlist selection (via pasted output of copy command), release integrity check, two tracklist layouts, colours customization, featured artists extraction, classical works formatting, coverart fetching from store, checking for previous upload and more. As alternative to pasted playlist, e.g. for requests creation, valid URL to product page on supported web can be used -- see below.

As of 2020-01-10. See the latest version.

Author
Anakunda
Ratings
0 0 0
Version
1.198
Created
2019-08-30
Updated
2020-01-10
License
N/A
Applies to

Additional setup: to read foobar's playlist, pattern below must be set for built-in foobar2000 copy command (File > Preferences > Display > Classic User Interface > Title Formatting > Copy command), or custom Text Tools plugin quick copy command

[$fix_eol(%album artist%,)]$char(30)[$fix_eol(%album%,)]$char(30)[$if3(%date%,%ORIGINAL RELEASE DATE%,%year%)]$char(30)[$if3(%releasedate%,%retail date%,%date%,%year%)]$char(30)[$fix_eol($if3(%label%,%publisher%,%COPYRIGHT%),)]$char(30)[$fix_eol($if3(%catalog%,%CATALOGNUMBER%,%CATALOG NUMBER%,%labelno%,%catalog #%,%SKU%,%barcode%,%UPC%,%EAN%,%MCN%),)]$char(30)[%country%]$char(30)%__encoding%$char(30)%__codec%$char(30)[%__codec_profile%]$char(30)[%__bitrate%]$char(30)[%__bitspersample%]$char(30)[%__samplerate%]$char(30)[%__channels%]$char(30)[$if3(%media%,%format%,%source%,%MEDIATYPE%,%SOURCEMEDIA%,%discogs_format%)]$char(30)[$fix_eol(%genre%,)[|$fix_eol(%style%,)]]$char(30)[$num(%discnumber%,0)]$char(30)[$num($if2(%totaldiscs%,%disctotal%),0)]$char(30)[$fix_eol(%discsubtitle%,)]$char(30)[%track number%]$char(30)[$num($if2(%totaltracks%,%TRACKTOTAL%),0)]$char(30)[$fix_eol(%title%,)]$char(30)[$fix_eol(%track artist%,)]$char(30)[$if($strcmp($fix_eol(%performer%,),$fix_eol(%artist%,)),,$fix_eol(%performer%,))]$char(30)[$fix_eol($if3(%composer%,%writer%,%SONGWRITER%,%author%,%LYRICIST%),)]$char(30)[$fix_eol(%conductor%,)]$char(30)[$fix_eol(%remixer%,)]$char(30)[$fix_eol($if2(%compiler%,%mixer%),)]$char(30)[$fix_eol($if2(%producer%,%producedby%),)]$char(30)%length_seconds_fp%$char(30)%length_samples%$char(30)[%filesize%]$char(30)[%replaygain_album_gain%]$char(30)[%album dynamic range%]$char(30)[%__tool%][ | %ENCODER%][ | %ENCODER_OPTIONS%]$char(30)[$fix_eol($if2(%url%,%www%),)]$char(30)$directory_path(%path%)$char(30)[$replace($replace($if2(%comment%,%description%),$char(13),$char(29)),$char(10),$char(28))]$char(30)$trim([RELEASETYPE=$replace($if2(%RELEASETYPE%,%RELEASE TYPE%), ,_) ][COMPILATION=%compilation% ][DISCID=%DISCID% ][ISRC=%isrc% ][EXPLICIT=%EXPLICIT% ][ORIGINALFORMAT=%ORIGINALFORMAT% ][ASIN=%ASIN% ][DISCOGS_ID=%discogs_release_id% ][SOURCEID=%SOURCEID% ][BPM=%BPM% ])

Note: Text Tools plugin substitutes linebreaks by underscores, making it ambiguous to restore original comment (remap_texttools_newlines=1 to backward substitution), because of that using standard copy command is more reliable.

Script already fills form with minimal set of tags (album, artist, title, tracknumber), but obviously accuracy and completeness of description improves with increasing amount of expectably filled relevant tags, especially RELEASEDATE/RETAIL DATE, LABEL/PUBLISHER, CATALOG/CATALOGNUMBER, GENRE/STYLE, COUNTRY, URL (for lineage & cover art), MEDIA/SOURCE/FORMAT, COMMENT/DESCRIPTION (for additional album description), RELEASETYPE, COMPILATION (otherwise guessed from various parameters, not reliable), ALBUM DYNAMIC RANGE, DISCNUMBER, DISCSUBTITLE (for multivolume albums). Beyond naming volumes script uses DISCSUBTITLE also for grouping of classical works and logical units within playlist (usually on extensive anthologies).

Supported sites for online capturing of release details:

- Qobuz (store)
- HighResAudio (store)
- BandCamp (store)
- Presto Music (store)
- Discogs (community)
- Supraphonline (store, CZ)
- Bontonland (store, CZ, closing soon)
- NativeDSD (store)
- Juno Download (store)
- HDtracks (store)
- Deezer (store)
- Spotify (store, requires account and application credentials)
- ProStudioMasters (store)
- Google Play Music (store)
- 7digital (store)
- e-onkyo music (store)
- Acoustic Sounds (store)
- Indies Scope (store)
- Beatport (store)

For e-books

- Martinus (store, CZ, SK)
- GoodReads (community)
- Databáze knih (community, CZ)

For applications:

- SoftArchive (SAnet - dl blog)

Some user customization via script manager's local storage, but no UI for now (use script manager to access the complete list of preferences).

Enhancements to web form:

  • custom drag & drop handler for all description fields; accepted content types: local text files, local images (jpg, png, gif) (uploaded), html sourced formatted text, web links and web images (rehosted) // PTPIMG API key required to be configured for all image related content // foo_dr.txt handling
  • custom paste handler for for all description fields (handles html formatted text)
  • custom drag & drop handler for cover image input (upload local image / rehost web sourced image), same requirement for PTPIMG api key as above
  • Pre-submit description cleanup (remove excessive linebreaks and empty tag pairs), configurable via cleanup_descriptions preference

Extensions to other scripts:

  • drag & drop patch to PTPImg It (drop images from shell on the button to directly upload them to PTPIMG host); make sure PTPImg It has lower order number than UA and has configured API key (alternately can be set via ptpimg_api_key in UA preferences).


Orpheus site enabled but not tested (experimental).