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

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

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

ऐप्लिकेशन से बनाए गए मीडिया आइटम ऐक्सेस करने के लिए, 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 दिखता है. अगर कोई गड़बड़ी हुई है, तो 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 में मौजूद बेस यूआरएल, मीडिया आइटम के रॉ बाइट का ऐक्सेस देते हैं. इससे आपके ऐप्लिकेशन को उन्हें डाउनलोड या दिखाने में मदद मिलती है. ये यूआरएल, एल्बम की सूची (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 पिक्सल चौड़ा और 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

जानकारी

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