[WS] Discogs (pone mod)

cheers mate, works as described.

@ moderators / dano:
please merge this topic with the [WS] Discogs (pone mod) topic.

you will get the old data if you just update your setting file and create the scripts from it without changing anything in the settings.

so i can only guess what's confusing you.

until version 3.8 there was the field DISCOGS_TRACK POSITION with "track temp" as default tag field mapped to it.

in 3.9, when i finally found a way change the input of track, i introduced several new DISCOGS~TRACK... fields and renamed the old DISCOGS_TRACK POSITION to DISCOGS~TRACK POSITION (SAME AS BEFORE VERSION 3.9, NOT ALWAYS WRITTEN). that renaming is made when you update the setting file, the value (mapped tag field) stays the same, and nothing should be changed.

in 3.11, i decided to change the default value of DISCOGS~TRACK POSITION (SAME AS BEFORE VERSION 3.9, NOT ALWAYS WRITTEN) from "track temp" to "no". but that affects only new downloaded setting files. if you keep your old one and just update it, the setting is not changed.

When you don't get your normal track field anymore, you will have:

  • either set one of the DISCOGS~TRACK... fields to "track", which will overwrite the standard 1, 2, 3, ... numbering. in this case, map these fields to a different field or set them to "no".
  • or you have set DISCOGS~TRACK_OPTION: LEAVE TRACK EMPTY? to "yes", which - as it says - leaves track empty. in this case, set it to "no"

Got it, Thanks

Thanx Pone!

This script is really what i was looking for.

But one question:

Is it possible to configure the Date Format from this: "31.12.2011" to this: "3112"
DD.MM.YYYY to DDMM (For Media Monkey)

Thanx!!

look a few post above:
[WS] Discogs (pone mod)
you have to change the third-last line form
regexpreplace "(\d\d\d\d)-(\d\d)-(\d\d)" "$2$3"
to
regexpreplace "(\d\d\d\d)-(\d\d)-(\d\d)" "$3$2"

So this is for Media Monkey. I thought it's a singular formating preference of stevehero. I will make an easier option for that in the next update.

I found a little bug in the script. Releases with only one track produce a error if you use
DISCOGS~TRACK NUMBER WITH LEADING ZEROS or DISCOGS~TRACK NUMBER WITH LEADING ZEROS / TOTALTRACKS

I don't know when i find the time to update the script. Maybe next week, but i don't know.

Update 3.12
a new gimmick at date and some bug fixes

NEW:
You can now choose the format of DISCOGS_DATE (date) more freely with the new option TEXT OPTION: DATE FORMAT (DD/D = day, MM/M/MON/MONTH = month, YYYY/YY is year)
You can define the format of the date with the following variables:
D = the day (1 for 1, 10 for 10)
DD = the day with leading zeros (01 for 1, 10 for 10)

M = the month in numbers (1 for January, 10 for October)
MM = the month in numbers with leading zeros (01 for January, 10 for October)
MON = the month in abbreviated like you see it at the discogs pages (Jan, Feb, Mar, ...)
MONTH = the month fully written (January, February, March, ...)

YY = only the last two digits of the year (99 for 1999, 00 for 2000, 01 for 2001, ...)
YYYY = the year (1999, 2000, 2001, ....)

You can separate these variables with every character except the following:
D M O N T H Y Ä Ö Ü \ " ( ) [ ]
You can use separators before and after every variable.
You can use only one variable for day, month and year.

If day or month is missing at discogs, it is replaced with 00 or 0. This can be avoided by using [...] or (...) which have a special function:
[...] What is enclosed in brackets is only written if a release month is given at discogs.
(...) What is enclosed in parenthesis is only written if a release day is given at discogs.
Remember that the date is only written if a release year is given at discogs. And there are no discogs pages with release day but without release month.
[...] can enclose (...), but not the other way around.

Some examples, valid date formats:
YYYY-MM-DD > 2011-01-05
D.M.YYYY > 5.1.2011
DD/MM/YY > 05/01/11
-DD-MM-YYYY- > -05-01-2011-
MMDD > 0105
Mon YYYY > Jan 2011
YYYY[-MM(-DD)] > 2011-01-05 (2011-01 if day is missing, 2011 if month is missing)
(D.)[M.]YYYY > 5.1.2011 (1.2011 if day is missing, 2011 if month is missing)

not valid:
DD\MM
MM DDth
MMDD Month
"DD MM"
YYYY([-MM]-DD)
(D.[)M.]YYYY

The old option OPTION: DATE YYYY-MM-DD (YES) OR DD.MM.YYYY (NO) will be deleted when you update the setting file, but your settings will be preserved in the new option.

NEW:
You often find "-" at discogs as track index to signify that the track index of the tracks before is not valid for the following tracks. In this cases "-" is no longer written to DISCOGS_TRACK INDEX (chapter) by the script.
Also simple track indexes which signify only the discnumber and the total length of the disc, like "CD1", "Disc 2", "CD 1 (63:49)" are no longer written to DISCOGS_TRACK INDEX.
Examples: "-" as track index: http://www.discogs.com/release/68272 discnumber + total length as track index: http://www.discogs.com/release/3210119

NEW/FIXED:
The "tracklist for album with multi song tracks" script overwrites the DISCOGS_EXTRA ARTIST (mixartist) with a single space if there is no extra artist. I included this for a better workflow. You can tag such albums now with a standard script (just to get the discogs-id) and re-tag it right afterwards with the multi-song-tracks script. I thought I had included this before, but either I deleted this at one of the last updates, or I never built this in.

FIXED:
Releases with only one track produced an error if you use DISCOGS~TRACK NUMBER WITH LEADING ZEROS, DISCOGS~TRACK NUMBER WITH LEADING ZEROS / TOTALTRACKS or DISCOGS~TRACK NUMBER / TOTALTRACKS. This is fixed now.

FIXED:
The DISCOGS~TRACK NUMBER / TOTALTRACKS field was not correctly overwritten by the four DISCOGS~TRACK_ONLY FOR... fields. This is fixed now.

FIXED:
The API-List Master Release Page Script had a little bug concerning the Master Release ID.
When you had set the option OPTION: WRITE DISCOGS_MASTER RELEASE ID WHEN TAGGING FROM NORMAL RELEASE PAGES to "no", it wrote the tag field never the less.
If you had set it "yes" it repeated the number, e.g. it wrote 1234512345 instead of 12345. This is fixed now.

FIXED:
At one of the last updates it seems that I accidentally replaced TEXT OPTION: FREE WEB SOURCES SCRIPT CODE FOR DJ SETS IN ONE FILE TRACKLIST SCRIPT and TEXT OPTION: FREE WEB SOURCES SCRIPT CODE FOR MULTISONG-TRACKS TRACKLIST SCRIPT with TEXT OPTION: FREE WEB SOURCES SCRIPT CODE FOR STANDARD SCRIPTS. This is fixed now again and gives you the possibility to treat these special scripts different from the standard scripts.


@ stevehero & MP3Joe:
You don't need you the code for the TEXT OPTION: FREE WEB SOURCES SCRIPT CODE FOR... fields any more. Please set them back to "#" (without quotation marks) and type your desired date format (MMDD for stevehero, DDMM for MP3Joe) in the new TEXT OPTION: DATE FORMAT (DD/D = day, MM/M/MON/MONTH = month, YYYY/YY is year) field.

Hi Pone,
I think I found a bug:
Just wanted to tag this release: http://www.discogs.com/Nautiluss-2-x-Lord-...release/3134844
There are two aritsts on the release (Nautiluss x Lord Skywave). The x is something like a new & I think and should not be written into the tags!?
Cheers,
Tlo

That's wanted behaviour, no bug.
My script writes all linking words and characters between artist names as the are found at discogs. And discogs' rule is to write them as they are found on the media. And you can assume that the aritst had some reasons to write "x" instead of "&", "vs.", "feat.", "meets" or whatever.
If I should replace it, I would also have the problem to decide with what i want to replace it.
And furthermore the question, which other similar used characters and words I should replace.

Hi Pone,

I am using a Tag DISCOGS_RELEASETYPE

If it is an MP3 Release the Bitrate is written 320 kbps

I think the HTML code is not properly filtered within your script.
It is no big issue but a bit annoying to fix this manually

Thanks for reporting. I'll care for that.

It also seems that discogs changed some little thing on the search pages today or yesterday. At the moment only the API-List and Direct by scripts are working.

Update will come soon. Maybe today, at the latest by Monday...

Any other problems anyone?

Just read the post above of yours.

Update 3.13
Finally it's done, took me some time.

NEW:
Extra fields for the original Discogs artist names.
These fields are there as additional fields for the already existing DISCOGS_ALBUMARTIST (Albumartist), DISCOGS_ARTIST (Artist) and DISCOGS_EXTRA ARTIST (Mixartist).

The names of the new fields are:
DISCOGS_ORIGINAL ALBUMARTIST NAME
DISCOGS_ORIGINAL ARTIST NAME
DISCOGS_ORIGINAL EXTRA ARTIST NAME

Additionall, there are extra fields for the scripts which can write tags from discogs master release pages:
DISCOGS_MASTER ORIGINAL ALBUMARTIST NAME
DISCOGS_MASTER ORIGINAL ARTIST NAME
(there are no extra artists on the master release pages)

And there are three new options, where you can choose how artist names are linked/seperated if there is more then one artist:
TEXT OPTION: MULTI DISCOGS ALBUMARTIST NAME: MULTIVALUE TAG (= YES)/SEPERATE BY: (WRITE CHARACTERS)
TEXT OPTION: MULTI DISCOGS ARTIST NAME: MULTIVALUE TAG (= YES)/SEPERATE BY: (WRITE CHARACTERS)
TEXT OPTION: MULTI DISCOGS EXTRA ARTIST NAME: MULTIVALUE TAG (= YES)/SEPERATE BY: (WRITE CHARACTERS)

You can write both, the new and the old fields, or you can also set the old fields to "no" and the new fields to "albumartist", "artist" & "mixartist" to have the old fields replaced by the new ones.
The concept of these new fields is the following:
There are many artist who use different spellings of their names. Like "R.E.M.", who are also using "REM" or "R. E. M."
Discogs has one main artist name for them ("R.E.M."), all other variations are called artist name variation at discogs and will appear with a star after the name on the discogs pages ("REM*", "R. E. M.*"). Simple spelling mistakes as they are often found at compilations are also treated as artist name variations at discogs.
Completly different pseudonyms are not treated as variations, these are listed under Aliases on the artist page, but are not linked in any way on the release pages.

Discogs always uses the artist name (variation) which is found on the physical release for their release pages. The main artist name is only "hidden" in the URL of the link to the artist page. These links are now read by my script with the new fields.
The only problem is these links are URL encoded. This means, all non standart latin characters (everything other than A-Z, a-z, 0-9) are replaced whith their utf-8 character code. So I had to put in a long list of replaces into the scipts, 921 replaces to be exact. This makes the script a bit slow if you use these new fields.

At the old standard fields for Albumartist, Artist and Mixartist, different artists are always linked in the way they are written on the discogs page. At the new field, you can choose this with the new options shown above
I have left the original discogs artist names untouched. That means, you chan't put the trailing ", The" to the front of the name and you can't delete the number in parentheses after the artist name. Maybe that comes in the next update, let me know if you want that.

I used this this list of characters for my replaces:
http://www.utf8-zeichentabelle.de/unicode-....pl?number=1024
Note that this is only the uncicode character set which is called "Basic Latin". There are about 200 more character sets, which cover everything from chinese and arabic characters to Braille and more or less common symbols. These can't be read by my script and you will get things like %C7%84, %DF%AB, instead.
I could give you instruction how to add further character sets to the script in a few steps if somebody needs/wants them. But this would make the script again more slowly. Let me know if you want to.

NEW:
OPTION: COMPILATION = 1 FOR MULTI-ARTIST-RELEASES
If you set this to "yes", the script will write the field COMPILATION with the value "1" for all releases with different artists. The field will be left empty for releases with only one artist.

CHANGED:
Mp3tag can't write the character "|" with web sources scripts because it has a special function. My script replaced it with "/" in the older version. From now on it will be replace with "ǀ", which is a different character but looks almost the same.

FIXED:
A week ago Discogs changed some details on the search pages which lead to a permanent fail of all search scripts. Now they work again.

FIXED:
DISCOGS_RELEASETYPE has had left some html code in the output if you haven't used DISCOGS_MEDIATYPE at the same time. This is fixed now.

FIXED:
OPTION: ALBUMARTIST FOR SINGLE-ARTIST-RELEASES did not work if you tagged your music directly from a master release page. Albumartist was always written. This is fixed now.

FIXED:
Setting DISCOGS_ARTIST to "no" led to a mistake at the output of DISCOGS_TITLE. This is fixed now.

EDIT:
Discogs has anounced that they shut down their old API on December 15. This will only affect the "API-List Artist" script. I guess it will stop working on December 15 and I will have to do another update. The "API-List Artist" won't have all releases of an artist in it after that. Different Versions of a release will be grouped under the main release, which means that the script won't be able tag your script from all versions.
More about that here: Changes at discogs.com
But we will see, stay tuned.

Hi Pone,
As you may know by now I like the format:
Date: MMDD
Year: YYYY-MM-DD

I couldn't for the life of me figure out how to use your options to get the results. So I had to put it in the following for it to work:
DISCOGS_DATE: no
DISCOGS_YEAR: no
TEXT OPTION: DATE FORMAT (DD/D = DAY, MM/M/MON/MONTH = MONTH, YYYY/YY = YEAR):no

TEXT OPTION: FREE WEB SOURCES SCRIPT CODE FOR STANDARD SCRIPTS:

outputto "year"
     gotoline 3
     findline "class=\"head\">Released:" 1 1
     findline "&year=" 1 1
     findinline "&year" 1 1
     if "="
         joinuntil "</a>"
         unspace
         regexpreplace "<[^>]+>" ""
         replace "Jan" "-01-"
         replace "Feb" "-02-"
         replace "Mar" "-03-"
         replace "Apr" "-04-"
         replace "May" "-05-"
         replace "Jun" "-06-"
         replace "Jul" "-07-"
         replace "Aug" "-08-"
         replace "Sep" "-09-"
         replace "Oct" "-10-"
         replace "Nov" "-11-"
         replace "Dec" "-12-"
         regexpreplace "[^-0-9]" ""
         
         regexpreplace "(\d\d)-(\d\d)-(\d\d\d\d)" "$3-$2-$1"
         regexpreplace "-(\d\d)-(\d\d\d\d)" "$2-$1-00"
         regexpreplace "(\d\d\d\d)$" "$1-00-00"
         sayrest
     endif
     
     outputto "date"
     gotoline 3
     findline "class=\"head\">Released:" 1 1
     findline "&year=" 1 1
     findinline "&year" 1 1
     if "="
         joinuntil "</a>"
         unspace
         regexpreplace "<[^>]+>" ""
         replace "Jan" "-01-"
         replace "Feb" "-02-"
         replace "Mar" "-03-"
         replace "Apr" "-04-"
         replace "May" "-05-"
         replace "Jun" "-06-"
         replace "Jul" "-07-"
         replace "Aug" "-08-"
         replace "Sep" "-09-"
         replace "Oct" "-10-"
         replace "Nov" "-11-"
         replace "Dec" "-12-"
         regexpreplace "[^-0-9]" ""
         
         regexpreplace "(\d\d)-(\d\d)-(\d\d\d\d)" "$3-$2-$1"
         regexpreplace "-(\d\d)-(\d\d\d\d)" "$2-$1-00"
         regexpreplace "(\d\d\d\d)$" "$1-00-00"
         regexpreplace "(\d\d\d\d)-(\d\d)-(\d\d)" "$2$3"
         sayrest
     endif

If I could do this in the options that would be great. Thanks.

Hm, you can't get that straight away from my script without using the TEXT OPTION: FREE WEB SOURCES SCRIPT CODE... fields. The reason for that is, I have made this formating options only for the DISCOGS_DATE field. DISCOGS_YEAR is alway just the year in four digits.

The only thing you could do to make it somehow shorter is:

DISCOGS_DATE = date
DISCOGS_YEAR = no
TEXT OPTION: DATE FORMAT (DD/D = DAY, MM/M/MON/MONTH = MONTH, YYYY/YY = YEAR) = MMDD
TEXT OPTION: FREE WEB SOURCES SCRIPT CODE FOR STANDARD SCRIPTS =

outputto "year"
     gotoline 3
     findline "class=\"head\">Released:" 1 1
     findline "&year=" 1 1
     findinline "&year" 1 1
     if "="
         joinuntil "</a>"
         unspace
         regexpreplace "<[^>]+>" ""
         replace "Jan" "-01-"
         replace "Feb" "-02-"
         replace "Mar" "-03-"
         replace "Apr" "-04-"
         replace "May" "-05-"
         replace "Jun" "-06-"
         replace "Jul" "-07-"
         replace "Aug" "-08-"
         replace "Sep" "-09-"
         replace "Oct" "-10-"
         replace "Nov" "-11-"
         replace "Dec" "-12-"
         regexpreplace "[^-0-9]" ""
         
         regexpreplace "(\d\d)-(\d\d)-(\d\d\d\d)" "$3-$2-$1"
         regexpreplace "-(\d\d)-(\d\d\d\d)" "$2-$1-00"
         regexpreplace "(\d\d\d\d)$" "$1-00-00"
         sayrest
     endif

Mmh, I was sure I tried that already. Thanks. Maybe an option to format the year in a future release might be handy :]

I just noticed discogs changed a little detail at their search pages. All my script show " - " at the cover column for all releases at the list of search results.
That affect only the list of results, the script still stores the cover in the normal way.

I will wait a few days with the update for this little thing, until I see if discogs is going to change at their API in the next days. I was anounced for December 15/17, but today I got a email which said January 15.

Maybe. That would basically be two date fields. I'm trying to keep the script as short as possible. For extra special requests like that I have designed the TEXT OPTION: FREE WEB SOURCES SCRIPT CODE ... fields.

Is
Date: MMDD
Year: YYYY-MM-DD
a requirement by any software you are using or is it just your personal liking? I don't see the need of a date field if the date is already stored in the year field.

I'm using Traktor so it uses the format YYYY-MM-DD to read the release date.

DATE is just a back up. Becuase I first tag my songs and then run them through a program called 'Mixed In key' for finding the key of each song. It strips the MM-DD from the YEAR. I then use your action you done for me which fixes the YEAR back to YYYY-MM-DD and it also takes the MMDD from the DATE and places it in the YEAR.
For_mat_DATE__YEAR__Credit_Goes_To_Pone_.zip (359 Bytes)
I suppose I could just have created a TAG for YEARBACKUP but I have the date shown in my column in mp3tag which is easier visually to see. You see. :]

For_mat_DATE__YEAR__Credit_Goes_To_Pone_.zip (359 Bytes)

If DATE is just a back-up, does the format matter?
If "MM-DD" or even "-MM-DD" would be also OK, you could shorten the settings for my script (which also doesn't really matter, once you have done it).

For:
Date: MM-DD
Year: YYYY-MM-DD

DISCOGS_DATE = date
DISCOGS_YEAR = year
TEXT OPTION: DATE FORMAT (DD/D = DAY, MM/M/MON/MONTH = MONTH, YYYY/YY = YEAR) = MM-DD
TEXT OPTION: FREE WEB SOURCES SCRIPT CODE FOR STANDARD SCRIPTS =

outputto "year"
 say "-"
 sayoutput "date"

(would give you "-" for DATE if the year is missing at discogs)

For:
Date: -MM-DD
Year: YYYY-MM-DD

DISCOGS_DATE = date
DISCOGS_YEAR = year
TEXT OPTION: DATE FORMAT (DD/D = DAY, MM/M/MON/MONTH = MONTH, YYYY/YY = YEAR) = -MM-DD
DISCOGS~PONE COPY 1 SOURCE = date
DISCOGS~PONE COPY 1 TARGET = year
(would give you an empty DATE field if the year is missing at discogs)

I should be possible to change the backup action in such a way it can deal with MMDD, MM-DD and -MM-DD.
e.g.: $replace(%date%,-,) would simply eliminate/ignore the dashes.

btw:
I'm using Traktor, too. But only for a small part of my huge music collection. When I have a DJ gig (which is not so often), I pre-select the tracks which I load into Traktor. Like a vinyl DJ would go to his shelves to fill his dj-cases. So only a small part of my collection has those "YYYY-00-00" YEAR fields. I'm just ignoring that, or even use it as a marker for the tracks which I would play as DJ.

I suppose it doesn't but I was a newb when I decided I wanted the DATE format MMDD :smiley:
The solution I have ATM works perfect because it fills the DATE with 0000 when there is no MMDD in discogs for the release.

Thats basically why I have the YEAR like that. Its a real shame Traktor didn't go down the smart playlist route with PRO2 :[ Think they missed a trick there!

Noticed lately, when using Artist /Album script... script does not recognize Artist and or Album. Message: Sorry can't find...

  1. I know it's correct.
  2. Only way to get info is to use either the album or the artist as a single search... and then you can download the tag.
  3. However, even after you get the info from script and try to do a Artist/Album search it still comes back that it doesn't exist.

Any idea what's going on... This is only for the Artist & album Search.

Thanks