Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests, os, tqdm
- from getpass import getpass
- APP_ID = 2685278
- APP_SECRET = "hHbJug59sKJie78wjrH8"
- DOWNLOAD_FOLDER = "/Users/riza/Music/"
- class VKMusicDownloader(object):
- def __init__(self, login, password):
- if os.path.exists(".token"):
- storage = open(".token").read().split("\n")
- self.token = storage[0]
- self.userid = int(storage[1])
- return
- response = self.__request__("https://oauth.vk.com/token?grant_type=password&client_id={0}&client_secret={1}&username={2}&password={3}&v=5.71&scope=audio".format(APP_ID, APP_SECRET, login, password)).json()
- print(response)
- self.token = response["access_token"]
- self.userid = response["user_id"]
- self.token = self.__request__("https://api.vk.com/method/auth.refreshToken?access_token={0}&receipt=dMjd6UruIpk%3AAPA91bHuDjuI_IpvRd6rA1ocitbkR0iqVi--ytx6c7fbH2smVoNr5rVR2NHEoYuDFdObtwzOl3QuUvAEyaDRyDAi9-G4Qw4OxXFJ7xWajf18OVO-TT4ATuAWsvuy62Kvs9cJLrM4Yit2bcfteFIFFbAlCOzBj0gNmg&v=5.71".format(self.token)).json()["response"]["token"]
- open(".token", "w").write(self.token + "\n" + str(self.userid))
- def __request__(self, url):
- return requests.get(url, headers={"User-Agent": "KateMobileAndroid/51.2 lite-440 (Android 7.1.2; SDK 25; arm64-v8a; Xiaomi Redmi Note 4; en)"})
- def get_audio(self):
- response = self.__request__("https://api.vk.com/method/audio.get?access_token={0}&owner_id={1}&v=5.71".format(self.token, self.userid)).json()
- return response["response"]["items"]
- login = password = ""
- if not os.path.exists(".token"):
- login = input("Введите Логин: ")
- password = getpass("Введите Пароль: ")
- vk = VKMusicDownloader(login, password)
- music = vk.get_audio()
- for k, v in enumerate(music):
- print(str(k+1) + ") " + v["artist"] + " - " + v["title"])
- mid = int(input("Введите номер композиции: "))
- to_download = music[mid-1]
- f = open(DOWNLOAD_FOLDER + to_download["artist"].replace("/", " ") + " - " + to_download["title"].replace("/", " ") + ".mp3", "wb")
- response = requests.get(to_download["url"], stream=True)
- for chunk in tqdm.tqdm(response.iter_content(1024), desc="Скачиваю {0} ...".format(to_download["artist"] + " - " + to_download["title"])):
- f.write(chunk)
- f.close()
- print("Скачано! :)")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement