def add_songs(): # get links to genius lyrics searches from browser history links = get_genius_lookups() uris = [] for link in links: # extract song title and artist. get uri info = scrape_song_info(link) uri = get_spotify_uri(info[0], info[1]) if uri: uris.append(uri) # create a new playlist playlist_id = create_playlist() # add all songs into new playlist request_data = json.dumps(uris) query = "https://api.spotify.com/v1/playlists/{}/tracks".format(playlist_id) response = requests.post( query, data=request_data, headers={ "Content-Type": "application/json", "Authorization": "Bearer {}".format(spotify_token) } ) response_json = response.json() return response_json
def main(): if FLAGS.local_wl: # export or print Watch Later playlist from local HTML file return save_data(use_local_file(FLAGS=FLAGS)) if FLAGS.move: if FLAGS.move.endswith(".csv"): df = pd.read_csv(FLAGS.move) urls = df["URL"].str.split("=").str[1] print("\nAUTHORIZE DESTINATION ACCOUNT:") destination = Playlist(playlist_id=FLAGS.to, youtube=build_youtube(auth=True)) # add videos to destination playlist return destination.add_videos(urls) else: print("\nAUTHORIZE ORIGIN ACCOUNT:") origin = Playlist(playlist_id=FLAGS.move, youtube=build_youtube(auth=True)) origin.fetch_videos() print("\nAUTHORIZE DESTINATION ACCOUNT:") destination = Playlist(playlist_id=FLAGS.to, youtube=build_youtube(auth=True)) # add videos to destination playlist return destination.add_videos(origin.get_video_ids()) if FLAGS.public: # Build using only API key - no user authentication youtube = build_youtube(auth=False) else: # Get credentials and set up API youtube = build_youtube(auth=True) if FLAGS.create_playlist: # create new playlist create_playlist(youtube, FLAGS.create_playlist, FLAGS.description) if FLAGS.export_videos: # get data on each video in playlist exp_playlist = Playlist(playlist_id=FLAGS.export_videos, youtube=youtube) save_data(data=exp_playlist.export_videos())
def index(): playlist_url = create_playlist("CD1025") return """ <html> <head> <title>Radio2Spotify</title> <script> function changeStation(){ xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState == 4) { document.getElementById("playlist").src=xmlhttp.responseText; } } var myselect = document.getElementById("selectOpt"); var station = myselect.options[myselect.selectedIndex].value; xmlhttp.open("GET", station, true); xmlhttp.send(); } </script> </head> <body> <div> <h2 id='title'> Radio2Spotify </h2> Station: <select onchange="changeStation()" id="selectOpt"> <option value="CD1025">CD1025</option> <option value="WXRT">WXRT</option> </select> <br> <iframe src="%s" width="300" height="380" frameborder="0" allowtransparency="true" id="playlist"></iframe> </div> <div class ='description'> This app scrapes the latest songs played on your favorite radio station and creates a Spotify playlist from them. This is meant for radio stations that do not have online streaming available. The code for this app can be found on <a href="https://github.com/andland/radio2spotify">Github</a>. </div> </body> </html> """ % playlist_url
def index(): playlist_url = create_playlist("CD1025") return """ <html> <head> <title>Radio2Spotify</title> <script> function changeStation(){ xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState == 4) { document.getElementById("playlist").src=xmlhttp.responseText; } } var myselect = document.getElementById("selectOpt"); var station = myselect.options[myselect.selectedIndex].value; xmlhttp.open("GET", station, true); xmlhttp.send(); } </script> </head> <body> <div> <h2 id='title'> Radio2Spotify </h2> Station: <select onchange="changeStation()" id="selectOpt"> <option value="CD1025">CD1025</option> <option value="WXRT">WXRT</option> </select> <br> <iframe src="%s" width="300" height="380" frameborder="0" allowtransparency="true" id="playlist"></iframe> </div> <div class ='description'> This app scrapes the latest songs played on your favorite radio station and creates a Spotify playlist from them. This is meant for radio stations that do not have online streaming available. The code for this app can be found on <a href="https://github.com/andland/radio2spotify">Github</a>. </div> </body> </html> """%playlist_url
def upload_folder(): print(banner) directory, playlist_id = parse_playlist_and_directory() video_dict = create_video_dict(directory) check_user_want_to_continue(directory, video_dict) video_dict = check_user_want_to_filter_videos(video_dict) if playlist_id is None: # créer une playlist depuis le dossier courant playlist_id = create_playlist(directory) else: print("using provided playlist") check_playlist_valid(playlist_id) # upload toutes les vidéos du folder et récupérer leurs id uploaded_video_ids, _ = upload_all_videos(directory, video_dict) # ajouter les vidéos à la playlist insert_videos_playlist(uploaded_video_ids, playlist_id)
def read_playlist(token, username): sp = spotipy.Spotify(auth=token) playlists = sp.user_playlists(username) i = 0 for playlist in playlists['items']: print('\n {0} - '.format(i), playlist['name']) print('\ttotal tracks', playlist['tracks']['total']) i += 1 playlists_to_transfer = ask_playlist() print() for l in range(len(playlists_to_transfer)): sp_playlist_name = playlists['items'][int( playlists_to_transfer[l])]['name'] print('\n', sp_playlist_name) results = sp.playlist(playlists['items'][int( playlists_to_transfer[l])]['id'], fields="tracks,next") tracks = results['tracks'] musics_id_list = show_tracks(tracks) # HERE STARTS TO SEND THE VIDEOS TO YOUTUBE yt_playlist_id = ytplaylist.create_playlist(sp_playlist_name) ytinsert.send_to_ytplaylist(ytinsert.youtube, yt_playlist_id, musics_id_list)
import os from create_playlist import create_playlist from script import scrape from train import train if __name__ == "__main__": search_term = input("Enter Search Term") os.remove("audio_feat.csv") print("Searching spotify") scrape("random music") scrape(search_term) print("Training model") train() print("Creating your playlist") create_playlist(search_term)
def get_station_playlist(station): return create_playlist(station)