diff --git a/src/__pycache__/download.cpython-310.pyc b/src/__pycache__/download.cpython-310.pyc index 03564b8..e4a0c00 100644 Binary files a/src/__pycache__/download.cpython-310.pyc and b/src/__pycache__/download.cpython-310.pyc differ diff --git a/src/__pycache__/metadata.cpython-310.pyc b/src/__pycache__/metadata.cpython-310.pyc index 1ea4948..764c6de 100644 Binary files a/src/__pycache__/metadata.cpython-310.pyc and b/src/__pycache__/metadata.cpython-310.pyc differ diff --git a/src/download.py b/src/download.py index dc4e053..e84aed1 100644 --- a/src/download.py +++ b/src/download.py @@ -1,3 +1,4 @@ +import mutagen.id3 import requests import os.path import pandas as pd @@ -76,6 +77,7 @@ dict_keys( ]) """ + class Download: def __init__(self, session: requests.Session = requests.Session(), file: str = ".cache3.csv", temp: str = "temp", base_path: str = ""): @@ -113,10 +115,13 @@ class Download: os.makedirs(path, exist_ok=True) return False - def write_metadata(self, row, filePath): - AudioSegment.from_file(filePath).export(filePath, format="mp3") - - audiofile = EasyID3(filePath) + def write_metadata(self, row, file_path): + # only convert the file to the proper format if mutagen doesn't work with it due to time + try: + audiofile = EasyID3(file_path) + except mutagen.id3.ID3NoHeaderError: + AudioSegment.from_file(file_path).export(file_path, format="mp3") + audiofile = EasyID3(file_path) valid_keys = list(EasyID3.valid_keys.keys()) @@ -128,7 +133,7 @@ class Download: audiofile[key] = row[key] print("saving") - audiofile.save(filePath, v1=2) + audiofile.save(file_path, v1=2) if __name__ == "__main__": diff --git a/src/main.py b/src/main.py index 47a1665..87264dc 100644 --- a/src/main.py +++ b/src/main.py @@ -71,4 +71,4 @@ def cli(start_at: int = 0): if __name__ == "__main__": - cli(start_at=3) + cli(start_at=0) diff --git a/src/metadata.py b/src/metadata.py index 763aaa3..36e0111 100644 --- a/src/metadata.py +++ b/src/metadata.py @@ -10,16 +10,18 @@ musicbrainzngs.set_useragent("metadata receiver", "0.1", "https://github.com/HeI KNOWN_KIND_OF_OPTIONS = ["artist", "release", "track"] + def output(msg: str): print(msg) -def get_elem_from_obj(current_object, keys: list, after_process=lambda x: x): + +def get_elem_from_obj(current_object, keys: list, after_process=lambda x: x, return_if_none=None): current_object = current_object for key in keys: if key in current_object or (type(key) == int and key < len(current_object)): current_object = current_object[key] else: - return None + return return_if_none return after_process(current_object) @@ -80,6 +82,7 @@ class Search: label-rels, place-rels, event-rels, recording-rels, release-rels, release-group-rels, series-rels, url-rels, work-rels, instrument-rels """ + def get_additional_artist_info(mb_id_): r = musicbrainzngs.get_artist_by_id(mb_id_, includes=["releases"]) @@ -91,10 +94,13 @@ class Search: break return album_sort + result = musicbrainzngs.get_release_by_id(mb_id, includes=["artists", "recordings", 'release-groups']) + print(result['release']) if album_sort is None: - album_sort = get_additional_artist_info(get_elem_from_obj(result, ['release', 'artist-credit', 0, 'artist', 'id'])) + album_sort = get_additional_artist_info( + get_elem_from_obj(result, ['release', 'artist-credit', 0, 'artist', 'id'])) release_type = get_elem_from_obj(result, ['release', 'release-group', 'type']) tracklist_metadata = [] @@ -107,11 +113,15 @@ class Search: track_id = track["recording"]["id"] this_track = track["position"] - tracklist_metadata.extend(self.download_track(track_id, is_various_artist=is_various_artist, track=this_track, total_tracks=track_count, album_sort=album_sort, album_type=release_type)) - + tracklist_metadata.extend( + self.download_track(track_id, is_various_artist=is_various_artist, track=this_track, + total_tracks=track_count, album_sort=album_sort, album_type=release_type, + release_data=result['release'])) + return tracklist_metadata - def download_track(self, mb_id, is_various_artist: bool = None, track: int = None, total_tracks: int = None, album_sort: int = None, album_type: str = None): + def download_track(self, mb_id, is_various_artist: bool = None, track: int = None, total_tracks: int = None, + album_sort: int = None, album_type: str = None, release_data: dict = None): """ TODO bpm its kind of possible via the AcousticBrainz API. however, the data may not be of very good @@ -159,27 +169,29 @@ class Search: recording-rels, release-rels, release-group-rels, series-rels, url-rels, work-rels, instrument-rels """ - result = musicbrainzngs.get_recording_by_id(mb_id, includes=["artists", "releases", "recording-rels", "isrcs", "work-level-rels"]) + result = musicbrainzngs.get_recording_by_id(mb_id, includes=["artists", "releases", "recording-rels", "isrcs", + "work-level-rels"]) recording_data = result['recording'] isrc = get_elem_from_obj(recording_data, ['isrc-list', 0]) - release_data = recording_data['release-list'][0] + if release_data is None: + # choosing the last release, because it is the least likely one to be a single + release_data = recording_data['release-list'][-1] mb_release_id = release_data['id'] title = recording_data['title'] - - + artist = [] mb_artist_ids = [] for artist_ in recording_data['artist-credit']: - name_ = get_elem_from_obj(artist_, ['artist', 'name']) - if name_ is None: - continue - artist.append(name_) - mb_artist_ids.append(get_elem_from_obj(artist_, ['artist', 'id'])) - # artist = [get_elem_from_obj(artist_, ['artist', 'name']) for artist_ in recording_data['artist-credit']] - # mb_artist_ids = [get_elem_from_obj(artist_, ['artist', 'id']) for artist_ in recording_data['artist-credit']] - + name_ = get_elem_from_obj(artist_, ['artist', 'name']) + if name_ is None: + continue + artist.append(name_) + mb_artist_ids.append(get_elem_from_obj(artist_, ['artist', 'id'])) + # artist = [get_elem_from_obj(artist_, ['artist', 'name']) for artist_ in recording_data['artist-credit']] + # mb_artist_ids = [get_elem_from_obj(artist_, ['artist', 'id']) for artist_ in recording_data['artist-credit']] + def get_additional_artist_info(mb_id_): r = musicbrainzngs.get_artist_by_id(mb_id_, includes=["releases"]) @@ -193,7 +205,8 @@ class Search: return album_sort def get_additional_release_info(mb_id_): - r = musicbrainzngs.get_release_by_id(mb_id_, includes=["artists", "recordings", "recording-rels", 'release-groups']) + r = musicbrainzngs.get_release_by_id(mb_id_, + includes=["artists", "recordings", "recording-rels", 'release-groups']) is_various_artist_ = len(r['release']['artist-credit']) > 1 tracklist = r['release']['medium-list'][0]['track-list'] track_count_ = len(tracklist) @@ -412,7 +425,8 @@ def interactive_demo(): search = Search(query=input("initial query: ")) print(search.options) while True: - input_ = input("d to download, q to quit, .. for previous options, . for current options, int for this element: ").lower() + input_ = input( + "d to download, q to quit, .. for previous options, . for current options, int for this element: ").lower() input_.strip() if input_ == "q": break @@ -435,9 +449,12 @@ if __name__ == "__main__": # automated_demo() search = Search(query="psychonaut 4") # search.download_release("27f00fb8-983c-4d5c-950f-51418aac55dc") + search.download_release("1aeb676f-e556-4b17-b45e-64ab69ef0375") # for track_ in search.download_artist("c0c720b5-012f-4204-a472-981403f37b12"): # print(track_) - res = search.download_track("83a30323-aee1-401a-b767-b3c1bdd026c0") + # res = search.download_track("83a30323-aee1-401a-b767-b3c1bdd026c0") + # res = search.download_track("5e1ee2c5-502c-44d3-b1bc-22803441d8c6") + res = search.download_track("86b43bec-eea6-40ae-8624-c1e404204ba1") # res = search.download_track("5cc28584-10c6-40e2-b6d4-6891e7e7c575") for key in res[0]: diff --git a/src/temp/.cache1.csv b/src/temp/.cache1.csv index 05e38b7..45e8851 100644 --- a/src/temp/.cache1.csv +++ b/src/temp/.cache1.csv @@ -1,8 +1,8 @@ ,id,album,title,artist,album_artist,tracknumber,albumsort,titlesort,isrc,date,year,musicbrainz_artistid,musicbrainz_albumid,musicbrainz_albumartistid,musicbrainz_albumstatus,total_tracks,language,musicbrainz_albumtype,compilation,releasecountry,barcode -0,5e1ee2c5-502c-44d3-b1bc-22803441d8c6,Abgesägte Schrotflinte,Abgesägte Schrotflinte,['Crystal F'],Crystal F,1,0,1,DEVY82000223,2021-03-12,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,ca933487-97ff-4a44-ab6f-9e4fcd26ceda,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851774871 +0,5e1ee2c5-502c-44d3-b1bc-22803441d8c6,Das Leben danach,Abgesägte Schrotflinte,['Crystal F'],Crystal F,1,0,1,DEVY82000223,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133 1,71e4dd64-6479-45be-b9a0-37d4edc364fa,Das Leben danach,Schockschwerenot,['Crystal F'],Crystal F,2,0,2,DEVY82000317,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133 -2,c6b0ce24-b75b-40ad-a12a-1fa8a412dc14,Genug,Genug,['Crystal F'],Crystal F,3,0,3,DEVY82000308,2021-04-30,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,e9043dfa-189e-4caa-94c8-7e329d009389,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851604161 -3,d01df009-40cf-4bae-8ab4-19e70c552feb,Du willst mit mir gehen,Du willst mit mir gehen,['Crystal F'],Crystal F,4,0,4,DEVY82000296,2021-04-02,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,2659e838-ac3b-425b-935d-7cb93043bb3f,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851783668 +2,c6b0ce24-b75b-40ad-a12a-1fa8a412dc14,Das Leben danach,Genug,['Crystal F'],Crystal F,3,0,3,DEVY82000308,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133 +3,d01df009-40cf-4bae-8ab4-19e70c552feb,Das Leben danach,Du willst mit mir gehen,['Crystal F'],Crystal F,4,0,4,DEVY82000296,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133 4,5a3d0f0f-d847-4678-b14d-f0875339ec13,Das Leben danach,Komm wir tun mir weh,['Crystal F'],Crystal F,5,0,5,DEVY82000318,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133 5,8426e0e1-e14b-48ec-8e53-950fdf3b8754,Das Leben danach,S4distentreff 4,"['Crystal F', 'MXP', 'Dollar John', 'G-Ko']",Crystal F,6,0,6,DEVY82000319,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133 6,1543f558-4d54-4047-a6aa-affd02e89ab4,Das Leben danach,Stehen geblieben,['Crystal F'],Crystal F,7,0,7,DEVY82000320,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133 diff --git a/src/temp/.cache2.csv b/src/temp/.cache2.csv index 46c02c7..64a167c 100644 --- a/src/temp/.cache2.csv +++ b/src/temp/.cache2.csv @@ -1,14 +1,13 @@ ,id,album,title,artist,album_artist,tracknumber,albumsort,titlesort,isrc,date,year,musicbrainz_artistid,musicbrainz_albumid,musicbrainz_albumartistid,musicbrainz_albumstatus,total_tracks,language,musicbrainz_albumtype,compilation,releasecountry,barcode,url,src -0,5e1ee2c5-502c-44d3-b1bc-22803441d8c6,Abgesägte Schrotflinte,Abgesägte Schrotflinte,['Crystal F'],Crystal F,1,0,1,DEVY82000223,2021-03-12,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,ca933487-97ff-4a44-ab6f-9e4fcd26ceda,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851774871,https://www.youtube.com/watch?v=QLvZVY_iiUc,youtube +0,5e1ee2c5-502c-44d3-b1bc-22803441d8c6,Das Leben danach,Abgesägte Schrotflinte,['Crystal F'],Crystal F,1,0,1,DEVY82000223,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=QLvZVY_iiUc,youtube 1,71e4dd64-6479-45be-b9a0-37d4edc364fa,Das Leben danach,Schockschwerenot,['Crystal F'],Crystal F,2,0,2,DEVY82000317,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=VJESTJWnRhU,youtube -2,c6b0ce24-b75b-40ad-a12a-1fa8a412dc14,Genug,Genug,['Crystal F'],Crystal F,3,0,3,DEVY82000308,2021-04-30,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,e9043dfa-189e-4caa-94c8-7e329d009389,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851604161,https://www.youtube.com/watch?v=C0-n46T22vo,youtube -3,d01df009-40cf-4bae-8ab4-19e70c552feb,Du willst mit mir gehen,Du willst mit mir gehen,['Crystal F'],Crystal F,4,0,4,DEVY82000296,2021-04-02,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,2659e838-ac3b-425b-935d-7cb93043bb3f,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851783668,https://www.youtube.com/watch?v=D0rYWsUgDuQ,youtube +2,c6b0ce24-b75b-40ad-a12a-1fa8a412dc14,Das Leben danach,Genug,['Crystal F'],Crystal F,3,0,3,DEVY82000308,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=C0-n46T22vo,youtube +3,d01df009-40cf-4bae-8ab4-19e70c552feb,Das Leben danach,Du willst mit mir gehen,['Crystal F'],Crystal F,4,0,4,DEVY82000296,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=D0rYWsUgDuQ,youtube 4,5a3d0f0f-d847-4678-b14d-f0875339ec13,Das Leben danach,Komm wir tun mir weh,['Crystal F'],Crystal F,5,0,5,DEVY82000318,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=3Hq0_qc3zqo,youtube 5,8426e0e1-e14b-48ec-8e53-950fdf3b8754,Das Leben danach,S4distentreff 4,"['Crystal F', 'MXP', 'Dollar John', 'G-Ko']",Crystal F,6,0,6,DEVY82000319,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=sFmYIN0JNec,youtube 6,1543f558-4d54-4047-a6aa-affd02e89ab4,Das Leben danach,Stehen geblieben,['Crystal F'],Crystal F,7,0,7,DEVY82000320,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=V65bn2jN4ZE,youtube 7,ccf6d043-7157-492b-bca0-78a24c0c8372,Das Leben danach,"Blau, grün, gelb","['Crystal F', 'Ruffiction']",Crystal F,8,0,8,DEVY82000321,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=Mo7hZ984faU,youtube 8,41ad47ab-0337-4fcc-b369-5a4b1e12dc3c,Das Leben danach,Was fühlst du noch,"['Crystal F', 'Zero/Zero', 'Nils Davis', 'Taha']",Crystal F,9,0,9,DEVY82000322,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=T15QiksB7do,youtube -9,ed6cc3e1-d493-4a51-973c-3adc1a6ea978,Das Leben danach,Katzen,"['Crystal F', 'Kito', 'Kirby']",Crystal F,10,0,10,DEVY82000323,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=eKCpu74GYxs,youtube -10,b49a466f-e77b-465d-9c01-06298efb0c9d,Das Leben danach,Wach sein,['Crystal F'],Crystal F,11,0,11,DEVY82000324,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=dboTFFBUPW0,youtube -11,86b43bec-eea6-40ae-8624-c1e404204ba1,Das Leben danach,Rote Augen,['Crystal F'],Crystal F,12,0,12,DEVY82000325,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=zvYHKYz6AGI,youtube -12,2a3dc1ae-6752-420f-b1d3-ca9e26a15c48,Das Leben danach,Schlechtes Essen,['Crystal F'],Crystal F,13,0,13,DEVY82000326,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=XAfpge1FxLY,youtube +9,b49a466f-e77b-465d-9c01-06298efb0c9d,Das Leben danach,Wach sein,['Crystal F'],Crystal F,11,0,11,DEVY82000324,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=dboTFFBUPW0,youtube +10,86b43bec-eea6-40ae-8624-c1e404204ba1,Das Leben danach,Rote Augen,['Crystal F'],Crystal F,12,0,12,DEVY82000325,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=zvYHKYz6AGI,youtube +11,2a3dc1ae-6752-420f-b1d3-ca9e26a15c48,Das Leben danach,Schlechtes Essen,['Crystal F'],Crystal F,13,0,13,DEVY82000326,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=XAfpge1FxLY,youtube diff --git a/src/temp/.cache3.csv b/src/temp/.cache3.csv index bc05ea4..6573965 100644 --- a/src/temp/.cache3.csv +++ b/src/temp/.cache3.csv @@ -1,14 +1,13 @@ ,id,album,title,artist,album_artist,tracknumber,albumsort,titlesort,isrc,date,year,musicbrainz_artistid,musicbrainz_albumid,musicbrainz_albumartistid,musicbrainz_albumstatus,total_tracks,language,musicbrainz_albumtype,compilation,releasecountry,barcode,url,src,path,file,genre -0,5e1ee2c5-502c-44d3-b1bc-22803441d8c6,Abgesägte Schrotflinte,Abgesägte Schrotflinte,['Crystal F'],Crystal F,1,0,1,DEVY82000223,2021-03-12,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,ca933487-97ff-4a44-ab6f-9e4fcd26ceda,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851774871,https://www.youtube.com/watch?v=QLvZVY_iiUc,youtube,horrorcore/Crystal F/Abgesägte Schrotflinte,horrorcore/Crystal F/Abgesägte Schrotflinte/Abgesägte Schrotflinte.mp3,horrorcore +0,5e1ee2c5-502c-44d3-b1bc-22803441d8c6,Das Leben danach,Abgesägte Schrotflinte,['Crystal F'],Crystal F,1,0,1,DEVY82000223,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=QLvZVY_iiUc,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Abgesägte Schrotflinte.mp3,horrorcore 1,71e4dd64-6479-45be-b9a0-37d4edc364fa,Das Leben danach,Schockschwerenot,['Crystal F'],Crystal F,2,0,2,DEVY82000317,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=VJESTJWnRhU,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Schockschwerenot.mp3,horrorcore -2,c6b0ce24-b75b-40ad-a12a-1fa8a412dc14,Das Leben danach,Genug,['Crystal F'],Crystal F,3,0,3,DEVY82000308,2021-04-30,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,e9043dfa-189e-4caa-94c8-7e329d009389,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851604161,https://www.youtube.com/watch?v=C0-n46T22vo,youtube,horrorcore/Crystal F/Genug,horrorcore/Crystal F/Genug/Genug.mp3,horrorcore -3,d01df009-40cf-4bae-8ab4-19e70c552feb,Du willst mit mir gehen,Du willst mit mir gehen,['Crystal F'],Crystal F,4,0,4,DEVY82000296,2021-04-02,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,2659e838-ac3b-425b-935d-7cb93043bb3f,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4062851783668,https://www.youtube.com/watch?v=D0rYWsUgDuQ,youtube,horrorcore/Crystal F/Du willst mit mir gehen,horrorcore/Crystal F/Du willst mit mir gehen/Du willst mit mir gehen.mp3,horrorcore +2,c6b0ce24-b75b-40ad-a12a-1fa8a412dc14,Das Leben danach,Genug,['Crystal F'],Crystal F,3,0,3,DEVY82000308,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=C0-n46T22vo,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Genug.mp3,horrorcore +3,d01df009-40cf-4bae-8ab4-19e70c552feb,Das Leben danach,Du willst mit mir gehen,['Crystal F'],Crystal F,4,0,4,DEVY82000296,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=D0rYWsUgDuQ,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Du willst mit mir gehen.mp3,horrorcore 4,5a3d0f0f-d847-4678-b14d-f0875339ec13,Das Leben danach,Komm wir tun mir weh,['Crystal F'],Crystal F,5,0,5,DEVY82000318,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=3Hq0_qc3zqo,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Komm wir tun mir weh.mp3,horrorcore 5,8426e0e1-e14b-48ec-8e53-950fdf3b8754,Das Leben danach,S4distentreff 4,"['Crystal F', 'MXP', 'Dollar John', 'G-Ko']",Crystal F,6,0,6,DEVY82000319,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=sFmYIN0JNec,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/S4distentreff 4.mp3,horrorcore 6,1543f558-4d54-4047-a6aa-affd02e89ab4,Das Leben danach,Stehen geblieben,['Crystal F'],Crystal F,7,0,7,DEVY82000320,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=V65bn2jN4ZE,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Stehen geblieben.mp3,horrorcore 7,ccf6d043-7157-492b-bca0-78a24c0c8372,Das Leben danach,"Blau, grün, gelb","['Crystal F', 'Ruffiction']",Crystal F,8,0,8,DEVY82000321,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=Mo7hZ984faU,youtube,horrorcore/Crystal F/Das Leben danach,"horrorcore/Crystal F/Das Leben danach/Blau, grün, gelb.mp3",horrorcore 8,41ad47ab-0337-4fcc-b369-5a4b1e12dc3c,Das Leben danach,Was fühlst du noch,"['Crystal F', 'Zero/Zero', 'Nils Davis', 'Taha']",Crystal F,9,0,9,DEVY82000322,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=T15QiksB7do,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Was fühlst du noch.mp3,horrorcore -9,ed6cc3e1-d493-4a51-973c-3adc1a6ea978,Das Leben danach,Katzen,"['Crystal F', 'Kito', 'Kirby']",Crystal F,10,0,10,DEVY82000323,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=eKCpu74GYxs,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Katzen.mp3,horrorcore -10,b49a466f-e77b-465d-9c01-06298efb0c9d,Das Leben danach,Wach sein,['Crystal F'],Crystal F,11,0,11,DEVY82000324,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=dboTFFBUPW0,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Wach sein.mp3,horrorcore -11,86b43bec-eea6-40ae-8624-c1e404204ba1,Das Leben danach,Rote Augen,['Crystal F'],Crystal F,12,0,12,DEVY82000325,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=zvYHKYz6AGI,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Rote Augen.mp3,horrorcore -12,2a3dc1ae-6752-420f-b1d3-ca9e26a15c48,Das Leben danach,Schlechtes Essen,['Crystal F'],Crystal F,13,0,13,DEVY82000326,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=XAfpge1FxLY,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Schlechtes Essen.mp3,horrorcore +9,b49a466f-e77b-465d-9c01-06298efb0c9d,Das Leben danach,Wach sein,['Crystal F'],Crystal F,11,0,11,DEVY82000324,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=dboTFFBUPW0,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Wach sein.mp3,horrorcore +10,86b43bec-eea6-40ae-8624-c1e404204ba1,Das Leben danach,Rote Augen,['Crystal F'],Crystal F,12,0,12,DEVY82000325,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=zvYHKYz6AGI,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Rote Augen.mp3,horrorcore +11,2a3dc1ae-6752-420f-b1d3-ca9e26a15c48,Das Leben danach,Schlechtes Essen,['Crystal F'],Crystal F,13,0,13,DEVY82000326,2021-06-11,2021,5cfecbe4-f600-45e5-9038-ce820eedf3d1,1aeb676f-e556-4b17-b45e-64ab69ef0375,5cfecbe4-f600-45e5-9038-ce820eedf3d1,Official,13,deu,Album,,XW,4260526714133,https://www.youtube.com/watch?v=XAfpge1FxLY,youtube,horrorcore/Crystal F/Das Leben danach,horrorcore/Crystal F/Das Leben danach/Schlechtes Essen.mp3,horrorcore