ऐप्लिकेशन से बनाए गए मीडिया आइटम ऐक्सेस करना

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

अनुमति के लिए ज़रूरी स्कोप

ऐप्लिकेशन से बनाए गए मीडिया आइटम ऐक्सेस करने के लिए, photoslibrary.readonly.appcreateddata स्कोप की ज़रूरत होती है. स्कोप के बारे में ज़्यादा जानकारी के लिए, अनुमति के स्कोप देखें.

मीडिया आइटम

mediaItem, Google Photos लाइब्रेरी में अपलोड की गई फ़ोटो या वीडियो जैसे मीडिया का प्रतिनिधित्व करता है. यह एक टॉप-लेवल ऑब्जेक्ट है और इसके मीडिया टाइप के आधार पर, इसकी प्रॉपर्टी अलग-अलग हो सकती हैं.

यहां दी गई टेबल में mediaItem प्रॉपर्टी की सूची दी गई है:

प्रॉपर्टी
id ऑब्जेक्ट की पहचान करने के लिए इस्तेमाल किया जाने वाला, हमेशा एक जैसा रहने वाला आईडी.
description मीडिया आइटम का ब्यौरा, जैसा कि Google Photos में दिखाया गया है.
baseUrl इसका इस्तेमाल, रॉ बाइट को ऐक्सेस करने के लिए किया जाता है. ज़्यादा जानकारी के लिए, बेस यूआरएल देखें.
productUrl

Google Photos में इमेज का लिंक. इस लिंक को डेवलपर नहीं खोल सकता, सिर्फ़ उपयोगकर्ता खोल सकता है. यूआरएल, लाइब्रेरी में मौजूद किसी मीडिया आइटम पर ले जाते हैं. अगर यूआरएल को एल्बम खोज से वापस पाया गया था, तो यह एल्बम में मौजूद आइटम पर ले जाता है.

mimeType मीडिया आइटम किस तरह का है, ताकि मीडिया के टाइप को आसानी से पहचानने में मदद मिल सके (उदाहरण के लिए: image/jpg).
filename Google Photos ऐप्लिकेशन में उपयोगकर्ता को दिखाए गए मीडिया आइटम का फ़ाइल नाम (आइटम की जानकारी वाले सेक्शन में).
mediaMetadata यह मीडिया के टाइप के हिसाब से अलग-अलग होता है. जैसे, photo या video. पेलोड को कम करने के लिए, फ़ील्ड मास्क का इस्तेमाल किया जा सकता है.

मीडिया आइटम पाना

मीडिया आइटम वापस पाने के लिए, mediaItemId का इस्तेमाल करके mediaItems.get को कॉल करें. इस अनुरोध से एक मीडिया आइटम मिलता है.

mediaItem में आईडी, ब्यौरा, और यूआरएल जैसी प्रॉपर्टी शामिल होती हैं. photo या video में मौजूद अतिरिक्त जानकारी, फ़ाइल में मौजूद मेटाडेटा पर आधारित होती है. ऐसा हो सकता है कि सभी प्रॉपर्टी मौजूद न हों.

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

REST

जीईटी अनुरोध यहां दिया गया है:

GET https://photoslibrary.googleapis.com/v1/mediaItems/media-item-id
Content-type: application/json
Authorization: Bearer oauth2-token

फ़ोटो मीडिया आइटम का रिस्पॉन्स कुछ ऐसा दिखता है. फ़ोटो प्रॉपर्टी में, फ़ोटो आइटम का मेटाडेटा होता है.

{
  "id": "media-item-id",
  "description": "item-description",
  "productUrl": "url-to-open-in-google-photos",
  "baseUrl": "base-url_do-not-use-directly",
  "mimeType": "mime-type-of-media",
  "filename": "item-filename",
  "mediaMetadata": {
    "width": "media-item-width",
    "height": "media-item-height",
    "creationTime": "media-item-creation-time",
    "photo": {
       "cameraMake": "make-of-the-camera",
       "cameraModel": "model-of-the-camera",
       "focalLength": "focal-length-of-the-camera-lens",
       "apertureFNumber": "aperture-f-number-of-the-camera-lens",
       "isoEquivalent": "iso-of-the-camera",
       "exposureTime": "exposure-time-of-the-camera-aperture"
    }
  },
  "contributorInfo": {
    "profilePictureBaseUrl": "profile-picture-base-url_do-not-use-directly",
    "displayName": "name-of-user"
  }
}

वीडियो मीडिया आइटम के लिए जवाब इस तरह दिखता है. वीडियो प्रॉपर्टी में, वीडियो आइटम का मेटाडेटा होता है.

{
  "id": "media-item-id",
  "description": "item-description",
  "productUrl": "url-to-open-in-google-photos",
  "baseUrl": "base-url_do-not-use-directly",
  "mimeType": "mime-type-of-media",
  "filename": "item-filename",
  "mediaMetadata": {
    "width": "media-item-width",
    "height": "media-item-height",
    "creationTime": "media-item-creation-time",
    "video": {
     "cameraMake": "make-of-the-camera",
     "cameraModel": "model-of-the-camera",
     "fps": "frame-rate-of-the-video",
     "status": "READY"
    },
  },
  "contributorInfo": {
    "profilePictureBaseUrl": "profile-picture-base-url_do-not-use-directly",
    "displayName": "name-of-user"
  }
}

एक से ज़्यादा मीडिया आइटम पाना

आइडेंटिफ़ायर के हिसाब से एक से ज़्यादा मीडिया आइटम वापस पाने के लिए, mediaItemId का इस्तेमाल करके mediaItems.batchGet को कॉल करें.

अनुरोध में दिए गए मीडिया आइटम आइडेंटिफ़ायर के क्रम में, अनुरोध से MediaItemResults की सूची मिलती है. हर नतीजे में MediaItem होता है. अगर कोई गड़बड़ी हुई है, तो Status दिखता है.

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

REST

यहां एक GET अनुरोध दिया गया है, जिसमें मीडिया आइटम के ऐक्सेस के लिए किए गए अनुरोधों के नतीजे दिख रहे हैं. अनुरोध के हिस्से के तौर पर, हर मीडिया आइटम आइडेंटिफ़ायर को नए mediaItemIds क्वेरी पैरामीटर के तौर पर बताएं:

GET https://photoslibrary.googleapis.com/v1/mediaItems:batchGet?mediaItemIds=media-item-id&mediaItemIds=another-media-item-id&mediaItemIds=incorrect-media-item-id
Content-type: application/json
Authorization: Bearer oauth2-token

जीईटी अनुरोध से यह रिस्पॉन्स मिलता है:

{
  "mediaItemResults": [
    {
      "mediaItem": {
        "id": "media-item-id",
        ...
      }
    },
    {
      "mediaItem": {
        "id": "another-media-item-id",
        ...
      }
    },
    {
      "status": {
        "code": 3,
        "message": "Invalid media item ID."
      }
    }
  ]
}

बेस यूआरएल

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

Picker API के लिए:

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

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

लाइब्रेरी एपीआई के लिए:

बेस यूआरएल 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 पिक्सल चौड़ा और 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 के बाइट ऐक्सेस करने के लिए, baseUrl को डाउनलोड किए गए वीडियो dv पैरामीटर के साथ जोड़ें.

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

जानकारी

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