chrome.tabCapture

refresh date: 2026-09-25 robots: noindex

ब्यौरा

टैब मीडिया स्ट्रीम के साथ इंटरैक्ट करने के लिए, chrome.tabCapture API का इस्तेमाल करें.

अनुमतियां

tabCapture

खास जानकारी

chrome.tabCapture API की मदद से, आपको मौजूदा टैब के वीडियो और ऑडियो वाले MediaStream को ऐक्सेस करने की अनुमति मिलती है. इसे सिर्फ़ तब कॉल किया जा सकता है, जब उपयोगकर्ता किसी एक्सटेंशन को चालू करता है. जैसे, एक्सटेंशन के ऐक्शन बटन पर क्लिक करके. यह activeTab अनुमति के जैसा ही है.

सिस्टम ऑडियो को बनाए रखना

किसी टैब के लिए MediaStream पाने पर, उस टैब में मौजूद ऑडियो उपयोगकर्ता को नहीं सुनाया जाएगा. यह suppressLocalAudioPlayback फ़्लैग को सही पर सेट करने पर, getDisplayMedia() फ़ंक्शन के व्यवहार जैसा ही होता है.

उपयोगकर्ता के लिए ऑडियो चलाना जारी रखने के लिए, इनका इस्तेमाल करें:

const output = new AudioContext();
const source = output.createMediaStreamSource(stream);
source.connect(output.destination);

इससे एक नया AudioContext बनता है और टैब के MediaStream का ऑडियो, डिफ़ॉल्ट डेस्टिनेशन से कनेक्ट हो जाता है.

स्ट्रीम आईडी

chrome.tabCapture.getMediaStreamId को कॉल करने पर, स्ट्रीम आईडी मिलेगा. बाद में आईडी से MediaStream को ऐक्सेस करने के लिए, इसका इस्तेमाल करें:

navigator.mediaDevices.getUserMedia({
  audio: {
    mandatory: {
      chromeMediaSource: "tab",
      chromeMediaSourceId: id,
    },
  },
  video: {
    mandatory: {
      chromeMediaSource: "tab",
      chromeMediaSourceId: id,
    },
  },
});

उपयोग प्रतिबंध

getMediaStreamId() को कॉल करने के बाद, स्ट्रीम आईडी को इस्तेमाल करने से जुड़ी ये पाबंदियां लागू होती हैं:

  • अगर consumerTabId तय किया गया है, तो आईडी का इस्तेमाल, दिए गए टैब के किसी भी फ़्रेम में getUserMedia() कॉल के लिए किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि फ़्रेम का सुरक्षा ऑरिजिन एक जैसा हो.
  • अगर यह तय नहीं किया जाता है, तो Chrome 116 से शुरू होने वाले वर्शन में, आईडी का इस्तेमाल किसी भी फ़्रेम में किया जा सकता है. इसके लिए, कॉलर के तौर पर काम करने वाले फ़्रेम की रेंडर प्रोसेस में, आईडी का इस्तेमाल करने वाले फ़्रेम का सुरक्षा ऑरिजिन एक जैसा होना चाहिए. इसका मतलब है कि सर्विस वर्कर में मिला स्ट्रीम आईडी, ऑफ़स्क्रीन दस्तावेज़ में इस्तेमाल किया जा सकता है.

Chrome 116 से पहले, जब consumerTabId तय नहीं किया जाता था, तब स्ट्रीम आईडी को कॉल करने वाले के सुरक्षा ऑरिजिन, रेंडर प्रोसेस, और रेंडर फ़्रेम तक सीमित रखा जाता था.

ज़्यादा जानें

chrome.tabCapture एपीआई इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, ऑडियो रिकॉर्डिंग और स्क्रीन कैप्चर देखें. इसमें, इस्तेमाल के कई सामान्य उदाहरणों को हल करने के लिए, tabCapture और इससे जुड़े एपीआई का इस्तेमाल करने का तरीका बताया गया है.

टाइप

CaptureInfo

प्रॉपर्टी

  • फ़ुलस्क्रीन

    बूलियन

    इससे पता चलता है कि कैप्चर किए जा रहे टैब में मौजूद कोई एलिमेंट फ़ुलस्क्रीन मोड में है या नहीं.

  • स्थिति

    टैब के कैप्चर का नया स्टेटस.

  • tabId

    संख्या

    उस टैब का आईडी जिसका स्टेटस बदला गया है.

CaptureOptions

प्रॉपर्टी

  • ऑडियो

    boolean ज़रूरी नहीं है

  • audioConstraints

    MediaStreamConstraint ज़रूरी नहीं है

  • वीडियो

    boolean ज़रूरी नहीं है

  • videoConstraints

    MediaStreamConstraint ज़रूरी नहीं है

GetMediaStreamOptions

Chrome 71 या इसके बाद के वर्शन

प्रॉपर्टी

  • consumerTabId

    number optional

    यह उस टैब का आईडी है जिसमें बाद में getUserMedia() को स्ट्रीम का इस्तेमाल करने के लिए शुरू किया जाएगा. यह आईडी देना ज़रूरी नहीं है. अगर यह जानकारी नहीं दी जाती है, तो नतीजे के तौर पर मिली स्ट्रीम का इस्तेमाल सिर्फ़ कॉलिंग एक्सटेंशन कर सकता है. इस स्ट्रीम का इस्तेमाल, सिर्फ़ दिए गए टैब में मौजूद उन फ़्रेम के लिए किया जा सकता है जिनका सुरक्षा ऑरिजिन, उपभोक्ता टैब के ऑरिजिन से मेल खाता हो. टैब का ऑरिजिन सुरक्षित होना चाहिए. जैसे, एचटीटीपीएस.

  • targetTabId

    number optional

    उस टैब का आईडी (ज़रूरी नहीं है) जिसे कैप्चर किया जाएगा. अगर कोई टैब नहीं चुना जाता है, तो मौजूदा ऐक्टिव टैब चुना जाएगा. सिर्फ़ उन टैब को टारगेट टैब के तौर पर इस्तेमाल किया जा सकता है जिनके लिए एक्सटेंशन को activeTab अनुमति दी गई है.

MediaStreamConstraint

प्रॉपर्टी

  • ज़रूरी है

    ऑब्जेक्ट

  • ज़रूरी नहीं

    ऑब्जेक्ट ज़रूरी नहीं

TabCaptureState

Enum

"pending"

"active"

"stopped"

"error"

तरीके

capture()

सिर्फ़ फ़ोरग्राउंड
chrome.tabCapture.capture(
  options: CaptureOptions,
  callback: function,
)
: void

यह कुकी, फ़िलहाल चालू टैब के दिखने वाले हिस्से को कैप्चर करती है. एक्सटेंशन को इनवोक करने के बाद ही, मौजूदा ऐक्टिव टैब पर कैप्चर शुरू किया जा सकता है. यह activeTab की तरह ही काम करता है. टैब में एक पेज से दूसरे पेज पर जाने पर भी, कैप्चर जारी रहता है. हालांकि, टैब बंद होने या एक्सटेंशन के मीडिया स्ट्रीम को बंद करने पर, कैप्चर बंद हो जाता है.

पैरामीटर

  • विकल्प

    यह कुकी, वापस भेजी गई मीडिया स्ट्रीम को कॉन्फ़िगर करती है.

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (stream: LocalMediaStream) => void

    • स्ट्रीम

      LocalMediaStream

getCapturedTabs()

Promise
chrome.tabCapture.getCapturedTabs(
  callback?: function,
)
: Promise<CaptureInfo[]>

यह उन टैब की सूची दिखाता है जिन्होंने कैप्चर करने का अनुरोध किया है या जिन्हें कैप्चर किया जा रहा है. इसका मतलब है कि status != stopped और status != error. इससे एक्सटेंशन, उपयोगकर्ता को यह सूचना दे सकते हैं कि मौजूदा टैब कैप्चर की वजह से, नया टैब कैप्चर नहीं किया जा सकता. इसके अलावा, इससे एक ही टैब के लिए बार-बार किए जाने वाले अनुरोधों को रोका जा सकता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं है

    callback पैरामीटर ऐसा दिखता है:

    (result: CaptureInfo[]) => void

रिटर्न

  • Promise<CaptureInfo[]>

    Chrome 116 और इसके बाद के वर्शन

    यह एक प्रॉमिस दिखाता है. यह कैप्चर किए गए टैब के लिए, CaptureInfo[] के साथ रिज़ॉल्व होता है.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

getMediaStreamId()

Promise Chrome 71 या इसके बाद के वर्शन
chrome.tabCapture.getMediaStreamId(
  options?: GetMediaStreamOptions,
  callback?: function,
)
: Promise<string>

यह कुकी, टारगेट टैब को कैप्चर करने के लिए स्ट्रीम आईडी बनाती है. यह chrome.tabCapture.capture() तरीके की तरह ही है. हालांकि, यह मीडिया स्ट्रीम के बजाय, खरीदार टैब को मीडिया स्ट्रीम आईडी दिखाता है.

पैरामीटर

  • विकल्प

    GetMediaStreamOptions ज़रूरी नहीं है

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं है

    callback पैरामीटर ऐसा दिखता है:

    (streamId: string) => void

    • streamId

      स्ट्रिंग

रिटर्न

  • Promise<string>

    Chrome 116 और इसके बाद के वर्शन

    यह एक प्रॉमिस दिखाता है, जो नतीजे के साथ रिज़ॉल्व होता है. अगर अनुरोध पूरा हो जाता है, तो नतीजे के तौर पर एक अपारदर्शी स्ट्रिंग मिलती है. इसे getUserMedia() एपीआई को पास किया जा सकता है, ताकि टारगेट टैब से जुड़ी मीडिया स्ट्रीम जनरेट की जा सके. बनाया गया streamId सिर्फ़ एक बार इस्तेमाल किया जा सकता है. अगर इसका इस्तेमाल नहीं किया जाता है, तो कुछ सेकंड बाद इसकी समयसीमा खत्म हो जाती है.

    प्रॉमिस सिर्फ़ Manifest V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

इवेंट

onStatusChanged

chrome.tabCapture.onStatusChanged.addListener(
  callback: function,
)

जब किसी टैब का कैप्चर स्टेटस बदलता है, तब यह इवेंट ट्रिगर होता है. इससे एक्सटेंशन बनाने वाले लोग, टैब के कैप्चर स्टेटस को ट्रैक कर पाते हैं. इससे वे पेज ऐक्शन जैसे यूज़र इंटरफ़ेस (यूआई) एलिमेंट को सिंक रख पाते हैं.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (info: CaptureInfo) => void