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