-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
76 lines (57 loc) · 2.78 KB
/
main.py
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from dataclasses import dataclass
from pip import main
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
from spotipy.oauth2 import SpotifyOAuth
from dotenv import load_dotenv
import os
import json
from datetime import date
def search_artist():
load_dotenv('secret.env')
sp = spotipy.Spotify(client_credentials_manager=SpotifyClientCredentials(client_id=os.getenv('CLIENT_ID'),client_secret=os.getenv('CLIENT_SECRET')))
def getPlaylists(playlists):
load_dotenv('secret.env')
playlist_ids = {"name" : "", "id" : ""}
scope = 'playlist-read-private'
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=os.getenv('CLIENT_ID'),client_secret=os.getenv('CLIENT_SECRET'),redirect_uri="http://localhost",scope=scope))
results = sp.current_user_playlists(limit=50)
for i, item in enumerate(results['items']):
if item["name"] == "Release Radar" or item["name"] == "Discover Weekly":
playlist_ids["name"] = item['name']
playlist_ids["id"] = item['id']
playlists.append(playlist_ids.copy())
def tracks_in_playlist(playlists, name, tracks):
load_dotenv('secret.env')
scope = 'playlist-read-private'
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=os.getenv('CLIENT_ID'),client_secret=os.getenv('CLIENT_SECRET'),redirect_uri="http://localhost",scope=scope))
tracks_ids = {"name" : "", "id" : ""}
for playlist in playlists:
if playlist["name"] == name:
results = sp.playlist_items(playlist['id'])
for i, item in enumerate(results['items']):
tracks_ids["name"] = item['track']['name']
tracks_ids["id"] = item['track']["id"]
tracks.append(tracks_ids.copy())
return tracks
def add_tracks_to_playlist(tracks, playlist_name):
load_dotenv('secret.env')
scope = 'playlist-modify-public'
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=os.getenv('CLIENT_ID'),client_secret=os.getenv('CLIENT_SECRET'),redirect_uri="http://localhost",scope=scope))
user_id = sp.me()['id']
sp.user_playlist_create(user_id, playlist_name, public=True)
new_playlist = sp.current_user_playlists(limit=1)
playlist_id = new_playlist["items"][0]["id"]
for track in tracks :
sp.playlist_add_items(playlist_id, [track["id"]])
if __name__ == '__main__':
today = date.today()
d4 = today.strftime("%b-%d-%Y")
playlists = []
getPlaylists(playlists)
tracks_rr = []
tracks_dw = []
tracks_rr = tracks_in_playlist(playlists, "Release Radar", tracks_rr)
tracks_dw = tracks_in_playlist(playlists, "Discover Weekly", tracks_dw)
add_tracks_to_playlist(tracks_rr, "Release Radar " + d4)
add_tracks_to_playlist(tracks_dw, "Discover Weekly " + d4)