D1Arena डेटा के साथ बॉट, ओवरले, स्ट्रीम टूल और एकीकरण बनाएं।
प्रमाणीकरण
सभी एपीआई अनुरोधों के लिए X-API-Key / Authorization: Bearer हेडर में पारित एपीआई कुंजी की आवश्यकता होती है।
एपीआई कुंजी बनाने के लिए, अपने डैशबोर्ड में डेवलपर सेटिंग्स पर जाएं। आपके पास अधिकतम 5 चाबियाँ हो सकती हैं.
Retry-After हेडर के साथ 429 Too Many Requests वापस आते हैं।
आधार यूआरएल
सभी समापनबिंदु JSON लौटाते हैं। पृष्ठांकित समापन बिंदुओं में current_page, last_page, और total के साथ एक meta ऑब्जेक्ट शामिल है।
धाराएँ
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
category_id | integer | गेम/श्रेणी आईडी के आधार पर फ़िल्टर करें |
limit | integer | प्रति पृष्ठ परिणाम (डिफ़ॉल्ट: 20) |
page | integer | पेज नंबर |
श्रेणियाँ
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
search | string | श्रेणियों को नाम से फ़िल्टर करें |
limit | integer | प्रति पृष्ठ परिणाम (डिफ़ॉल्ट: 50) |
उपयोगकर्ता
क्लिप्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
streamer_id | integer | स्ट्रीमर की उपयोगकर्ता आईडी के आधार पर क्लिप फ़िल्टर करें |
category_id | integer | गेम/श्रेणी आईडी के आधार पर फ़िल्टर करें |
limit | integer | प्रति पृष्ठ परिणाम (डिफ़ॉल्ट: 20) |
टूर्नामेंट
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
status | string | स्थिति के अनुसार फ़िल्टर करें (उदाहरण के लिए open, in_progress, completed) |
league_id | integer | लीग आईडी द्वारा फ़िल्टर करें |
limit | integer | प्रति पृष्ठ परिणाम (डिफ़ॉल्ट: 20) |
ईएलओ रैंकिंग
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
category_id | integer | गेम/श्रेणी आईडी के आधार पर फ़िल्टर करें |
limit | integer | परिणामों की संख्या (डिफ़ॉल्ट: 50) |
लीग
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
status | string | लीग स्थिति के अनुसार फ़िल्टर करें |
category_id | integer | गेम/श्रेणी आईडी के आधार पर फ़िल्टर करें |
limit | integer | प्रति पृष्ठ परिणाम (डिफ़ॉल्ट: 20) |
त्रुटि प्रतिक्रियाएँ
सभी त्रुटियाँ एक सुसंगत JSON लिफाफा लौटाती हैं। error ऑब्जेक्ट में हमेशा एक मशीन-पठनीय code और एक मानव-पठनीय message होता है।
स्थिति कोड
त्रुटि कोड संदर्भ
| कोड | HTTP स्थिति | विवरण |
|---|---|---|
invalid_api_key | 401 | एपीआई कुंजी गुम है, विकृत है, या मौजूद नहीं है |
api_key_disabled | 403 | एपीआई कुंजी निरस्त या अक्षम कर दी गई है |
not_found | 404 | अनुरोधित संसाधन नहीं मिल सका |
validation_error | 422 | एक या अधिक अनुरोध पैरामीटर अमान्य हैं |
rate_limited | 429 | इस एपीआई कुंजी के लिए अनुरोध दर सीमा पार हो गई है |
server_error | 500 | आंतरिक सर्वर त्रुटि - कृपया पुनः प्रयास करें या समर्थन से संपर्क करें |
दर सीमाएँ
एपीआई अनुरोध प्रति एपीआई कुंजी दर-सीमित हैं। जब आप सीमा पार कर जाते हैं, तो अनुरोध Retry-After हेडर के साथ 429 Too Many Requests वापस आते हैं।
टियर द्वारा सीमाएं
| स्तर | अनुरोध/मिनट (गलती करना) | अधिकतम कुंजी |
|---|---|---|
| स्टार्टर (मुक्त) | 60 | 5 |
| प्रो | 60 | 5 |
| परम | 60 | 5 |
| साथी | 60 | 5 |
दर सीमा शीर्षलेख
एपीआई अनुरोध प्रति एपीआई कुंजी दर-सीमित हैं। जब आप सीमा पार कर जाते हैं, तो अनुरोध Retry-After हेडर के साथ 429 Too Many Requests वापस आते हैं।
| शीर्ष लेख | विवरण |
|---|---|
Retry-After | पुनः प्रयास करने से पहले प्रतीक्षा करने के लिए सेकंड (केवल 429 प्रतिक्रियाओं पर मौजूद) |
सर्वोत्तम प्रथाएँ
- Cache responses locally — stream and tournament data doesn't change every second.
- पोलिंग एंडपॉइंट के बजाय वास्तविक समय की घटनाओं के लिए webhooks की सदस्यता लें।
- जहां संभव हो वहां बैच अनुरोध करें - कम कॉल में आपको जो चाहिए वह प्राप्त करने के लिए फ़िल्टर पैरामीटर का उपयोग करें।
वेबहुक (इवेंटसब)
मतदान के बजाय वास्तविक समय की पुश सूचनाओं की सदस्यता लें। जब कोई घटना घटती है, तो D1Arena HMAC-SHA256 के साथ हस्ताक्षरित JSON पेलोड के साथ आपके कॉलबैक URL पर एक HTTP POST भेजता है।
स्थापित करना
डेवलपर सेटिंग्स में वेबहुक सदस्यताएँ बनाएँ। प्रत्येक सदस्यता के लिए आवश्यक है:
- कॉलबैक यूआरएल — आपके सर्वर पर सार्वजनिक रूप से सुलभ HTTPS एंडपॉइंट।
- घटनाएँ — सदस्यता लेने के लिए एक या अधिक ईवेंट प्रकार.
You'll receive a whsec_ signing secret upon creation. Store it securely — it's shown only once.
पेलोड प्रारूप
प्रत्येक वेबहुक डिलीवरी इस संरचना के साथ एक JSON बॉडी भेजती है:
हेडर
प्रत्येक डिलीवरी में रूटिंग और सत्यापन के लिए निम्नलिखित हेडर शामिल हैं:
| शीर्ष लेख | विवरण |
|---|---|
Content-Type | application/json |
X-D1Arena-Event | ईवेंट प्रकार (उदा. stream.online) |
X-D1Arena-Signature | कच्चे अनुरोध निकाय का HMAC-SHA256 हेक्स डाइजेस्ट |
X-D1Arena-Signature-Version | हस्ताक्षर-कुंजी प्रारूप: वर्तमान सदस्यता के लिए v2 या विरासती सदस्यता के लिए v1-hashed-secret |
X-D1Arena-Delivery-Id | अद्वितीय डिलीवरी यूयूआईडी - डिडुप्लीकेशन के लिए उपयोग करें |
X-D1Arena-Timestamp | ईवेंट कब भेजा गया था इसका यूनिक्स टाइमस्टैम्प |
हस्ताक्षरों का सत्यापन
वेबहुक को संसाधित करने से पहले हमेशा X-D1Arena-Signature हेडर को सत्यापित करें। हस्ताक्षर की गणना HMAC-SHA256(raw_body, webhook_secret) के रूप में की जाती है।
v2 डिलीवरी के लिए, सदस्यता बनाते समय दिखाए गए whsec_ रहस्य का उपयोग करें। प्री-अपग्रेड v1-hashed-secret डिलीवरी के लिए, पहले उस मूल रहस्य से SHA256(whsec_secret) की गणना करें और परिणामी लोअरकेस हेक्स डाइजेस्ट को HMAC कुंजी के रूप में उपयोग करें। v2 पर जाने के लिए व्यावहारिक होने पर सदस्यता पुनः बनाएँ।
उपलब्ध घटनाएँ
| घटना | विवरण |
|---|---|
| stream.online | एक स्ट्रीमर लाइव हुआ |
| stream.offline | एक स्ट्रीमर ऑफ़लाइन हो गया |
| channel.follow | एक उपयोगकर्ता ने एक चैनल का अनुसरण किया |
| channel.subscribe | किसी चैनल पर नई समर्थक सदस्यता |
| channel.tip | एक सपने देखने वाले को एक टिप भेजी गई थी |
| tournament.started | एक टूर्नामेंट मैच खेलना शुरू हो गया है |
| tournament.ended | एक टूर्नामेंट संपन्न हुआ |
| tournament.match.completed | एक मैच का परिणाम दर्ज किया गया |
| clip.created | एक लाइव स्ट्रीम से एक नई क्लिप बनाई गई थी |
| overdrive.started | D1 उन्माद एक चैनल पर शुरू हुआ |
| overdrive.level_up | D1 उन्माद अगले स्तर पर पहुंच गया |
| overdrive.ended | D1 फ़्रेन्ज़ी पूरा हुआ या समाप्त हो गया |
इवेंट पेलोड उदाहरण
stream.online
stream.offline
channel.follow
channel.tip
tournament.match.completed
clip.created
डिलिवरी एवं पुनः प्रयास नीति
| प्रयास | देरी | टिप्पणियाँ |
|---|---|---|
| पहला (प्रारंभिक) | तत्काल | घटना के कुछ सेकंड के भीतर भेजा गया |
| दूसरा (पुनः प्रयास करें) | 30 सेकंड | यदि पहला प्रयास विफल हो जाता है या समय समाप्त हो जाता है |
| तीसरा (पुनः प्रयास करें) | 2 मिनट | घातीय बैकऑफ़ |
| चौथा (अंतिम) | 10 मिनट | विफल के रूप में चिह्नित करने से पहले अंतिम प्रयास |
2xx status within 10 सेकंड. Non-2xx responses or timeouts trigger a retry. After लगातार 10 असफलताएँ, the subscription is automatically disabled. You'll receive an email notification and can re-enable it in डेवलपर सेटिंग्स.
सर्वोत्तम प्रथाएँ
- हमेशा हस्ताक्षर सत्यापित करें नकली घटनाओं को रोकने के लिए पेलोड को संसाधित करने से पहले।
- डिडुप्लीकेशन के लिए डिलीवरी-आईडी का उपयोग करें — पुन: प्रयास एक ही आईडी भेजते हैं, इसलिए डबल-प्रोसेसिंग से बचने के लिए संसाधित आईडी को स्टोर करें।
- शीघ्रता से उत्तर दें, अतुल्यकालिक रूप से प्रक्रिया करें — तुरंत
200 OKलौटें और पृष्ठभूमि कार्य में व्यावसायिक तर्क को संभालें। - केवल HTTPS एंडपॉइंट का उपयोग करें — वेबहुक यूआरएल को टीएलएस का उपयोग करना चाहिए। HTTP कॉलबैक अस्वीकार कर दिए गए हैं.
- अज्ञात घटनाओं को शालीनता से संभालें — नए ईवेंट प्रकार जोड़े जा सकते हैं. त्रुटि करने के बजाय अज्ञात घटनाओं के लिए
200लौटें।
D1 उन्माद
जब स्ट्रीमर लाइव होता है तो डी1 उन्माद तेजी से युक्तियों और सदस्यताओं से शुरू होता है। यह बढ़ते लक्ष्यों के साथ 5 स्तरों से आगे बढ़ता है।
GET /api/overdrive/{streamerId}
स्ट्रीमर के लिए सक्रिय D1 उन्माद प्राप्त करें। यदि कोई नहीं तो {"active": false} लौटाता है।
स्तर लक्ष्य
| स्तर | अंक |
|---|---|
| 1 | 100 |
| 2 | 250 |
| 3 | 500 |
| 4 | 1,000 |
| 5 | 2,000 |
D1 उन्माद — अंक: युक्ति $1 → 100; सदस्यता 500 × स्तर. अवधि: 5 मिनट; ठंडा होना: 30 मिनट.
एक्सटेंशन एसडीके
कस्टम पैनल और ओवरले एक्सटेंशन बनाएं जिन्हें स्ट्रीमर अपने चैनल पेजों पर इंस्टॉल कर सकें। एक्सटेंशन सैंडबॉक्स वाले आईफ्रेम में चलते हैं और postMessage के माध्यम से होस्ट पेज के साथ संचार करते हैं।
आरंभ करना
- डेवलपर सेटिंग्स में एक एपीआई कुंजी बनाएं।
- अपने एक्सटेंशन को अपने डोमेन पर होस्ट किए गए एक स्टैंडअलोन HTML पेज के रूप में बनाएं (HTTPS आवश्यक)।
- इसे मेरे एक्सटेंशन अनुभाग में समीक्षा के लिए सबमिट करें।
- एक बार स्वीकृत होने के बाद, स्ट्रीमर इसे एक्सटेंशन मार्केटप्लेस से इंस्टॉल कर सकते हैं।
एक्सटेंशन प्रकार
| प्रकार | जगह | व्यवहार |
|---|---|---|
panel | स्ट्रीम प्लेयर के नीचे | स्ट्रीम लाइव होने पर दृश्यमान. पूर्ण-चौड़ाई वाला कार्ड, 300px डिफ़ॉल्ट ऊँचाई। |
overlay | वीडियो प्लेयर के ऊपर | लाइव होने पर दृश्यमान. ओवरले पोजिशनिंग टूल के माध्यम से स्ट्रीमर द्वारा स्थिति/आकार को नियंत्रित किया जाता है। |
पोस्टमैसेज एपीआई
लोड होने पर आपका एक्सटेंशन स्वचालित रूप से संदर्भ डेटा प्राप्त करता है। इन घटनाओं को लागू करें:
प्रत्येक संदेश के लिए सटीक D1Arena मूल मूल का उपयोग करें। आधिकारिक SDK स्वचालित रूप से एम्बेडिंग पृष्ठ से इस मूल को प्राप्त और मान्य करता है।
क्योंकि एक्सटेंशन आईफ्रेम जानबूझकर एक अपारदर्शी सैंडबॉक्स मूल का उपयोग करते हैं, D1Arena होस्ट सटीक पंजीकृत आईफ्रेम विंडो को प्रमाणित करता है। संदर्भ स्वीकार करने से पहले एक्सटेंशन कोड को अभी भी मूल विंडो और सटीक D1Arena मूल को प्रमाणित करना होगा।
1. सिग्नल तत्परता
2. संदर्भ प्राप्त करें
3. कार्रवाई भेजें (वैकल्पिक)
अनुमति के दायरे
घोषित करें कि आपके एक्सटेंशन को किस डेटा की आवश्यकता है। समीक्षक सत्यापित करते हैं कि आपका कोड आपकी घोषित अनुमतियों से मेल खाता है।
| दायरा | तक पहुंच प्रदान करता है |
|---|---|
read:stream | स्ट्रीम स्थिति, शीर्षक, श्रेणी |
read:viewers | दर्शकों की संख्या और सूची |
read:chat | चैट संदेश (पुशर चैनल के माध्यम से) |
read:clips | /api/clips/{slug} के माध्यम से चैनल क्लिप |
read:tournaments | /api/active-match/{id} के माध्यम से सक्रिय मिलान जानकारी |
read:channel | चैनल प्रोफाइल, फॉलोअर्स, शेड्यूल |
सुरक्षा आवश्यकताएँ
sandbox="allow-scripts" में चलते हैं। आपका एक्सटेंशन नहीं कर सकते कुकीज़, लोकलस्टोरेज तक पहुंचता है, या d1arena.com पर प्रमाणित अनुरोध करता है।
- सार्वजनिक HTTPS आवश्यक है — आपके आईफ्रेम यूआरएल को TLS का उपयोग करना चाहिए और केवल सार्वजनिक नेटवर्क पते पर ही हल करना चाहिए।
- मानव-पठनीय स्रोत — कोई अस्पष्ट या छोटा-सा जावास्क्रिप्ट नहीं। समीक्षकों को आपका कोड पढ़ने में सक्षम होना चाहिए।
- कोई बाहरी स्क्रिप्ट लोड नहीं हो रही है जब तक कि आपके सबमिशन में घोषित न किया गया हो। CDN लाइब्रेरीज़ (jQuery, Chart.js, आदि) ठीक हैं।
- कोई डेटा घुसपैठ नहीं — एक्सटेंशन को दर्शकों का डेटा तीसरे पक्ष की एनालिटिक्स या ट्रैकिंग सेवाओं को नहीं भेजना चाहिए।
- सामग्री नीति — कोई विज्ञापन, NSFW सामग्री, क्रिप्टोकरेंसी खनन या दुर्भावनापूर्ण व्यवहार नहीं।
समीक्षा प्रक्रिया
| स्थिति | मतलब |
|---|---|
| pending | सबमिट किया गया, व्यवस्थापक समीक्षा की प्रतीक्षा में (आमतौर पर 1-3 कार्यदिवस)। |
| approved | एक्सटेंशन मार्केटप्लेस में स्वीकृत और दृश्यमान। |
| rejected | कारण सहित अस्वीकृत. समस्याएं ठीक करें और पुनः सबमिट करें. |
| suspended | नीति उल्लंघन के कारण अस्थायी रूप से हटा दिया गया. समर्थन से संपर्क करें। |
संस्करण अद्यतन
किसी स्वीकृत एक्सटेंशन को अपडेट करने के लिए, वर्तमान संस्करण को हटा दें और बढ़ी हुई संस्करण संख्या के साथ एक नया एक्सटेंशन सबमिट करें। नये संस्करण की फिर से समीक्षा की जा रही है।
चेंजलॉग
एपीआई परिवर्तन और नई सुविधाओं को ट्रैक करें। हम सिमेंटिक वर्जनिंग का पालन करते हैं और कम से कम 30 दिन पहले महत्वपूर्ण बदलावों की घोषणा करते हैं।
- एपीआई कुंजी प्रमाणीकरण के साथ प्रारंभिक सार्वजनिक एपीआई रिलीज।
- स्ट्रीम: लाइव स्ट्रीम सूचीबद्ध करें, स्लग द्वारा स्ट्रीमर विवरण प्राप्त करें।
- श्रेणियाँ: सभी खेल श्रेणियाँ खोजें और सूचीबद्ध करें।
- उपयोगकर्ता: प्रतिस्पर्धी आँकड़े, ईएलओ रेटिंग और पदक संख्या के साथ सार्वजनिक प्रोफ़ाइल।
- क्लिप: स्ट्रीमर/निर्माता जानकारी के साथ क्लिप विवरण ब्राउज़ करें और पुनः प्राप्त करें।
- टूर्नामेंट: सूची, स्थिति/लीग के अनुसार फ़िल्टर करें, प्रतिभागियों की संख्या प्राप्त करें।
- ईएलओ लीडरबोर्ड: वैश्विक और प्रति-श्रेणी रैंक वाले लीडरबोर्ड।
- लीग: स्टैंडिंग और प्वाइंट ब्रेकडाउन के साथ लीग की सूची बनाएं।
- D1 उन्माद: किसी भी स्ट्रीमर के लिए वास्तविक समय उन्माद स्थिति।
- वेबहुक (इवेंटसब): स्ट्रीम, चैनल, टूर्नामेंट, क्लिप और उन्मादी इवेंट सहित 12 इवेंट प्रकार।
- दर सीमाएँ
मदद की ज़रूरत है?
API के बारे में प्रश्न? हमसे संपर्क करें.