def homepage(): utils.connect() if request.method == "GET": return render_template("musicboxhome.html"); else: global current_user button = str(request.form["button"]) if button == "Login": user = request.form.get("login-or-register") current_user = utils.add_or_view_user(user) session["user"]=current_user songs = utils.get_songs(current_user) return redirect("/"+current_user)
def play_music_in_dir(self, dir_path, n_songs=1): songs = get_songs(dir_path) rn.shuffle(songs) if len(songs) >= n_songs: print("About to play: {}".format(songs[:n_songs])) for i in range(n_songs): os.system('mplayer \"{}\"'.format(songs[i])) else: print("About to play: {}".format(songs)) for song in songs: os.system('mplayer \"{}\"'.format(songs[i]))
def login(username): global current_user global current_artist global current_artistID utils.connect() if request.method == "GET": songs = utils.get_songs(current_user) current_user=session["user"] return render_template("login.html",user=current_user,songs=songs) else: button = str(request.form["button"]) if button == "Close account": utils.remove_user(current_user) return redirect("/") elif button == "Search": current_artist = request.form.get("search") current_artistID = str(musicservices.getID( musicservices.getArtistInfo( utils.curate(current_artist)))) session["artist"]=current_artist session["aID"]=current_artistID return redirect("/"+current_user+"/"+current_artistID)
username = sys.argv[1] URL = sys.argv[2] playlist_name = sys.argv[3] else: print("Usage : %s username" % (sys.argv[0], )) sys.exit() token = util.prompt_for_user_token(username, SCOPE, client_id=CLIENT_ID, client_secret=CLIENT_ID_SECRET, redirect_uri='http://localhost/') #create spotipy agent sp = spotipy.Spotify(auth=token) #get artist and song names from youtube link artists, songs = get_songs(URL) print('got youtube links...') #create a list of spotify song urls song_urls = [] for i in range(len(songs)): try: results = sp.search(q='track:' + songs[i] + ",", type='track,artist') song = None for item in results['tracks']['items']: if item['artists'][0]['name'] == artists[i]: song = item break if song is None: print('couldnt find song: ' + songs[i] + " by: " + arists[i]) song_urls.append(song['external_urls']['spotify']) except Exception as e:
print("Split_50:", len(slices_50)) print("Split_100:", len(slices_100), "\n") pp = pprint.PrettyPrinter(indent=2) sp = utils.get_spotify_client() songs_dict = defaultdict(list) for i, sslice in enumerate(slices_50): print("\033[K\033[1000DGetting Song Metadata: " + str(i + 1) + "/" + str(len(slices_50)) + " Dropped: " + str((i * 50) - len(songs_dict)), flush=True, end='') songs_dict = utils.get_songs(sp, sslice, songs_dict) l1_total = len(songs_dict) print("\nFinished stage 1 with", l1_total, "out of", len(songs), "songs") for i, sslice in enumerate(slices_100): print("\033[K\033[1000DGetting Song Attributes: " + str(i + 1) + "/" + str(len(slices_100)) + " Dropped: " + str(l1_total - len(songs_dict)), flush=True, end='') songs_dict = utils.get_song_info(sp, sslice, songs_dict) print("\nDropped", len(songs) - len(songs_dict), "out of", len(songs), "songs") #print("Dropped", 300 - len(songs_dict), "out of", 300, "songs") print("missing_reason info") pp.pprint(dict(utils.get_missing()))
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Tue Nov 6 20:53:36 2018 @author: Arpit """ from utils import save_preds, get_songs, split_data, to_label from data_processing import get_image_data from model import Model # get names of all the songs songs = get_songs() # split them in training and valid sets according to given percentage songs_train, songs_valid = split_data(songs, 0.85) # get actual spectrogram(2d np.array) data for the songs X_train, Y_train = get_image_data('train', songs_train) X_valid, Y_valid = get_image_data('valid', songs_valid) # get names and spectrogram data for the final testing set(which is to be uploaded) X_test, keys = get_image_data('test') model = Model(False) model.train(X_train, Y_train, X_valid, Y_valid, 5000) preds = model.predict(X_test) preds = [to_label(pred) for pred in preds] save_preds(keys, preds, 'predictions.csv')
label = [0] * 10 label[label_index(song.split('.')[0])] = 1 cnt = int(size / input_size) for i in range(cnt): X.append(abs(scipy.fft(raw[input_size * i:input_size * (i + 1)]))) Y.append(label) X = np.array(X) Y = np.array(Y) return X, Y # gets all songs' names songs = get_songs() #splits them into training and validation sets training_songs, validation_songs = split_data(np.array(songs), 0.85) # gets fourier transformed data for given songs X, Y = get_song_data(training_songs) #fits and transforms a normalizer norm = Normalizer(norm='l1').fit(X) X = norm.transform(X) # gets fourier transformed data of validation set and transforms according to training set X_valid, Y_valid = get_song_data(validation_songs) X_valid = norm.transform(X_valid)