Ich habe mich entschlossen zu sehen, wie Websites, die das Herunterladen ermöglichen, Musik empfangen. Ich war an der Seite vrit.me interessiert.
Ich stieg in den Netzwerk-Tab und sah eine interessante Anfrage:
Das heißt, Sie können eine POST-Anfrage an diese Site fälschen und sie als API für vk music verwenden, die ich sofort implementiert habe:
import json,requests s = requests.post("https://vrit.me/data.php",data={ "method": "audio.get", "count": 1000000000, "offset": 0, "user_id":-52922518}) s = json.loads(s.text) print(s)
Als Ergebnis erhielt ich die folgende Antwort:
{'response': {'count': 2, 'items': [{'id': 456239018, 'owner_id': -52922518, 'artist': 'CORVUS', 'title': ' []', 'duration': 126, 'date': 1474194635, 'url': 'https://cs1-81v4.vkuseraudio.net/p18/894f30b49d3571.mp3?extra=5xovvbyqXrdr0Ixl9FLteg-pRRC29pGr_yO8mDgqNN_4kLlxJe1gHST8S8bVy2IQt0wYFAC1tMCnF7p5ujeB7K1jFPfYSCaEuxjh5P92VT81AMd9AlIJx2GQp613xHxCRbXCynv6fqdhFcPwvyZaRvg', 'lyrics_id': 370291093, 'genre_id': 18, 'is_licensed': True, 'is_hq': True, 'track_genre_id': 11, 'access_key': '7b762a5b22b452d0ca'}, {'id': 456239017, 'owner_id': -52922518, 'artist': 'CORVUS', 'title': ' []', 'duration': 132, 'date': 1470474699, 'url': 'https://cs1-81v4.vkuseraudio.net/p4/7f6c08b134e0a7.mp3?extra=MgBr8oDpO-7f2l_qmtHZGAMD608vcqWxA8OLNgcyZDdA8aVc2Jlj9bDW48FW8S5zDA9jO-geAEUaF_LvFUP_DFiGZEFo-5B92YhcMYMpyuvi6tFt_nO4QVwjJjNhG-Ln3dOfkC4KY2Cywk_attG5fSQ', 'lyrics_id': 370291112, 'genre_id': 18, 'is_licensed': True, 'is_hq': True, 'track_genre_id': 11, 'access_key': '8717a672801e7a15fa'}]}}
ABER! weil Jeder Link zum Audio-VK wird an die IP-Adresse des Computers angehängt.

Als ich es dann auf meinem PC öffnete, bekam ich eine Fehlermeldung:

Außerdem habe ich mich immer noch entschlossen zu sehen, wie der Link auf der vrit.me-Website selbst generiert wird. Es stellte sich heraus, dass
dieser Link durch einen
anderen Link ersetzt wird und die Ausgabe daher ein Link des Formulars ist
https://vrit.me/download?artist= &title=&url=https://cs1-60v4.vkuseraudio.net/p20/6d11e54193b7e0.mp3?extra=CZi_FWKxxoYdOTg7Sz4cksgJ_l12bqsxH8wZFPRoN6t7qf4at_MDouTA6MDmsLiaoFrDJDswVzKozagVNVCskf3LiR3ry-JvP9WHgisWn7nq7BradXYcffgAlQH2VTWoTFDgpVwhdRZMUV6ATpr6KQ

Das heißt, wir müssen nur den empfangenen Link in einen anderen Link eingeben. Implementierung:
for i in range(len(data["response"]["items"])): url = data["response"]["items"][i]["url"] title = data["response"]["items"][i]["title"] artist = data["response"]["items"][i]["artist"] data["response"]["items"][i]["url"] = "https://vrit.me/download?title={title}&artist={artist}&url={url}".format(url=url,title=title,artist=artist)
Andere Methoden mit Audio
Ich habe auch versucht, Methoden wie "audio.getById", "audio.search", "audio.getCount", "audio.getLyrics", "audio.getAlbums" aufzurufen, aber nur eine davon funktioniert mit "audio.search" und Dann können Sie die Musik des Benutzers nicht durchsuchen. Dies ist nur bei der globalen Suche möglich. Code:
s = requests.post("https://vrit.me/data.php",data={ "method": "audio.search", "count": 3, "offset": 0, "q":q}) data = json.loads(s.text) if "response" in data: data = data["response"] for i in range(len(data["items"])): url = data["items"][i]["url"] title = data["items"][i]["title"] artist = data["items"][i]["artist"] data["items"][i]["url"] = "https://vrit.me/download?title={title}&artist={artist}&url={url}".format(url=url,title=title,artist=artist)
Endgültiger Code import requests,json class audio(): def get(owner_id): s = requests.post("https://vrit.me/data.php",data={ "method": "audio.get", "count": 1000000000, "offset": 0, "user_id": owner_id}) data = json.loads(s.text) if "response" in data: data = data["response"] for i in range(len(data["items"])): url = data["items"][i]["url"] title = data["items"][i]["title"] artist = data["items"][i]["artist"] data["items"][i]["url"] = "https://vrit.me/download?title={title}&artist={artist}&url={url}".format( url=url, title=title,artist=artist) return data def search(q): s = requests.post("https://vrit.me/data.php",data={ "method": "audio.search", "count": 300, "offset": 0, "q":q}) data = json.loads(s.text) if "response" in data: data = data["response"] for i in range(len(data["items"])): url = data["items"][i]["url"] title = data["items"][i]["title"] artist = data["items"][i]["artist"] data["items"][i]["url"] = "https://vrit.me/download?title={title}&artist={artist}&url={url}".format( url=url, title=title,artist=artist) return data
Sie können diese Klasse folgendermaßen aufrufen:
import bot_vk
PS Dieser Artikel enthält ein Beispiel für das Abrufen von Musik von einer der Websites. Es gibt viele weitere ähnliche Websites, auf denen Sie auch eine "API" erstellen können. Höchstwahrscheinlich wird die Site
vrit.me bald nicht mehr gültig sein und es wird notwendig sein, andere Sites zu verwenden.
ACHTUNG! Der Autor dieses Beitrags ist für keine Ihrer Handlungen verantwortlich. Dieser Beitrag wurde nur zu Bildungszwecken erstellt!