[WS] Deezer

This is a web source script for Deezer, a popular music streaming service.

It is particularly useful when looking to get information about the people involved in the music creation process of an album and its tracks, such as composers, lyricists, producers, engineers, and the like. Specifically, these are the tag fields parsed by the script:

COVER; ALBUMARTIST; ALBUM; YEAR; PUBLISHER; UPC; ARTIST; TITLE; TRACK; DISCNUMBER; ISRC; ITUNESADVISORY; COMPILATION

And optionally, when available:

COMMENT; COMPOSER; LYRICIST; CONDUCTOR; INVOLVEDPEOPLE

You can try it and make suggestions or tell me how to improve it. Enjoy!

Deezer v1.0.src (18.9 KB)

Changelog
[2019-05-25] v1.0  Initial release
10 Likes

Because I like to have the discnumber in the track too, I prefer tracknumber-formats like
101/11 (for the first track of the first disk),
201/11 (for the first track of the secornd disk)
Could you tell me how to change your script to achieve this? Otherwise I have to work over this manually after using the script.

Another point:
Would it be possible to display the number of tracks of an album in the overview where you choose the album?

Thanks for this great script. It is a pity that so many scripts are abandoned by their authors by some time (i.e. Spotify). So I am glad about every new script.

Hi,

wow, thank you for your work but i miss the tag field "genre". there is no content
can you install that?

I'll take a look into it, but these minor modifications involving numbers are harder to implement than it sounds because of the limitations of the Web Sources Framework.

I understand you, as I also like tuning my scripts to my liking so their output follows my preferred tag fields structure, but creating a lot of scripts with these kind of minor changes makes future updates to the script a bit of a nightmare. The best way to go in these situations is an Action, you shouldn't have to do it manually.

Unfortunately, this is not possible as Deezer's search results web page doesn't include this information so the script can't parse it.

Unfortunately, this is not possible as Deezer doesn't provide the genre information for any album so the script can't parse it. It's not a script error.

Try this modified version of my script and tell me if it's what you are looking for:

Deezer v1.0 (poster mod).src (21.4 KB)

I've marked the modified sections using comments starting with this string: ### Poster mod
As I told you, when these scripts have to deal with number formatting it's not as simple as a one-liner change :grimacing:. There are several changes scattered through the code.

1 Like

Great work vikaesar :+1: :heart:
Just a quick request please, is it possible to add the following (so it matches more closely the tags you get on flac from deezer?):
ARTISTS
BARCODE
COPYRIGHT
EXPLICIT
LABEL
LENGTH
MEDIA
SOURCE
SOURCEID

Thank you in advance

Yes, I can write a modified version of the script to output some of those tags, which are commonly used with audio file formats using Vorbis comments for tagging purposes such as FLAC, instead of the ones currently used.

I don't know if Deezer provides all of them, though. What are SOURCE and SOURCEID used for? Also, why a LENGTH tag?

Can you give me an example that shows how they would be filled for a sample album?

Thank you for your prompt response vikaesar :+1:
I have messaged the relevant info/example.

pleas add tags 'bpm'

Hi.
Which lines should i edit to only download Cover Art?
Thank you.

################################################################################
# Mp3tag Tag Source for Deezer v1.0                                            #
#                                                                              #
# Created by vikaesar                                                          #
# Modified by stevehero 2020.04.08                                             #
#                                                                              #
# KNOWN ISSUES: Genre information can't be parsed as it is not provided        #
#               by Deezer.                                                     #
#                                                                              #
#               When parsing multi-disc albums with more than 20 discs         #
#               then the total tracks for every disc past the twentieth        #
#               one aren't parsed, so their %track% field won't follow         #
#               this pattern: "track number/total tracks", it will just        #
#               show the track number.                                         #
#                                                                              #
# INSTRUCTIONS: This file needs to be stored in Mp3tag's tag sources           #
#               directory:                                                     #
#               %APPDATA%\Mp3tag\data\sources                                  #
#                                                                              #
# CHANGELOG                                                                    #
#                                                                              #
# [2019-05-25]  v1.00   Initial release                                         #
# [2020-04-08]  v1.00a  Artwork only 1200px                                     #
################################################################################
[Name]=Deezer
[BasedOn]=www.deezer.com
[IndexUrl]=https://www.deezer.com/search/%s
[AlbumUrl]=https://www.deezer.com/en/album/
[WordSeparator]=%20
[IndexFormat]=%_url%|%Album%|%Artist%|%Year%
[SearchBy]=%Artist% %Album%
[Encoding]=url-utf-8
################################################################################
#                        LIST OF SEARCH RESULTS DIALOG                         #
################################################################################
[ParserScriptIndex]=...
## Comment/uncomment for debugging purposes:
# DebugWriteInput "C:\Users\your_username\Desktop\mp3tag-deezer-ws-index-debug.out.html"
# Debug "ON" "C:\Users\your_username\Desktop\mp3tag-deezer-ws-index-debug.txt"
FindLine "<script>window.__DZR_APP_STATE__"
RegexpReplace ".+<script>.+ = " ""
RegexpReplace "</script>.+</div>" ""
json "ON" "current"
## First, check if we've found anything
json_select_object "ALBUM"
json_select "count"
## Then iterate over all releases
ifnot "0"
  json_foreach "data"
    # URL
    json_select "ALB_ID"
    SayRest
    Say "|"
    # Album
    json_select "ALB_TITLE"
    SayRest
    Say "|"
    # Artist
    json_select "ART_NAME"
    SayRest
    Say "|"
    # Year
    json_select "PHYSICAL_RELEASE_DATE"
    SayRest
    SayNewline
  json_foreach_end
endif
################################################################################
#                        ADJUST TAG INFORMATION DIALOG                         #
################################################################################
[ParserScriptAlbum]=...
## Comment/uncomment for debugging purposes:
# DebugWriteInput "C:\Users\your_username\Desktop\mp3tag-deezer-ws-album-debug.out.html"
# Debug "ON" "C:\Users\your_username\Desktop\mp3tag-deezer-ws-album-debug.txt"
FindLine "<script>window.__DZR_APP_STATE__"
RegexpReplace ".+<script>.+ = " ""
RegexpReplace "</script>.*" ""
json "ON" "current"
## First, parse album data
json_select_object "DATA"
# Cover
OutputTo "COVERURL"
json_select "ALB_PICTURE"
Say "https://e-cdns-images.dzcdn.net/images/cover/"
SayRest
## You can choose the cover resolution here, up to 1200px x 1200px
Say "/1200x1200.jpg"
# Say "/512x512.jpg"
3 Likes

Excellent!
Thank you so much.

Been using MP3Tag for awhile now and just discovered that more sources can be added. I downloaded the above SRC and put it into the ~Mp3tag\data\sources~ folder but it is not showing up in my sources when i open a fresh process of the application. Am I doing something incorrectly or not doing everything completely? Thanks for your time.

The correct location is described in this thread:

1 Like

Hi,

I am looking for a way to add the ISRC to all my files, without having to map every single song manually to its position on the album.

Is there a way to make this script work on a single song basis, rather than album based?

All my Songs have the (so I assume) relevant Infos needed to match them automatically:
Artist, Title, Album

So can someone please modify this script to automatically pull only the ISRC-Code of each song from deezer (or any other source)?

Thanks and cheers
Mike

Welcome! ISRC is not available on the source pages for deezer.

See here: view-source:https://www.deezer.com/en/album/111015702

... well, the Deezer-Script from this Thread already pulls the ISRC ...

I didn't look at the script just the source of a url. I searched for ISRC and there's nothing for it. Strange, how the script can get it. It must be under some other html tag.

You can use the set function to set all other tags written apart from the ISRC at the bottom. Or delete all other outputto functions below the [ParserScriptAlbum] part. You will probably need the title there too so can line the correct track up with the left side in the info tag panel.

The scripts will need a complete rewrite for searching for the tracks individually so the above is something as a workaround.

use API https://api.deezer.com/2.0/album/111015702/tracks