SoundCloud API في 2026: الحصول على مفتاح والمصادقة وPython
أعادت SoundCloud فتح مفاتيح API في مايو 2026 لمشتركي Artist Pro فقط. كيف تسجّل تطبيقك، وتصادق عبر OAuth 2.1، وتبحث عن المقاطع بلغة Python، وتلتزم بالحدود.
منذ 18 مايو 2026، تصدر SoundCloud مفاتيح API فورًا، لكن لمشتركي Artist Pro فقط، عبر soundcloud.com/you/apps أو أداة سطر الأوامر لديها. وتستخدم الواجهة على https://api.soundcloud.com بروتوكول OAuth 2.1: بيانات اعتماد العميل (client credentials) للمقاطع والمستخدمين والبحث العامة، ويُرسل الرمز في ترويسة "Authorization: OAuth". تدوم الرموز نحو ساعة، ويمكن للتطبيق إنشاء 50 رمزًا كل 12 ساعة، وطلبات البث محدودة بـ 15,000 يوميًا. ومكتبة soundcloud-python القديمة متوقفة؛ استدعِ الواجهة عبر requests.
عادت SoundCloud API مفتوحة، لكن بشرط. فبعد سنوات من إغلاق التسجيل، بدأت SoundCloud إصدار المفاتيح فورًا في 18 مايو 2026، لكن لمشتركي Artist Pro فقط. يشرح هذا الدليل كيف تحصل على مفتاح، وكيف يعمل تدفّق OAuth 2.1، وكيف تبحث عن المقاطع وتحلّ الروابط بلغة Python، والحدود والشروط التي تهمّك.
هل لا يزال بإمكانك الحصول على مفتاح SoundCloud API؟
نعم، إذا دفعت مقابل Artist Pro. ويفسّر التاريخ سبب قول دروس كثيرة عكس ذلك:
| التاريخ | ما الذي تغيّر |
|---|---|
| سبتمبر 2016 | انتقل التسجيل إلى نموذج طلب يُراجَع كل حالة على حدة |
| لاحقًا | توقّف النموذج عن قبول الطلبات، وانتظر المطوّرون سنوات لإعادة فتحه |
| 2025 | صار بإمكان صنّاع المحتوى طلب الوصول عبر المساعد الخاص بـ SoundCloud، مع مراجعة يدوية |
| 18 مايو 2026 | مفاتيح ذاتية الخدمة لمشتركي Artist Pro، تصدر فورًا |
| 16 يونيو 2026 | أداة رسمية لسطر الأوامر لإدارة بيانات الاعتماد، ونشر مواصفة OpenAPI على GitHub |
للتسجيل، سجّل الدخول بحساب Artist Pro، ثم إما أن تملأ النموذج في soundcloud.com/you/apps (الاسم والوصف والموقع والموافقة على الشروط) أو تستخدم أداة سطر الأوامر الموضّحة في دليل التسجيل من SoundCloud. وتحصل على معرّف عميل (client id) وسرّ عميل (client secret).
كيف تعمل المصادقة في SoundCloud API؟
انتقلت SoundCloud إلى OAuth 2.1 في 2024، وتُعامَل كل العملاء على أنها سرّية (confidential)، لذا تحتاج دائمًا إلى السرّ. وبحسب دليل الواجهة هناك تدفّقان:
- Client credentials، للموارد العامة: البحث، والمقاطع، والمستخدمون، وقوائم التشغيل، وتحليل الروابط.
- Authorization code مع PKCE، لأي إجراء يُنفَّذ باسم مستخدم، مثل الرفع أو قراءة إعجاباته.
هناك تفصيلان يُفشلان معظم المحاولات الأولى. يُرسل معرّف العميل والسرّ في ترويسة مصادقة HTTP Basic، لأن إرسالهما في جسم الطلب غير مدعوم. ويُرسل رمز الوصول في الترويسة بصيغة Authorization: OAuth <token>، لا Bearer. والطلبات التي لا تتضمنه تعيد 401؛ أما الطريقة القديمة بإضافة ?client_id= إلى الرابط فأُلغيت في 2021.
تدوم الرموز نحو ساعة. خزّن رمزك وأعد استخدامه: لا يمكن للتطبيق إنشاء أكثر من 50 رمزًا من نوع client credentials في 12 ساعة، و30 في الساعة من عنوان IP واحد.
كيف تستخدم SoundCloud API مع Python؟
صدر آخر إصدار من حزمة soundcloud-python الرسمية في 2015، وهي موسومة بأنها متوقفة، لذا استخدم requests. تحصل الشيفرة التالية على رمز، وتحلّ رابط مقطع، وتبحث عن المقاطع:
import os
import requests
API = "https://api.soundcloud.com"
token = requests.post(
"https://secure.soundcloud.com/oauth/token",
auth=(os.environ["SOUNDCLOUD_CLIENT_ID"], os.environ["SOUNDCLOUD_CLIENT_SECRET"]),
data={"grant_type": "client_credentials"},
).json()["access_token"]
headers = {"Authorization": f"OAuth {token}"}
# Turn a soundcloud.com URL into an API object (the API answers with a redirect).
track = requests.get(
f"{API}/resolve",
headers=headers,
params={"url": "https://soundcloud.com/forss/flickermood"},
).json()
print(track["urn"], track["title"])
# Search tracks, following next_href until there are no more pages.
url, params = f"{API}/tracks", {"q": "lofi", "limit": 50, "linked_partitioning": "true"}
while url:
page = requests.get(url, headers=headers, params=params).json()
for t in page["collection"]:
print(t["urn"], t["title"])
url, params = page.get("next_href"), Noneالحزم غير الرسمية مثل soundcloud-v2 تغلّف الواجهة الداخلية لـ SoundCloud لا واجهة المطوّرين، والمكتبات التي تستخرج معرّف عميل من الموقع لتنزيل الصوت تخالف شروط SoundCloud. فضّل الواجهة الرسمية الآن بعد أن عادت المفاتيح متاحة.
ما أهم نقاط النهاية في SoundCloud API؟
كلها تحت https://api.soundcloud.com، وموصوفة في مواصفة OpenAPI الرسمية:
| نقطة النهاية | ما تعيده |
|---|---|
GET /resolve?url=… | كائن الواجهة المقابل لرابط على soundcloud.com |
GET /tracks?q=… | البحث عن المقاطع |
GET /users?q=… | البحث عن المستخدمين |
GET /playlists?q=… | البحث عن قوائم التشغيل |
GET /tracks/{track_urn} | مقطع واحد |
GET /users/{user_urn} | مستخدم واحد |
GET /users/{user_urn}/tracks | مقاطع مستخدم معيّن |
GET /tracks/{track_urn}/streams | روابط البث للتشغيل |
هناك تغييران يُعطّلان الشيفرة القديمة. صارت المعرّفات الآن بصيغة URN مثل soundcloud:tracks:308946187، وأُوقف الحقل الرقمي id في 2025. وتُقسَّم القوائم إلى صفحات عبر linked_partitioning=true وnext_href، بحدّ أقصى 200 عنصر في الصفحة، بينما أُوقف offset.
ما حدود SoundCloud API وشروطها؟
حدود الطلبات ضيّقة النطاق: 15,000 طلب تشغيل أو بث لكل تطبيق في نافذة مدتها 24 ساعة، وحدود الرموز المذكورة أعلاه، وHTTP 429 عند التجاوز. ولا يوجد حدّ منشور لبقية الطلبات.
أما شروط استخدام الواجهة فأهمّ لمعظم المشاريع:
- لا استخدام للذكاء الاصطناعي. لا يجوز استخدام محتوى الواجهة لتدريب الذكاء الاصطناعي أو تطويره، ولا لإنشاء بصمات صوتية، ولا مدخلًا لأدوات الذكاء الاصطناعي مثل فصل المسارات (stem separation).
- الإسناد. انسب المحتوى إلى من رفعه وإلى SoundCloud، وعلى الويب اربط كل مقطع بصفحته على soundcloud.com.
- لا تنزيلات. لا حفظ للملفات، ولا تشغيل دون اتصال، ولا إعادة رفع للصوت في مكان آخر؛ والتخزين المؤقت مسموح فقط طوال الجلسة.
- القرار لـ SoundCloud. يمكنها أن تعدّ تطبيقًا غير مقبول وتلغي وصوله.
الحصول على بيانات فناني SoundCloud دون مفتاح Artist Pro
إذا كنت تحتاج فقط إلى بيانات وصفية عامة، مثل الملف الشخصي للفنان وقائمة مقاطعه لأغراض البحث أو للوحة متابعة أو لمطابقة الفنانين عبر المنصات، ولا تريد الاشتراك في Artist Pro للحصول على مفتاح، فإن crawlfeed يوفّر عمليات القراءة التالية على SoundCloud بمفتاح API واحد:
| العملية | نقطة النهاية | المُعاملات المطلوبة | الرصيد |
|---|---|---|---|
| الملف الشخصي | /v1/soundcloud/profile | handle | 1 |
| المقطع الصوتي | /v1/soundcloud/track | id | 1 |
| المقاطع الصوتية | /v1/soundcloud/tracks | handle | 1 |
يكلّف كل طلب رصيد واحد. ويعود الفنانون ككائنات Profile والمقاطع ككائنات Track، وهي الأنواع نفسها التي يستخدمها crawlfeed لأصوات Spotify وApple Music وTikTok، فيغطي محلّل واحد كل مصادر الموسيقى:
curl -G https://api.crawlfeed.dev/v1/soundcloud/tracks \
-H "Authorization: Bearer $CRAWLFEED_KEY" \
--data-urlencode "handle=flume"يعيد crawlfeed البيانات الوصفية فقط، ولا يعيد الصوت أبدًا، وتبقى شروط SoundCloud هي الحاكمة لما تفعله بمحتواها. وللاطلاع على المُعاملات، راجع مرجع SoundCloud؛ وللواجهة الموسيقية الكبرى الأخرى، راجع دليل Spotify search API.
الخلاصة
يمكنك الحصول على مفتاح SoundCloud API من جديد، لكن مع Artist Pro فقط، عبر soundcloud.com/you/apps أو أداة سطر الأوامر من SoundCloud. صادِق بنوع المنح client credentials، وأرسل الرمز بصيغة Authorization: OAuth، وخزّنه طوال ساعته، وتنقّل بين الصفحات عبر next_href. تجاهل حزمة soundcloud-python المتوقفة واستخدم requests. والتزم بحدّ 15,000 طلب بث يوميًا، ولا تستخدم محتوى الواجهة في الذكاء الاصطناعي.
أسئلة شائعة
هل لا يزال بإمكاني الحصول على مفتاح SoundCloud API؟
نعم، إذا اشتركت في Artist Pro. أعادت SoundCloud فتح التسجيل الذاتي في 18 مايو 2026: يسجّل مشتركو Artist Pro تطبيقًا في soundcloud.com/you/apps أو عبر أداة سطر الأوامر الخاصة بواجهة SoundCloud، ويحصلون على المفاتيح فورًا دون مراجعة يدوية. وقبل ذلك، ظلّ باب الطلبات الجديدة مغلقًا سنوات.
هل SoundCloud API مجانية؟
لا تفرض SoundCloud أي رسوم على كل طلب، وتقول إنها قد تفرض رسومًا لاحقًا. لكن عمليًا، ثمن المفتاح هو اشتراك Artist Pro، لأن مشتركي Artist Pro وحدهم يستطيعون تسجيل تطبيقات جديدة.
كيف أصادق مع SoundCloud API؟
استخدم OAuth 2.1. للبيانات العامة مثل البحث والمقاطع والمستخدمين، اطلب رمزًا من https://secure.soundcloud.com/oauth/token بنوع المنح client credentials، وأرسل معرّف العميل والسرّ عبر مصادقة HTTP Basic. ثم أرسل Authorization: OAuth <token> مع كل طلب. ولم يعد إرسال client_id وحده مدعومًا منذ 2021.
هل توجد مكتبة Python رسمية لـ SoundCloud؟
لا توجد مكتبة رسمية تُصان حاليًا. صدر آخر إصدار من حزمة soundcloud-python الرسمية في 2015، وهي موسومة بأنها متوقفة. استخدم requests أو httpx مع الواجهة الرسمية. أما حزم مثل soundcloud-v2 فهي غير رسمية، وتغلّف الواجهة الداخلية لـ SoundCloud لا واجهة المطوّرين.
ما حدود الطلبات في SoundCloud API؟
يستطيع كل تطبيق إرسال 15,000 طلب تشغيل أو بث في نافذة مدتها 24 ساعة، وإنشاء 50 رمزًا من نوع client credentials كل 12 ساعة، إضافة إلى 30 رمزًا في الساعة لكل عنوان IP. ولا يوجد حاليًا حدّ لبقية طلبات الواجهة. وتجاوز الحدّ يعيد HTTP 429.
جرّبه على بياناتك
كل الأمثلة أعلاه تعمل كما هي. تحصل الحسابات الجديدة على 100 رصيد مجاني، دون بطاقة دفع.
احصل على مفتاح API