def result(): lyrics = False query = request.args.get('query') lyrics_ = request.args.get('lyrics') if lyrics_ and lyrics_.lower() != 'false': lyrics = True if 'saavn' not in query: return jsonify(jiosaavn.search_for_song(query, lyrics)) try: if '/song/' in query: print("Song") song_id = jiosaavn.get_song_id(query) song = jiosaavn.get_song(song_id, lyrics) return jsonify(song) elif '/album/' in query: print("Album") id = jiosaavn.get_album_id(query) songs = jiosaavn.get_album(id, lyrics) return jsonify(songs) elif '/playlist/' or '/featured/' in query: print("Playlist") id = jiosaavn.get_playlist_id(query) songs = jiosaavn.get_playlist(id, lyrics) return jsonify(songs) except Exception as e: print_exc() error = {"status": True, "error": str(e)} return jsonify(error) return None
def get_song(): lyrics = False id = request.args.get('id') lyrics_ = request.args.get('lyrics') if lyrics_ and lyrics_.lower() != 'false': lyrics = True if id: resp = jiosaavn.get_song(id, lyrics) if not resp: error = {"status": False, "error": 'Invalid Song ID received!'} return jsonify(error) else: return jsonify(resp) else: error = { "status": False, "error": 'Song ID is required to get a song!' } return jsonify(error)
def main(): isdir = os.path.isdir(download_path) if not isdir: os.mkdir(download_path) while True: song_name = input("Enter Song Name: ") if song_name == "": continue else: try: song_data = jiosaavn.search_for_song( song_name.replace('with lyrics', '').strip()) print("Which one of these you want?") for i in range(len(song_data)): song_name = song_data[i]['title'] subtitle = song_data[i]['description'] pre = "{}. ".format(i + 1) print("{}{}\n{}{}".format(pre, song_name, ' ' * len(pre), subtitle)) pref = input("Enter song number(Hit Enter for Default i,e 1): " ).replace(".", '') if pref == '': pref = 1 elif pref.isnumeric and int(pref) <= len(song_data): pref = int(pref) else: print("Invalid Value Entered") continue song_id = song_data[pref - 1]['id'] song_data = jiosaavn.get_song(str(song_id)) song_name = song_data['song'].replace('?', '').replace(':', '').strip() artist_name = song_data['primary_artists'] featured_artist = song_data['featured_artists'] song_title = "{} - {}".format(song_name, artist_name) audio_path = "{}/{}.m4a".format(download_path, song_title) img_path = "{}/{}.jpg".format(download_path, song_title) album = song_data['album'] year = song_data['year'] lang = (song_data['language']) lang = lang[0].upper() + lang[1:] image_url = song_data['image'] print("Selected {} by {}".format(song_name, artist_name)) t1 = threading.Thread(target=dwnld_img, args=(image_url, img_path)) t1.start() dwnld_sng(song_dwn_url=song_data['media_url'], song_title=song_title) fname = "{}/{} - {}.m4a".format(download_path, artist_name, song_name) t1.join() #print("Saving matadata") save_metadata(audio_path=audio_path, song_name=song_name, artist_name=artist_name, featured_artist=featured_artist, img_path=img_path, album=album, year=year, genre=lang) os.remove(img_path) except Exception as e: print("Failed to Download Song") print("ERROR: {}".format(e))