احصل على موسيقى VK من خلال واجهة برمجة تطبيقات تابعة لجهة خارجية

هذه المرة ، بدأ العمل بعد إغلاق طرق الصوت في طريقة التنفيذ.


قررت أن أرى كيف تتلقى المواقع التي توفر إمكانية تنزيلها الموسيقى. كنت مهتمًا بـ vrit.me.

تسلقت إلى علامة تبويب الشبكة ورأيت طلبًا مثيرًا للاهتمام:

الصورة




أي أنه يمكنك تزوير طلب POST على هذا الموقع ، واستخدامه كواجهة برمجة تطبيقات لموسيقى vk ، والتي قمت بتنفيذها على الفور:

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) 

ونتيجة لذلك ، تلقيت هذه الإجابة:

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

لكن! لأن يتم إرفاق أي ارتباط إلى الصوت VK بعنوان IP للكمبيوتر ،



ثم عندما فتحته على جهاز الكمبيوتر الخاص بي ، تلقيت خطأ:



علاوة على ذلك ، ما زلت قررت أن أرى كيف يتم إنشاء الرابط على موقع vrit.me نفسه. اتضح أن هذا الرابط تم استبداله في رابط آخر ونتيجة لذلك ، فإن الإخراج هو رابط للنموذج

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



أي أننا بحاجة فقط إلى إدخال الرابط المستلم في رابط آخر. التنفيذ:

 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) 

طرق أخرى بالصوت


لقد جربت أيضًا طرق الاتصال مثل "audio.getById" و "audio.search" و "audio.getCount" و "audio.getLyrics" و "audio.getAlbums" ولكن أحدها فقط يعمل "audio.search" و بعد ذلك ، لا يمكنك البحث في موسيقى المستخدم ، إنها ممكنة فقط في البحث العالمي. الكود:

 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) 

الرمز النهائي
 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 


يمكنك استدعاء هذا الفصل على النحو التالي:

 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") 

ملاحظة تقدم هذه المقالة مثالًا للحصول على الموسيقى من أحد المواقع. هناك العديد من المواقع المشابهة التي يمكنك من خلالها إنشاء "API". على الأرجح أن الموقع vrit.me سيتوقف سريان صلاحيته ، وسيكون من الضروري استخدام مواقع أخرى.
انتباه! مؤلف هذا المنشور غير مسؤول عن أي من أفعالك. تم إنشاء هذا المنشور لأغراض تعليمية فقط!

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


All Articles