Added premium quality override

This commit is contained in:
Footsiefat 2021-10-20 08:16:04 +13:00 committed by GitHub
parent 692824be96
commit bc72cd5d2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,6 +10,7 @@ import platform
import re import re
import sys import sys
import time import time
from getpass import getpass
import music_tag import music_tag
import requests import requests
@ -17,13 +18,13 @@ from librespot.audio.decoders import AudioQuality, VorbisOnlyAudioQuality
from librespot.core import Session from librespot.core import Session
from librespot.metadata import TrackId from librespot.metadata import TrackId
from pydub import AudioSegment from pydub import AudioSegment
from getpass import getpass
SESSION: Session = None SESSION: Session = None
ROOT_PATH = "ZSpotify Music/" ROOT_PATH = "ZSpotify Music/"
SKIP_EXISTING_FILES = True SKIP_EXISTING_FILES = True
MUSIC_FORMAT = "mp3" # or "ogg" MUSIC_FORMAT = "mp3" # or "ogg"
FORCE_PREMIUM = False
sanitize = ["\\", "/", ":", "*", "?", "'", "<", ">", '"'] sanitize = ["\\", "/", ":", "*", "?", "'", "<", ">", '"']
# miscellaneous functions for general use # miscellaneous functions for general use
@ -73,7 +74,7 @@ def login():
except RuntimeError: except RuntimeError:
pass pass
while True: while True:
user_name = input("UserName: ") user_name = input("Username: ")
password = getpass() password = getpass()
try: try:
SESSION = Session.Builder().user_pass(user_name, password).create() SESSION = Session.Builder().user_pass(user_name, password).create()
@ -256,11 +257,12 @@ def get_song_info(song_id):
def check_premium(access_token): def check_premium(access_token):
global FORCE_PREMIUM
""" If user has spotify premium return true """ """ If user has spotify premium return true """
headers = {'Authorization': f'Bearer {access_token}'} headers = {'Authorization': f'Bearer {access_token}'}
resp = requests.get('https://api.spotify.com/v1/me', resp = requests.get('https://api.spotify.com/v1/me',
headers=headers).json() headers=headers).json()
return bool("product" in resp and resp["product"] == "premium") return bool(("product" in resp and resp["product"] == "premium") or FORCE_PREMIUM)
# Functions directly related to modifying the downloaded audio and its metadata # Functions directly related to modifying the downloaded audio and its metadata
@ -501,4 +503,4 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
main() main()