Skip to content

Instantly share code, notes, and snippets.

@ric2b
Last active August 25, 2020 00:43
Show Gist options
  • Save ric2b/142544f7786678ca3ac799fe08be8047 to your computer and use it in GitHub Desktop.
Save ric2b/142544f7786678ca3ac799fe08be8047 to your computer and use it in GitHub Desktop.
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