您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Accurate filling of new upload/request and group/request edit forms based on foobar2000's playlist selection or web link, offline and online release integrity check, tracklist format customization, featured artists extraction, classical works formatting, cover art fetching from store, checking for previous upload, form enhancements and more
当前为
Script using GreaseMonkey extensions, requiring GM, TamperMonkey or other GM clone, tested on Firefox, Chrome, Opera on Windows, Linux and Tampermonkey as script manager. On other platforms, browsers or script managers may not work.
Additional setup - to read audio player's playlist, custom copy format must be set:foobar2000's native copy command: File > Preferences > Display > Classic User Interface > Title Formatting > Copy command, or Text Tools plugin quick copy command
$replace($replace([%album artist%]$char(30)[%album%]$char(30)[$if3(%date%,%ORIGINAL RELEASE DATE%,%year%)]$char(30)[$if3(%releasedate%,%retail date%,%date%,%year%)]$char(30)[$if2(%label%,%publisher%)]$char(30)[$if3(%catalog%,%CATALOGNUMBER%,%CATALOG NUMBER%,%labelno%,%catalog #%,%SKU%)]$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)[%genre%[|%style%]]$char(30)[%discnumber%]$char(30)[$if2(%totaldiscs%,%disctotal%)]$char(30)[%discsubtitle%]$char(30)[%track number%]$char(30)[$if2(%totaltracks%,%TRACKTOTAL%)]$char(30)[%title%]$char(30)[%track artist%]$char(30)[$if($strcmp(%performer%,%artist%),,%performer%)]$char(30)[$if3(%composer%,%writer%,%SONGWRITER%,%author%,%LYRICIST%)]$char(30)[%conductor%]$char(30)[%remixer%]$char(30)[$if2(%compiler%,%mixer%)]$char(30)[$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%][ | $if2(%MQAENCODER%,%ENCODER%)][ | %ENCODER_OPTIONS%]$char(30)[$if2(%url%,%www%)]$char(30)[$directory_path(%path%)]$char(30)[$if2(%comment%,%description%)]$char(30)$trim([BARCODE=$trim($replace($if3(%barcode%,%UPC%,%EAN%,%MCN%), ,)) ][DISCID=$trim(%DISCID%) ][ASIN=$trim(%ASIN%) ][ISRC=$trim(%ISRC%) ][ISWC=$trim(%ISWC%) ][DISCOGS_ID=$trim(%discogs_release_id%) ][MBID=$trim(%MUSICBRAINZ_ALBUMID%) ][ACCURATERIPCRC=$trim(%ACCURATERIPCRC%) ][ACCURATERIPDISCID=$trim(%ACCURATERIPDISCID%) ][ACCURATERIPID=$trim(%ACCURATERIPID%) ][SOURCEID=$trim($replace(%SOURCEID%, ,_)) ][CT_TOC=$trim(%CDTOC%) ][ITUNES_TOC=$trim(%ITUNES_CDDB_1%) ][RELEASETYPE=$replace($if2(%RELEASETYPE%,%RELEASE TYPE%), ,_) ][COMPILATION=$trim(%compilation%) ][EXPLICIT=$trim(%EXPLICIT%) ]SCENE=$if($and(%ENCODER%,%LANGUAGE%,%MEDIA%,%PUBLISHER%,%RELEASE TYPE%,%RETAIL DATE%,%RIP DATE%,%RIPPING TOOL%),1,0) [ORIGINALFORMAT=$trim($replace(%ORIGINALFORMAT%, ,_)) ][BPM=$trim(%BPM%) ]),$char(13),$char(29)),$char(10),$char(28))
Note: Text Tools plugin substitutes linebreaks by underscores, making it ambiguous to restore original comment (remap_texttools_newlines
=1 for backward substitution), because of that using standard copy command is more reliable.
[Optional] More setup for proper transfer of secondary metadata:
In %UserProfile%\AppData\Roaming\foobar2000\LargeFieldsConfig.txt
(requires restart)
- increase basicMetaMax
to 16384 or more
- add fieldBasic=comment
- remove fieldSpam=ITUNES_CDDB_1
Script already fills form with minimal set of required tags (album, artist, title, tracknumber), but requires additional edits. 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, online integrity check & cover art), COMMENT/DESCRIPTION (for additional album description), MEDIA/SOURCE/FORMAT, 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)
- ProStudioMasters (store)
- Google Play Music (store)
- 7digital (store)
- e-onkyo music (store)
- Acoustic Sounds (store)
- Indies Scope (store, CZ)
- Beatport (store)
- Traxsource (store)
- Apple Music (store)
- MusicBrainz (community)
- VGMdb (community, JP, score related)
- Tidal (store, requires account - see remarks below for details about setup)
- OTOTOY (store, JP)
- Yandex Music (store, RU)
- Mora (store, JP)
- AllMusic (community)
For e-books
- Martinus (store, CZ, SK)
- GoodReads (community)
- Databáze knih (community, CZ)
For applications:
- SoftArchive (SAnet - dl blog)
Fetching from online sources in most cases works out of the box, except these services:
Tidal requires user account, script's user prefs to set: tidal_userid
and tidal_userpassword
. Requires also unique tidal token which seems to be persistent and auto detection is made on first use (experimental). If the authentication fails just due to failed detection, it's necessary to set it manually via tidal_token
user pref - brief guide how to obtain the token, if the method doesn't work, capture the token from browser's development tools (Ctrl-Shift-I) > Network tab > request header for /v1/country/context).
User customization is accessible via GM local storage, no own UI for now (use userscripts control panel to access the complete list of preferences).
How to access user configuration for Tampermonky: Run the script at least once by letting it fill form, then open the script in editor and switch to storage tab (quick way - open upload page, click TM toolbar icon, right click UA)
Enhancements to web form: (except NWCD)
cleanup_descriptions
preferenceops_always_edition
to 0Release integrity checking online is performed only for locally sourced albums. What is compared: title, main artist, playlist (track names, track artists and durations). Playlist size and overall duration is compared as well. This background check helps to prevent uploading incomplete/damaged albums, or releases that have messed up tracklist. Can be disabled by user pref check_integrity_online
.
Requires valid URL tag to supported website (if missing, script tries to look up album in stores)
All image uploads now cover cascaded fallbacks to ptpimg.me in this particular order: malzo.com, pixhost.to, catbox.moe and ImgBB.com. Malzo and ImgBB require user account for images above 2MB, user prefs to set: malzo_uid
(reg. email) and malzo_password
, respectively imgbb_uid
and imgbb_password
. Catbox uploader supports user account for authorized uploading (not required), user pref to set: catbox_userhash
.
Share links to view image on commonly used image host and thumbnail link from RuTracker should now be fully resolved to real image address for rehosting to PTPIMG.