Last active
August 25, 2020 00:43
-
-
Save ric2b/142544f7786678ca3ac799fe08be8047 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import csv | |
import glob | |
from collections import defaultdict | |
# run from the directory you extracted the takeout zip/tar files into | |
takeout_sections = glob.glob('takeout-*') | |
playlist_directories = [glob.glob(f'{section}/Takeout/Google Play Music/Playlists/*') for section in takeout_sections] | |
playlist_directories_flat = [item for sublist in playlist_directories for item in sublist] | |
playlist_tracks = defaultdict(dict) | |
for playlist in playlist_directories_flat: | |
playlist_name = playlist.split('/')[-1] | |
tracks = {} | |
for track in glob.glob(f'{playlist}/Tracks/*.csv'): | |
title, _, artist, _, _, _, _, index = list(csv.reader(open(track)))[1] | |
tracks[int(index)] = {'artist': artist, 'title': title} | |
playlist_tracks[playlist_name].update(tracks) | |
for playlist_name, tracks in playlist_tracks.items(): | |
indexes = sorted(tracks.keys()) | |
with open(f'ibroadcast_{playlist_name}.csv', 'w') as playlist_file: | |
for index in indexes: | |
track = tracks[index] | |
playlist_file.write(f"{track['title']} by {track['artist']}\n") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment