मीडिया आइटम की सूची बनाएं और उन्हें फिर से पाएं

जब कोई उपयोगकर्ता, Google Photos में अपने आस-पास के डिवाइस को कॉन्फ़िगर कर लेता है और मीडिया सोर्स चुन लेता है, तो आपका ऐप्लिकेशन उन मीडिया आइटम को दिखा सकता है और उन्हें वापस पा सकता है.

शुरू करने से पहले

mediaSourcesSet के लिए पोल

किसी डिवाइस के लिए मीडिया आइटम लिस्ट करने से पहले, उपयोगकर्ता को Google Photos ऐप्लिकेशन में जाकर, वे फ़ोटो चुननी होंगी जिन्हें उसे आपके ऐप्लिकेशन के साथ शेयर करना है. आपके ऐप्लिकेशन को डिवाइस से यह जानकारी लेनी होगी कि उपयोगकर्ता ने फ़ोटो कब चुनी हैं.

किसी खास deviceId के लिए, समय-समय पर devices.get तरीके को कॉल करें. AmbientDevice रिस्पॉन्स में mediaSourcesSet फ़ील्ड को मॉनिटर करें. शुरुआत में, यह false होगा. जब उपयोगकर्ता मीडिया सोर्स चुन लेगा, तब यह फ़ील्ड true में बदल जाएगा.

AmbientDevice रिस्पॉन्स में pollingConfig शामिल होता है. इसमें pollInterval होता है. आपको इसका इस्तेमाल, पोलिंग की फ़्रीक्वेंसी के लिए दिशा-निर्देश के तौर पर करना चाहिए.

मीडिया आइटम की सूची बनाना

किसी डिवाइस के लिए mediaSourcesSet true होने के बाद, उपयोगकर्ता की ओर से चुने गए मीडिया आइटम फ़ेच किए जा सकते हैं.

  1. mediaItems.list एंडपॉइंट का इस्तेमाल करें: https://photosambient.googleapis.com/v1/mediaItems पर GET अनुरोध करें. साथ ही, पाथ में deviceId दें.

  2. पेज नंबर मैनेज करें (अगर ज़रूरी हो): जवाब को पेज नंबर के हिसाब से बांटा जा सकता है. ज्यादा से ज्यादा आइटम दिखाने के लिए, pageSize पैरामीटर का इस्तेमाल करें. साथ ही, नतीजों के अगले पेज पाने के लिए, पिछले जवाब से मिले pageToken का इस्तेमाल करें.

  3. मीडिया आइटम प्रोसेस करें: जवाब में AmbientMediaItem ऑब्जेक्ट का एक कलेक्शन होगा. हर ऑब्जेक्ट, चुने गए मीडिया आइटम को दिखाएगा. इन ऑब्जेक्ट में ज़रूरी जानकारी शामिल होती है. जैसे:

    • id: मीडिया आइटम का यूनीक आइडेंटिफ़ायर.
    • creationTime: मीडिया आइटम बनाए जाने का टाइमस्टैंप.
    • mediaFile: यह एक ऐसा ऑब्जेक्ट होता है जिसमें असली कॉन्टेंट को ऐक्सेस करने की जानकारी होती है.

mediaFile फ़ील्ड में baseUrl शामिल है. इस baseUrl का इस्तेमाल करके, अलग-अलग रिज़ॉल्यूशन या फ़ॉर्मैट में मीडिया आइटम के कॉन्टेंट को ऐक्सेस करने के लिए यूआरएल बनाए जा सकते हैं.

बेस यूआरएल

Google Photos API में मौजूद बेस यूआरएल, मीडिया आइटम के रॉ बाइट का ऐक्सेस देते हैं. इससे आपका ऐप्लिकेशन, मीडिया आइटम को डाउनलोड या दिखा पाता है. एल्बम की सूची बनाते समय (Library API) या मीडिया आइटम ऐक्सेस करते समय (Library और Picker API, दोनों), इन यूआरएल को जवाबों में शामिल किया जाता है. ध्यान रखें कि बेस यूआरएल को सही तरीके से काम करने के लिए, अतिरिक्त पैरामीटर की ज़रूरत होती है.

Picker API के लिए:

सभी PickedMediaItem.mediaFile ऑब्जेक्ट में baseUrl शामिल है.

बेस यूआरएल 60 मिनट तक चालू रहते हैं. हालांकि, अगर उपयोगकर्ता अपने Google खाते की सेटिंग में जाकर, आपके ऐप्लिकेशन की अनुमतियां रद्द कर देता है, तो ये यूआरएल इससे पहले भी खत्म हो सकते हैं.

Library API के लिए:

बेस यूआरएल 60 मिनट तक चालू रहते हैं.

अलग-अलग बेस यूआरएल ये हैं:

  • baseUrl: सीधे तौर पर किसी फ़ोटो, वीडियो के थंबनेल को ऐक्सेस करें या वीडियो बाइट डाउनलोड करें.
  • coverPhotoBaseUrl: एल्बम की कवर फ़ोटो को सीधे तौर पर ऐक्सेस करें.
  • profilePictureBaseUrl: इससे mediaItem के मालिक की प्रोफ़ाइल फ़ोटो को सीधे तौर पर ऐक्सेस किया जा सकता है.

इमेज के बेस यूआरएल

यहां उन विकल्पों की सूची दी गई है जिनका इस्तेमाल इमेज के बेस यूआरएल के साथ किया जा सकता है:

पैरामीटर
w, h

ब्यौरा

चौड़ाई, w और ऊंचाई, h पैरामीटर.

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

उदाहरण:

base-url=wmax-width-hmax-height

यहां एक उदाहरण दिया गया है. इसमें मीडिया आइटम को 2048 पिक्सल से ज़्यादा चौड़ा और 1024 पिक्सल से ज़्यादा लंबा नहीं दिखाया गया है:

https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024
c

ब्यौरा

c पैरामीटर का इस्तेमाल करके इमेज को काटा जाता है.

अगर आपको इमेज को अपनी तय की गई चौड़ाई और लंबाई के हिसाब से काटना है, तो बेस यूआरएल को w और h पैरामीटर के साथ-साथ, वैकल्पिक -c पैरामीटर के साथ जोड़ें.

साइज़ (पिक्सल में) [1, 16383] की रेंज में होना चाहिए. अगर इमेज की चौड़ाई या ऊंचाई, अनुरोध किए गए साइज़ से ज़्यादा है, तो इमेज को छोटा किया जाता है और काटा जाता है. हालांकि, ऐसा करते समय आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) को बनाए रखा जाता है.

उदाहरण:

base-url=wmax-width-hmax-height-c

इस उदाहरण में, ऐप्लिकेशन एक मीडिया आइटम दिखाता है. इसकी चौड़ाई और ऊंचाई ठीक 256 पिक्सल है. जैसे, थंबनेल:

https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c
d

ब्यौरा

डाउनलोड, d पैरामीटर.

अगर आपको इमेज को डाउनलोड करते समय, जगह की जानकारी वाले मेटाडेटा को छोड़कर बाकी सभी Exif मेटाडेटा को बनाए रखना है, तो बेस यूआरएल को d पैरामीटर के साथ जोड़ें.

उदाहरण:

base-url=d

इस उदाहरण में, ऐप्लिकेशन ऐसी इमेज डाउनलोड करता है जिसमें जगह की जानकारी के मेटाडेटा को छोड़कर, बाकी सभी मेटाडेटा मौजूद होते हैं:

https://lh3.googleusercontent.com/p/Az....XabC=d

वीडियो के मूल यूआरएल

यहां उन विकल्पों की सूची दी गई है जिनका इस्तेमाल वीडियो के बेस यूआरएल के साथ किया जा सकता है:

पैरामीटर
dv

ब्यौरा

किसी वीडियो mediaItem के बाइट ऐक्सेस करने के लिए, डाउनलोड वीडियो dv पैरामीटर के साथ mediaItem को जोड़ें.baseUrl

dv पैरामीटर, ओरिजनल वीडियो के अच्छी क्वालिटी वाले, ट्रांसकोड किए गए वर्शन का अनुरोध करता है. यह पैरामीटर, w और h पैरामीटर के साथ काम नहीं करता.

वीडियो डाउनलोड करने के लिए बेस यूआरएल को बाइट वापस करने में कुछ सेकंड लग सकते हैं.

इस पैरामीटर का इस्तेमाल करने से पहले, यह देख लें कि मीडिया आइटम के mediaMetadata.status फ़ील्ड की वैल्यू READY हो. अगर आपकी मीडिया आइटम प्रोसेस नहीं हुई है, तो आपको गड़बड़ी का मैसेज मिल सकता है.

उदाहरण:

base-url=dv

यहां दिए गए उदाहरण में, किसी वीडियो के बाइट डाउनलोड करने का तरीका बताया गया है:

https://lh3.googleusercontent.com/p/AF....BsdZ=dv
w, h, c, और d

ब्यौरा

वीडियो के थंबनेल को ऐक्सेस करने के लिए, इमेज के बेस यूआरएल पैरामीटर में से किसी एक का इस्तेमाल करें.

डिफ़ॉल्ट रूप से, सभी वीडियो थंबनेल में वीडियो चलाने के लिए एक बटन का ओवरले शामिल होता है. इस ओवरले को हटाने के लिए, -no पैरामीटर देखें.

उदाहरण:

उदाहरणों के लिए, इमेज के बेस यूआरएल वाली टेबल देखें.

no

ब्यौरा

थंबनेल ओवरले हटाने वाला no पैरामीटर.

अगर आपको प्लेबैक बटन के ओवरले के बिना किसी वीडियो का थंबनेल वापस पाना है, तो बेस यूआरएल को no पैरामीटर के साथ जोड़ें.

no पैरामीटर का इस्तेमाल, कम से कम एक इमेज के बेस यूआरएल पैरामीटर के साथ किया जाना चाहिए.

उदाहरण:

base-url=wmax-width-hmax-height-no

इस उदाहरण में, 1280 पिक्सल चौड़ा और 720 पिक्सल ऊंचा वीडियो थंबनेल दिखाया गया है. इसमें वीडियो चलाने के लिए बटन वाला ओवरले शामिल नहीं है:

https://lh3.googleusercontent.com/p/AF....VnnY=w1280-h720-no

मोशन फ़ोटो के बेस यूआरएल

मोशन फ़ोटो में फ़ोटो और वीडियो, दोनों एलिमेंट होते हैं. मोशन फ़ोटो baseUrl के अनुरोधों के लिए, इमेज के बेस यूआरएल या वीडियो के बेस यूआरएल में से किसी एक के पैरामीटर इस्तेमाल किए जा सकते हैं.

पैरामीटर
dv

ब्यौरा

मोशन फ़ोटो मीडिया आइटम का वीडियो एलिमेंट वापस पाने के लिए, dv पैरामीटर का इस्तेमाल करें. इसका इस्तेमाल वीडियो के बेस यूआरएल से डाउनलोड करने के लिए किया जाता है.

w, h, c, और d

ब्यौरा

मोशन फ़ोटो वाले मीडिया आइटम के फ़ोटो एलिमेंट को वापस पाने के लिए, इमेज के बेस यूआरएल का फ़ॉर्मैट इस्तेमाल करें.

कॉन्टेंट की नीति और फ़िल्टर करने की सुविधा

Google Photos, शेयर किए गए डिवाइस (जैसे, टीवी या डिजिटल डिसप्ले) पर दिखाई गई इमेज और वीडियो के लिए, कॉन्टेंट फ़िल्टर करने की सुविधा डिफ़ॉल्ट रूप से लागू करता है. इस फ़िल्टर को कॉन्टेंट देखने के अनुभव को बेहतर बनाने के लिए डिज़ाइन किया गया है. यह इस तरह के कॉन्टेंट को शामिल नहीं करता:

  • काम की इमेज (जैसे, स्क्रीनशॉट, दस्तावेज़, रसीदें).
  • ऐसी इमेज जो बड़ी स्क्रीन पर ठीक से नहीं दिखती हैं. जैसे, बहुत कम रिज़ॉल्यूशन वाली इमेज, धुंधली इमेज, और बहुत ज़्यादा ग्रेन वाली इमेज.
  • ऐसा कॉन्टेंट जिसे बहुत ज़्यादा निजी या संवेदनशील माना गया हो. ऐसा हो सकता है कि इसे शेयर की गई सेटिंग में सामान्य तौर पर दिखाने का मकसद न हो.

कॉन्टेंट फ़िल्टर करने की सुविधा अपने-आप काम करती है. उपयोगकर्ताओं को, ऐंबियंट डिसप्ले पर दिखने वाले कॉन्टेंट पर ज़्यादा कंट्रोल देने के लिए, उन्हें ऐंबियंट डिसप्ले के लिए इस्तेमाल किए गए मीडिया सोर्स को मैन्युअल तरीके से चुनने और अपडेट करने की अनुमति दी जा सकती है.

अगले चरण

  • सैंपल ऐप्लिकेशन: हमारे सैंपल ऐप्लिकेशन में, मीडिया आइटम को लिस्ट करने और उन्हें वापस पाने का उदाहरण शामिल है. ज़्यादा जानकारी के लिए, checkMediaSourcesSet और fetch_media_item_list फ़ंक्शन देखें.
  • रेफ़रंस के लिए दस्तावेज़: उपलब्ध सभी तरीकों, अनुरोध और जवाब के पैरामीटर, और गड़बड़ी के कोड के बारे में ज़्यादा जानकारी पाने के लिए, मीडिया आइटम के बारे में रेफ़रंस के लिए दस्तावेज़ देखें.