nathom / streamrip

A scriptable music downloader for Qobuz, Tidal, SoundCloud, and Deezer
GNU General Public License v3.0
2.76k stars 249 forks source link

[BUG] Missing additional artists/features metadata #753

Open Delivator opened 1 month ago

Delivator commented 1 month ago

Describe the bug

Songs (no matter if in an album or single) only have the first artist in their metadata, all other artists/features are missing. The song downloaded bellow for example should have the Artists Post Malone;Morgan Wallen but only has Post Malone.

Command Used

rip url https://www.deezer.com/de/album/655091651

Debug Traceback

rip -vvv url https://www.deezer.com/de/album/581268421
[16:46:28] DEBUG    Showing all debug logs                                                                                                                                                                                 cli.py:102
⠹ Resolving URLs...[16:46:31] DEBUG    Pending tracks: [PendingTrack(id=2780753191, album=AlbumMetadata(info=AlbumInfo(id='581268421', quality=2, container='FLAC', label='Mercury Records/Republic Records', explicit=True,                 album.py:97
                    sampling_rate=44100, bit_depth=16, booklets=None), album='I Had Some Help', albumartist='Post Malone', year='2024', genre=['Country'], covers=Covers(('original',
                    'https://e-cdns-images.dzcdn.net/images/cover/b9c8cc4fd597a9bc516445e6573501cf/1000x1000-000000-80-0-0.jpg', 'D:\\Music\\rip\\Post Malone - I Had Some Help (2024) [FLAC] [16B-44100kHz]\\cover.jpg')
                    ('large', 'https://e-cdns-images.dzcdn.net/images/cover/b9c8cc4fd597a9bc516445e6573501cf/500x500-000000-80-0-0.jpg', 'D:\\Music\\rip\\Post Malone - I Had Some Help (2024) [FLAC]
                    [16B-44100kHz]\\__artwork\\cover6330276998174576119.jpg')
                    ('small', 'https://e-cdns-images.dzcdn.net/images/cover/b9c8cc4fd597a9bc516445e6573501cf/250x250-000000-80-0-0.jpg', None)
                    ('thumbnail', 'https://e-cdns-images.dzcdn.net/images/cover/b9c8cc4fd597a9bc516445e6573501cf/56x56-000000-80-0-0.jpg', None)), tracktotal=1, disctotal=1, albumcomposer=None, comment=None,
                    compilation=None, copyright=None, date='2024-05-10', description=None, encoder=None, grouping=None, lyrics=None, purchase_date=None), client=<streamrip.client.deezer.DeezerClient object at
                    0x000002B1D77B0080>, config=<streamrip.config.Config object at 0x000002B1D76E4860>, folder='D:\\Music\\rip\\Post Malone - I Had Some Help (2024) [FLAC] [16B-44100kHz]',
                    db=Database(downloads=<streamrip.db.Downloads object at 0x000002B1D77B03E0>, failed=<streamrip.db.Failed object at 0x000002B1D77B0410>), cover_path='D:\\Music\\rip\\Post Malone - I Had Some Help
                    (2024) [FLAC] [16B-44100kHz]\\__artwork\\cover6330276998174576119.jpg')]
           DEBUG    Executing SELECT EXISTS(SELECT 1 FROM downloads WHERE id=?)                                                                                                                                             db.py:108
           DEBUG    Fetching deezer url with token                                                                                                                                                                      deezer.py:167
                    AAAAAWcSdNFnE44Re2rcsSOfjon0oL_Brm-JX395seKA8KzMWy_FDxRIwL0z5ygyI_lduVnu3rhqWgDAPO8HA_kOkH9peO0gc7ifH9oSR63Ux6KhJ5VZ5pqSbqxBT3xcxvUoebEZGJsF6aVMlZyIF0WyI5MZVv8kLVDJkl11oG7_pXKkjg0OKPKyU4o43RhjCbq
                    cORSc5DQzKVH0vjOpz97FkEspwv7DM00xo_I2LgJgsZx8PAG6ApOFB0iv54LGxgmhXxNeD4xrEKv5i2ak9Y0nWt4hwNXIxP4Q_elLednl
           DEBUG    dz track info: {'ALB_ID': '581268421', 'ALB_PICTURE': 'b9c8cc4fd597a9bc516445e6573501cf', 'ALB_TITLE': 'I Had Some Help', 'ARTISTS': [{'ART_ID': '7543848', 'ROLE_ID': '0', 'ARTISTS_SONGS_ORDER':  deezer.py:190
                    '1', 'ART_NAME': 'Post Malone', 'ARTIST_IS_DUMMY': False, 'ART_PICTURE': 'a5a8cca44e7eab2db7d44e039bed2574', 'RANK': '894373', 'LOCALES': {'lang_en': {'name': 'Post Malone'}, 'lang_ja-hrkt':
                    {'name': 'ポストマローン'}, 'lang_ja-jpan': {'name': 'ポスト・マローン'}, 'lang_ja-kana': {'name': 'ポストマローン'}}, '__TYPE__': 'artist'}, {'ART_ID': '7188840', 'ROLE_ID': '5',
                    'ARTISTS_SONGS_ORDER': '2', 'ART_NAME': 'Morgan Wallen', 'ARTIST_IS_DUMMY': False, 'ART_PICTURE': 'ab3d1393220dd346f4c1b96ad047797b', 'RANK': '658809', 'LOCALES': {'lang_en': {'name': 'Morgan
                    Wallen'}, 'lang_ja-hrkt': {'name': 'モーガンウォーレン'}}, '__TYPE__': 'artist'}], 'ART_ID': '7543848', 'ART_NAME': 'Post Malone', 'ARTIST_IS_DUMMY': False, 'DIGITAL_RELEASE_DATE': '2024-05-10',
                    'DISK_NUMBER': '1', 'DURATION': '178', 'EXPLICIT_LYRICS': '1', 'EXPLICIT_TRACK_CONTENT': {'EXPLICIT_LYRICS_STATUS': 1, 'EXPLICIT_COVER_STATUS': 0}, 'GENRE_ID': '0', 'HIERARCHICAL_TITLE': '',
                    'ISRC': 'USUM72404990', 'LYRICS_ID': 123151082, 'PHYSICAL_RELEASE_DATE': '2024-05-10', 'PROVIDER_ID': '427', 'RANK': '920660', 'SMARTRADIO': 0, 'SNG_CONTRIBUTORS': {'main_artist': ['Post
                    Malone'], 'featuring': ['Morgan Wallen'], 'composer': ['Louis Bell', 'Hoskins', 'Morgan Wallen', 'Austin Post', 'Ryan Vojtesak', 'Ernest Keith Smith', 'Chandler Paul Walters', 'Ashley Gorley'],
                    'artist': ['Morgan Wallen', 'Post Malone', 'Aaron Sterling', 'Craig Young', 'Derek Wells', 'Bryan Sutton', 'Dave Cohen', 'Paul Franklin', 'Larry Franklin']}, 'SNG_ID': '2780753191', 'SNG_TITLE':
                    'I Had Some Help', 'STATUS': 1, 'TRACK_NUMBER': '1', 'USER_ID': 0, 'VERSION': '', 'MD5_ORIGIN': 'b37995fdfeabae99a96eb9377b5d2f80', 'FILESIZE_AAC_64': '0', 'FILESIZE_MP3_64': '0',
                    'FILESIZE_MP3_128': '2852152', 'FILESIZE_MP3_256': '0', 'FILESIZE_MP3_320': '7130382', 'FILESIZE_FLAC': '21514749', 'FILESIZE': '2852152', 'GAIN': '-8.5', 'MEDIA_VERSION': '2', 'TRACK_TOKEN':
                    'AAAAAWcSdNFnE44Re2rcsSOfjon0oL_Brm-JX395seKA8KzMWy_FDxRIwL0z5ygyI_lduVnu3rhqWgDAPO8HA_kOkH9peO0gc7ifH9oSR63Ux6KhJ5VZ5pqSbqxBT3xcxvUoebEZGJsF6aVMlZyIF0WyI5MZVv8kLVDJkl11oG7_pXKkjg0OKPKyU4o43RhjCb
                    qcORSc5DQzKVH0vjOpz97FkEspwv7DM00xo_I2LgJgsZx8PAG6ApOFB0iv54LGxgmhXxNeD4xrEKv5i2ak9Y0nWt4hwNXIxP4Q_elLednl', 'TRACK_TOKEN_EXPIRE': 1729334801, 'MEDIA': [{'TYPE': 'preview', 'HREF':
                    'http://cdn-preview-4.dzcdn.net/stream/c-4f14caef1489b64317f99e544fb88c6b-2.mp3'}], 'RIGHTS': {'STREAM_ADS_AVAILABLE': True, 'STREAM_ADS': '2000-01-01', 'STREAM_SUB_AVAILABLE': True,
                    'STREAM_SUB': '2000-01-01'}, '__TYPE__': 'song'}
           DEBUG    Deezer info for downloadable: {'quality': 2, 'id': 2780753191, 'quality_to_size': [2852152, 7130382, 21514749], 'url':                                                                        downloadable.py:123
                    'https://cdnt-proxy-b.dzcdn.net/media/1/5388b81bcb40d9b97cbbc100fbc9bf806d72eee6d7621dc199f63bce3b62df0e928d90c820054c9b2081d806f7089c9fbbd36fe9da0f7bc794fc348da06f9246a255af97ce0a1c60a7cb6
                    5de36eae5c0?hdnea=exp=1729334801~acl=/media/1/5388b81bcb40d9b97cbbc100fbc9bf806d72eee6d7621dc199f63bce3b62df0e928d90c820054c9b2081d806f7089c9fbbd36fe9da0f7bc794fc348da06f9246a255af97ce0a1c6
                    0a7cb65de36eae5c0*~data=user_id=5194458662~hmac=931e664e4ec8ce6cac341b8ffaec7e7faa8f5308ce38c8e5e663dd5e7732366c'}
           DEBUG    Deezer file (id 2780753191) at                                                                                                                                                                downloadable.py:167
                    https://cdnt-proxy-b.dzcdn.net/media/1/5388b81bcb40d9b97cbbc100fbc9bf806d72eee6d7621dc199f63bce3b62df0e928d90c820054c9b2081d806f7089c9fbbd36fe9da0f7bc794fc348da06f9246a255af97ce0a1c60a7cb65
                    de36eae5c0?hdnea=exp=1729334801~acl=/media/1/5388b81bcb40d9b97cbbc100fbc9bf806d72eee6d7621dc199f63bce3b62df0e928d90c820054c9b2081d806f7089c9fbbd36fe9da0f7bc794fc348da06f9246a255af97ce0a1c60
                    a7cb65de36eae5c0*~data=user_id=5194458662~hmac=931e664e4ec8ce6cac341b8ffaec7e7faa8f5308ce38c8e5e663dd5e7732366c is encrypted. Decrypting with b'62e8b?-<e.$76lc3'
[16:46:32] DEBUG    Tagging with [('TITLE', 'I Had Some Help'), ('ARTIST', 'Post Malone'), ('ALBUM', 'I Had Some Help'), ('ALBUMARTIST', 'Post Malone'), ('YEAR', '2024'), ('GENRE', 'Country'), ('TRACKNUMBER', '01'), tagger.py:253
                    ('DISCNUMBER', '01'), ('TRACKTOTAL', '01'), ('DISCTOTAL', '01'), ('DATE', '2024-05-10'), ('ISRC', 'USUM72404990')]
           DEBUG    Executing INSERT INTO downloads (id) VALUES (?)                                                                                                                                                         db.py:124
           DEBUG    Items to add: ('2780753191',)                                                                                                                                                                           db.py:125
──────────────────────────────────────────────────────────────────────────────────────────────────── Downloading I Had Some Help ────────────────────────────────────────────────────────────────────────────────────────────────────
           DEBUG    Removing dirs {'D:\\Music\\rip\\Post Malone - I Had Some Help (2024) [FLAC] [16B-44100kHz]\\__artwork'}                                                                                             artwork.py:19

Config File

[downloads]
# Folder where tracks are downloaded to
folder = "D:\\Music\\rip"
# Put Qobuz albums in a 'Qobuz' folder, Tidal albums in 'Tidal' etc.
source_subdirectories = false
# Put tracks in an album with 2 or more discs into a subfolder named `Disc N` 
disc_subdirectories = true
# Download (and convert) tracks all at once, instead of sequentially. 
# If you are converting the tracks, or have fast internet, this will 
# substantially improve processing speed.
concurrency = true
# The maximum number of tracks to download at once
# If you have very fast internet, you will benefit from a higher value,
# A value that is too high for your bandwidth may cause slowdowns
# Set to -1 for no limit
max_connections = 6
# Max number of API requests per source to handle per minute
# Set to -1 for no limit
requests_per_minute = 60

[qobuz]
# 1: 320kbps MP3, 2: 16/44.1, 3: 24/<=96, 4: 24/>=96
quality = 3
# This will download booklet pdfs that are included with some albums
download_booklets = true

# Authenticate to Qobuz using auth token? Value can be true/false only
use_auth_token = false
# Enter your userid if the above use_auth_token is set to true, else enter your email
email_or_userid = ""
# Enter your auth token if the above use_auth_token is set to true, else enter the md5 hash of your plaintext password
password_or_token = ""
# Do not change
app_id = ""
# Do not change
secrets = []

[tidal]
# 0: 256kbps AAC, 1: 320kbps AAC, 2: 16/44.1 "HiFi" FLAC, 3: 24/44.1 "MQA" FLAC
quality = 3
# This will download videos included in Video Albums.
download_videos = true

# Do not change any of the fields below
user_id = ""
country_code = ""
access_token = ""
refresh_token = ""
# Tokens last 1 week after refresh. This is the Unix timestamp of the expiration
# time. If you haven't used streamrip in more than a week, you may have to log
# in again using `rip config --tidal`
token_expiry = ""

[deezer]
# 0, 1, or 2
# This only applies to paid Deezer subscriptions. Those using deezloader
# are automatically limited to quality = 1
quality = 2
# An authentication cookie that allows streamrip to use your Deezer account
# See https://github.com/nathom/streamrip/wiki/Finding-Your-Deezer-ARL-Cookie
# for instructions on how to find this
arl = "xxx"
# This allows for free 320kbps MP3 downloads from Deezer
# If an arl is provided, deezloader is never used
use_deezloader = true
# This warns you when the paid deezer account is not logged in and rip falls
# back to deezloader, which is unreliable
deezloader_warnings = true

[soundcloud]
# Only 0 is available for now
quality = 0
# This changes periodically, so it needs to be updated
client_id = ""
app_version = ""

[youtube]
# Only 0 is available for now
quality = 0
# Download the video along with the audio
download_videos = false
# The path to download the videos to
video_downloads_folder = "C:\\Users\\david\\StreamripDownloads\\YouTubeVideos"

[database]
# Create a database that contains all the track IDs downloaded so far
# Any time a track logged in the database is requested, it is skipped
# This can be disabled temporarily with the --no-db flag
downloads_enabled = true
# Path to the downloads database 
downloads_path = "C:\\Users\\david\\AppData\\Roaming\\streamrip\\downloads.db"
# If a download fails, the item ID is stored here. Then, `rip repair` can be
# called to retry the downloads
failed_downloads_enabled = true
failed_downloads_path = "C:\\Users\\david\\AppData\\Roaming\\streamrip\\failed_downloads.db"

# Convert tracks to a codec after downloading them.
[conversion]
enabled = false
# FLAC, ALAC, OPUS, MP3, VORBIS, or AAC
codec = "ALAC"
# In Hz. Tracks are downsampled if their sampling rate is greater than this. 
# Value of 48000 is recommended to maximize quality and minimize space
sampling_rate = 48000
# Only 16 and 24 are available. It is only applied when the bit depth is higher
# than this value.
bit_depth = 24
# Only applicable for lossy codecs
lossy_bitrate = 320

# Filter a Qobuz artist's discography. Set to 'true' to turn on a filter.
# This will also be applied to other sources, but is not guaranteed to work correctly
[qobuz_filters]
# Remove Collectors Editions, live recordings, etc.
extras = false
# Picks the highest quality out of albums with identical titles.
repeats = false
# Remove EPs and Singles
non_albums = false
# Remove albums whose artist is not the one requested
features = false
# Skip non studio albums
non_studio_albums = false
# Only download remastered albums
non_remaster = false

[artwork]
# Write the image to the audio file
embed = true
# The size of the artwork to embed. Options: thumbnail, small, large, original.
# "original" images can be up to 30MB, and may fail embedding. 
# Using "large" is recommended.
embed_size = "large"
# If this is set to a value > 0, max(width, height) of the embedded art will be set to this value in pixels
# Proportions of the image will remain the same
embed_max_width = -1
# Save the cover image at the highest quality as a seperate jpg file
save_artwork = true
# If this is set to a value > 0, max(width, height) of the saved art will be set to this value in pixels
# Proportions of the image will remain the same
saved_max_width = -1

[metadata]
# Sets the value of the 'ALBUM' field in the metadata to the playlist's name. 
# This is useful if your music library software organizes tracks based on album name.
set_playlist_to_album = false
# If part of a playlist, sets the `tracknumber` field in the metadata to the track's 
# position in the playlist instead of its position in its album
renumber_playlist_tracks = true
# The following metadata tags won't be applied
# See https://github.com/nathom/streamrip/wiki/Metadata-Tag-Names for more info
exclude = []

# Changes the folder and file names generated by streamrip.
[filepaths]
# Create folders for single tracks within the downloads directory using the folder_format
# template
add_singles_to_folder = false
# Available keys: "albumartist", "title", "year", "bit_depth", "sampling_rate",
# "id", and "albumcomposer"
folder_format = "{albumartist} - {title} ({year}) [{container}] [{bit_depth}B-{sampling_rate}kHz]"
# Available keys: "tracknumber", "artist", "albumartist", "composer", "title",
# and "albumcomposer", "explicit"
track_format = "{tracknumber:02}. {artist} - {title}{explicit}"
# Only allow printable ASCII characters in filenames.
restrict_characters = false
# Truncate the filename if it is greater than this number of characters
# Setting this to false may cause downloads to fail on some systems
truncate_to = 120

# Last.fm playlists are downloaded by searching for the titles of the tracks
[lastfm]
# The source on which to search for the tracks.
source = "deezer"
# If no results were found with the primary source, the item is searched for 
# on this one.
fallback_source = ""

[cli]
# Print "Downloading {Album name}" etc. to screen
text_output = true
# Show resolve, download progress bars
progress_bars = true
# The maximum number of search results to show in the interactive menu
max_search_results = 100

[misc]
# Metadata to identify this config file. Do not change.
version = "2.0.6"
# Print a message if a new version of streamrip is available 
check_for_updates = true

Operating System

Windows 11

streamrip version

2.0.5 (dev#46b570d)

Screenshots and recordings

No response

Additional context

No response

Delivator commented 1 day ago

Any updates on this?

Delivator commented 1 day ago

@nathom could you point me into a direction where this issue could be caused from? Maybe I can work on a fix myself.