फ़ोटो लाइब्रेरी या एल्बम के कॉन्टेंट की सूची देखने के लिए कॉल करने के बाद, आपके ऐप्लिकेशन को मीडिया आइटम के आईडी सेव करने चाहिए, न कि मीडिया आइटम को. ऐसा इसलिए होता है, क्योंकि मीडिया आइटम का कॉन्टेंट बदल सकता है. साथ ही, रिस्पॉन्स में शामिल यूआरएल कुछ समय बाद एक्सपायर हो जाते हैं. मीडिया आइटम आईडी, किसी मीडिया आइटम की खास पहचान करता है. जैसे, उपयोगकर्ता की लाइब्रेरी में मौजूद कोई फ़ोटो या वीडियो.
अनुमति के लिए ज़रूरी स्कोप
ऐप्लिकेशन से बनाए गए मीडिया आइटम ऐक्सेस करने के लिए,
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 |
जानकारी चौड़ाई, किसी इमेज मीडिया आइटम को ऐक्सेस करने के लिए, आपको उन डाइमेंशन की जानकारी देनी होगी जिन्हें आपको अपने ऐप्लिकेशन में दिखाना है. जैसे, किसी वीडियो का थंबनेल या फ़ोटो. इससे, आसपेक्ट रेशियो को बनाए रखते हुए, इमेज को इन डाइमेंशन में स्केल किया जा सकता है. ऐसा करने के लिए, उदाहरणों में दिखाए गए तरीके के मुताबिक, बेस यूआरएल को अपने ज़रूरी डाइमेंशन के साथ जोड़ें. उदाहरण: base-url=wmax-width-hmax-height यहां ऐसे मीडिया आइटम को दिखाने का उदाहरण दिया गया है जिसकी चौड़ाई 2048 पिक्सल और ऊंचाई 1024 पिक्सल से ज़्यादा नहीं होनी चाहिए: https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024 |
c |
जानकारी फ़ोटो का काटा गया हिस्सा, अगर आपको इमेज को अपनी तय की गई चौड़ाई और लंबाई के डाइमेंशन में काटना है, तो ज़रूरी साइज़ (पिक्सल में), [1, 16383] की रेंज में होना चाहिए. अगर इमेज की चौड़ाई या ऊंचाई, अनुरोध किए गए साइज़ से ज़्यादा है, तो इमेज को आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बनाए रखते हुए, छोटा और काटा जाता है. उदाहरण: base-url=wmax-width-hmax-height-c इस उदाहरण में, ऐप्लिकेशन ऐसा मीडिया आइटम दिखाता है जो बिल्कुल 256 पिक्सल चौड़ा और 256 पिक्सल ऊंचा हो, जैसे कि कोई थंबनेल: https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c |
d |
जानकारी डाउनलोड, अगर आपको जगह की जानकारी वाले मेटाडेटा को छोड़कर, इमेज का सारा Exif मेटाडेटा बरकरार रखते हुए उसे डाउनलोड करना है, तो बेस यूआरएल को उदाहरण: base-url=d इस उदाहरण में, ऐप्लिकेशन जगह की जानकारी वाले मेटाडेटा को छोड़कर, सभी मेटाडेटा के साथ इमेज डाउनलोड करता है: https://lh3.googleusercontent.com/p/Az....XabC=d |
वीडियो के बेस यूआरएल
यहां उन विकल्पों की सूची दी गई है जिनका इस्तेमाल वीडियो के बेस यूआरएल के साथ किया जा सकता है:
पैरामीटर | |
---|---|
dv |
जानकारी किसी वीडियो dv पैरामीटर, ओरिजनल वीडियो के अच्छी क्वालिटी वाले ट्रांसकोड किए गए वर्शन का अनुरोध करता है. यह पैरामीटर, w और h पैरामीटर के साथ काम नहीं करता. वीडियो डाउनलोड करने के लिए बेस यूआरएल से, बिट भेजने में कुछ सेकंड लग सकते हैं. इस पैरामीटर का इस्तेमाल करने से पहले, पक्का करें कि मीडिया आइटम का
उदाहरण: base-url=dv यहां दिए गए उदाहरण में, किसी वीडियो के बाइट डाउनलोड करने का तरीका बताया गया है: https://lh3.googleusercontent.com/p/AF....BsdZ=dv |
w , h , c , और
d |
जानकारी वीडियो का थंबनेल ऐक्सेस करने के लिए, इमेज बेस यूआरएल पैरामीटर में से किसी एक का इस्तेमाल करें. डिफ़ॉल्ट रूप से, सभी वीडियो थंबनेल में वीडियो चलाने के बटन का ओवरले शामिल होता है. इस ओवरले को हटाने के लिए, -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 |
जानकारी मोशन फ़ोटो मीडिया आइटम का वीडियो एलिमेंट पाने के लिए, |
w , h , c , और
d |
जानकारी मोशन फ़ोटो मीडिया आइटम का फ़ोटो एलिमेंट पाने के लिए, इमेज के बेस यूआरएल के फ़ॉर्मैट का इस्तेमाल करें. |