-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmerge.py
More file actions
60 lines (48 loc) · 1.92 KB
/
merge.py
File metadata and controls
60 lines (48 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import sys
import spotipy
import spotipy.oauth2 as oauth2
import spotipy.util as util
def createPlaylistName(playlistNames):
newPlaylistName = "Merge - "
for name in playlistNames:
n = str(name)
nList = n.split(" ")
for word in nList:
newPlaylistName += word[0].upper()
newPlaylistName += " "
return newPlaylistName
def addTracksAndPlaylistNames(playlistIDs, spotify):
playlistNames = []
tracks = []
playlistIDs[0] = playlistIDs[0][:-1]
for id in playlistIDs:
indivId = id.split(":")
pID = indivId[4]
userID = indivId[2]
playlist = spotify.user_playlist(userID, playlist_id=pID)
playlistNames.append(playlist["name"])
initTracks = playlist["tracks"]["items"]
for t in initTracks:
if t not in tracks:
tracks.append(t["track"]["id"])
return {"names": playlistNames, "tracks": tracks}
def createPlaylist(spotify, playlistIDsFile, username):
playlistNamesAndTracks = addTracksAndPlaylistNames(playlistIDsFile.readlines(), spotify)
tracks = playlistNamesAndTracks["tracks"]
newPlaylist = spotify.user_playlist_create(username, createPlaylistName(playlistNamesAndTracks["names"]))
while len(tracks) > 0:
spotify.user_playlist_add_tracks(username, newPlaylist["id"], tracks[:100])
tracks = tracks[100:]
scope = "user-library-read playlist-modify-public user-library-modify"
username = str(raw_input("What is the username? "))
clientCredits = oauth2.SpotifyClientCredentials()
token = util.prompt_for_user_token(username, scope)
if token:
print("Authenticated!")
spotify = spotipy.Spotify(client_credentials_manager=clientCredits, auth=token, requests_timeout=10)
else:
print("Unable to authenticate. Exiting")
sys.exit(0)
playlistIDsToMerge = open("playlistsToMerge.txt")
createPlaylist(spotify, playlistIDsToMerge, username)
print("We should be done now.")