Dapatkan musik VK melalui API pihak ketiga

Kali ini, bisnis dimulai setelah menutup metode audio dalam metode eksekusi.


Saya memutuskan untuk melihat bagaimana situs yang menyediakan kemampuan untuk mengunduh menerima musik. Saya tertarik pada situs vrit.me.

Saya naik ke tab jaringan dan melihat permintaan yang menarik:

foto




Artinya, Anda dapat memalsukan permintaan POST ke situs ini, dan menggunakannya sebagai API untuk musik vk, yang segera saya implementasikan:

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) 

Akibatnya, saya menerima jawaban berikut:

 {'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'}]}} 

TAPI! karena setiap tautan ke VK audio dilampirkan ke alamat IP komputer,



kemudian ketika saya membukanya di pc saya, saya mendapat kesalahan:



Lebih lanjut, saya masih memutuskan untuk melihat bagaimana tautan dihasilkan di situs web vrit.me itu sendiri. Ternyata tautan ini diganti menjadi tautan lain dan sebagai hasilnya, hasilnya adalah tautan formulir

 https://vrit.me/download?artist= &title=&url=https://cs1-60v4.vkuseraudio.net/p20/6d11e54193b7e0.mp3?extra=CZi_FWKxxoYdOTg7Sz4cksgJ_l12bqsxH8wZFPRoN6t7qf4at_MDouTA6MDmsLiaoFrDJDswVzKozagVNVCskf3LiR3ry-JvP9WHgisWn7nq7BradXYcffgAlQH2VTWoTFDgpVwhdRZMUV6ATpr6KQ 



Artinya, kita hanya perlu memasukkan tautan yang diterima ke tautan lain. Implementasi:

 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) 

Metode lain dengan audio


Saya juga mencoba metode panggilan seperti "audio.getById", "audio.search", "audio.getCount", "audio.getLyrics", "audio.getAlbums" tetapi hanya satu di antaranya yang berfungsi "audio.search", dan lalu, Anda tidak dapat mencari musik pengguna, itu hanya mungkin dalam pencarian global. Kode:

 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) 

Kode akhir
 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 


Anda dapat memanggil kelas ini seperti ini:

 import bot_vk#pip install bot_vk==1.7 info1 = bot_vk.audio.get(owner_id=1234567) info2 = bot_vk.audio.search(q="imagine dragons") 

PS Artikel ini menyajikan contoh mendapatkan musik dari salah satu situs. Ada banyak situs serupa lainnya dari mana Anda juga dapat membuat "API". Kemungkinan besar situs vrit.me akan segera berhenti berlaku, dan perlu untuk menggunakan situs lain.
PERHATIAN! Penulis posting ini tidak bertanggung jawab atas tindakan Anda. Posting ini dibuat hanya untuk tujuan pendidikan!

Source: https://habr.com/ru/post/id429942/


All Articles