को कॉल करने के बाद फ़ोटो लाइब्रेरी या एल्बम के कॉन्टेंट की सूची, लौटाए गए मीडिया आइटम को सेव करने के बजाय, आपके ऐप्लिकेशन को मीडिया आइटम के आईडी. ऐसा इसलिए है, क्योंकि मीडिया आइटम का कॉन्टेंट में बदलाव करते हैं और एक तय समय के बाद, इस जवाब में शामिल यूआरएल खत्म हो जाते हैं. कॉन्टेंट बनाने मीडिया आइटम आईडी किसी मीडिया आइटम की खास तौर पर पहचान करता है, जैसे कोई फ़ोटो या वीडियो लाइब्रेरी में मौजूद होता है.
ध्यान दें कि आपके ऐप्लिकेशन को उपयोगकर्ता की फ़ोटो या वीडियो को लंबे समय तक कैश मेमोरी में सेव नहीं करना चाहिए समय की अवधि के हिसाब से, लेकिन आपके इस्तेमाल के हिसाब से या कैश इस रूप में मीडिया आइटम आईडी लंबा जैसा ज़रूरी है. आपको यह भी ध्यान रखना चाहिए कि उपयोगकर्ता डेटा पर निजता लागू होती है जवाबदेही.
अनुमति के ज़रूरी दायरे
मीडिया आइटम ऐक्सेस करने के लिए, आपके ऐप्लिकेशन को इनमें से कम से कम किसी एक का अनुरोध करना होगा अनुमति के दायरे. जवाब के तौर पर दिखाए गए मीडिया आइटम का ऐक्सेस, आपके दायरों पर निर्भर करता है ने अनुरोध किया है.
photoslibrary.readonly
से उपयोगकर्ता के सभी मीडिया आइटम को ऐक्सेस करने की अनुमति मिलती है लाइब्रेरीphotoslibrary.readonly.appcreateddata
सिर्फ़ उन मीडिया आइटम को ऐक्सेस करने की अनुमति देता है ऐप्लिकेशन ने बनाए
मीडिया आइटम
ऐप्लिकेशन
mediaItem
मीडिया का एक प्रतिनिधित्व है, जैसे कि वह फ़ोटो या वीडियो जिसे
Google Photos लाइब्रेरी में सेव किया गया था. यह एक टॉप लेवल ऑब्जेक्ट है और इसकी प्रॉपर्टी
अलग-अलग मीडिया टाइप के हिसाब से अलग-अलग हो सकता है.
नीचे दी गई टेबल में mediaItem
प्रॉपर्टी दी गई हैं:
प्रॉपर्टी | |
---|---|
id |
स्थायी और स्थायी आईडी, जिसका इस्तेमाल ऑब्जेक्ट की पहचान करने के लिए किया जाता है. |
description |
मीडिया आइटम का ब्यौरा, जैसा कि अंदर दिख रहा है Google Photos. |
baseUrl |
इसका इस्तेमाल, रॉ बाइट ऐक्सेस करने के लिए किया जाता है. ज़्यादा जानकारी के लिए, बुनियादी यूआरएल देखें. |
productUrl |
Google Photos में इमेज का लिंक. यह लिंक नहीं जोड़ा जा सकता इसे सिर्फ़ उपयोगकर्ता खोल सकता है. यूआरएल इसमें मीडिया आइटम पर ले जाते हैं लाइब्रेरी. अगर यूआरएल किसी एल्बम खोज से मिला था, तो वह एल्बम में मौजूद आइटम पर ले जाता है. |
mimeType |
मीडिया आइटम किस तरह का है, ताकि मीडिया के टाइप को आसानी से पहचानने में मदद मिल सके
(उदाहरण के लिए: image/jpg ). |
filename |
मीडिया आइटम का फ़ाइल नाम, जो उपयोगकर्ता को Google Photos में दिखाया गया है ऐप्लिकेशन (आइटम की जानकारी वाले सेक्शन में). |
mediaMetadata |
यह इस बात पर निर्भर करता है कि मीडिया किस तरह का है, जैसे कि photo
या video .
पेलोड को कम करने के लिए, फ़ील्ड मास्क का इस्तेमाल किया जा सकता है.
|
contributorInfo |
यह फ़ील्ड सिर्फ़ तब अपने-आप भरता है, जब मीडिया आइटम किसी शेयर किए गए एल्बम में हो
इस ऐप्लिकेशन से बनाया गया है और उपयोगकर्ता ने
इसमें मीडिया को जोड़ने वाले योगदान देने वाले की जानकारी होती है आइटम. ज़्यादा जानकारी के लिए, मीडिया शेयर करना लेख पढ़ें. |
मीडिया आइटम खरीदें
मीडिया आइटम को वापस पाने के लिए, इस पर कॉल करें
mediaItems.get पर
mediaItemId
. अनुरोध एक मीडिया आइटम दिखाता है.
mediaItem
में आईडी, ब्यौरा, और यूआरएल जैसी प्रॉपर्टी शामिल होती हैं. कॉन्टेंट बनाने
photo
या video
में मौजूद अतिरिक्त जानकारी
फ़ाइल से लिंक किया गया है. यह मुमकिन है कि सभी प्रॉपर्टी मौजूद न हों. ContributorInfo
में मेटाडेटा शामिल है
शेयर किए गए एल्बम के आइटम के लिए. यह फ़ील्ड सिर्फ़ तब शामिल किया जाता है, जब
कॉन्टेंट की लिस्टिंग
शेयर किया गया एल्बम, जहां उपयोगकर्ता ने photoslibrary.sharing
दिया है
अनुमति का दायरा.
अगर मीडिया आइटम एक वीडियो है, तो पहले वीडियो फ़ाइल को प्रोसेस किया जाना चाहिए. कॉन्टेंट बनाने
mediaItem
में mediaMetadata
के अंदर एक status
फ़ील्ड है, जो
वीडियो फ़ाइल प्रोसेस होने की स्थिति. नई अपलोड की गई फ़ाइल
videoProcessingStatus
वैल्यू को PROCESSING
पहले डालें, फिर इस्तेमाल करने के लिए READY
होने से पहले. baseUrl
एक वीडियो मीडिया आइटम का आइकॉन तब तक उपलब्ध नहीं होगा, जब तक वीडियो प्रोसेस नहीं हो जाता.
आराम
जीईटी अनुरोध यहां दिया गया है:
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" } }
Java
फ़ोटो प्रॉपर्टी में फ़ोटो आइटम का मेटाडेटा होता है.
try { // Get a media item using its ID String mediaItemId = "..."; MediaItem item = photosLibraryClient.getMediaItem(mediaItemId); // Get some properties from the retrieved media item String id = item.getId(); String description = item.getDescription(); String baseUrl = item.getBaseUrl(); String productUrl = item.getProductUrl(); // ... if (item.hasMediaMetadata()) { // The media item contains additional metadata, such as the height and width MediaMetadata metadata = item.getMediaMetadata(); long height = metadata.getHeight(); long width = metadata.getWidth(); Timestamp creationTime = metadata.getCreationTime(); // ... if (metadata.hasPhoto()) { // This media item is a photo and has additional photo metadata Photo photoMetadata = metadata.getPhoto(); String cameraMake = photoMetadata.getCameraMake(); String cameraModel = photoMetadata.getCameraModel(); float aperture = photoMetadata.getApertureFNumber(); int isoEquivalent = photoMetadata.getIsoEquivalent(); // ... } } if (item.hasContributorInfo()) { // A user has contributed this media item to a shared album ContributorInfo contributorInfo = item.getContributorInfo(); String profilePictureBaseUrl = contributorInfo.getProfilePictureBaseUrl(); String displayName = contributorInfo.getDisplayName(); } } catch (ApiException e) { // Handle error }
वीडियो प्रॉपर्टी में, वीडियो आइटम का मेटाडेटा होता है.
try { // Get a media item using its ID String mediaItemId = "..."; MediaItem item = photosLibraryClient.getMediaItem(mediaItemId); // Get some properties from the retrieved media item String id = item.getId(); String description = item.getDescription(); String baseUrl = item.getBaseUrl(); String productUrl = item.getProductUrl(); // ... if (item.hasMediaMetadata()) { // The media item contains additional metadata, such as the height and width MediaMetadata metadata = item.getMediaMetadata(); long height = metadata.getHeight(); long width = metadata.getWidth(); Timestamp creationTime = metadata.getCreationTime(); // ... if (metadata.hasVideo()) { // This media item is a video and has additional video metadata Video videoMetadata = metadata.getVideo(); VideoProcessingStatus status = videoMetadata.getStatus(); if (status.equals(VideoProcessingStatus.READY)) { // This video media item has been processed String cameraMake = videoMetadata.getCameraMake(); String cameraModel = videoMetadata.getCameraModel(); double fps = videoMetadata.getFps(); // ... } } } if (item.hasContributorInfo()) { // A user has contributed this media item to a shared album ContributorInfo contributorInfo = item.getContributorInfo(); String profilePictureBaseUrl = contributorInfo.getProfilePictureBaseUrl(); String displayName = contributorInfo.getDisplayName(); } } catch (ApiException e) { // Handle error }
PHP
फ़ोटो प्रॉपर्टी में फ़ोटो आइटम का मेटाडेटा होता है.
try { // Get a media item using its ID $mediaItemId = "..."; $item = $photosLibraryClient->getMediaItem($mediaItemId); // Get some properties from the retrieved media item $id = $item->getId(); $description = $item->getDescription(); $baseUrl = $item->getBaseUrl(); $productUrl = $item->getProductUrl(); // ... $metadata = $item->getMediaMetadata(); if (!is_null($metadata)) { // The media item contains additional metadata, such as the height and width $height = $metadata->getHeight(); $width = $metadata->getWidth(); $creationTime = $metadata->getCreationTime(); // ... $photoMetadata = $metadata->getPhoto(); if (!is_null($photoMetadata)) { // This media item is a photo and has additional photo metadata $cameraMake = $photoMetadata->getCameraMake(); $cameraModel = $photoMetadata->getCameraModel(); $aperture = $photoMetadata->getApertureFNumber(); $isoEquivalent = $photoMetadata->getIsoEquivalent(); // ... } } $contributorInfo = $item->getContributorInfo(); if (!is_null($contributorInfo)) { // A user has contributed this media item to a shared album $profilePictureBaseUrl = $contributorInfo->getProfilePictureBaseUrl(); $displayName = $contributorInfo->getDisplayName(); } } catch (\Google\ApiCore\ApiException $e) { // Handle error }
वीडियो प्रॉपर्टी में, वीडियो आइटम का मेटाडेटा होता है.
try { // Get a media item using its ID $mediaItemId = "..."; $item = $photosLibraryClient->getMediaItem($mediaItemId); // Get some properties from the retrieved media item $id = $item->getId(); $description = $item->getDescription(); $baseUrl = $item->getBaseUrl(); $productUrl = $item->getProductUrl(); // ... $metadata = $item->getMediaMetadata(); if (!is_null($metadata)) { // The media item contains additional metadata, such as the height and width $height = $metadata->getHeight(); $width = $metadata->getWidth(); $creationTime = $metadata->getCreationTime(); // ... $videoMetadata = $metadata->getVideo(); if (!is_null($videoMetadata)) { // This media item is a video and has additional video metadata if (VideoProcessingStatus::READY == $videoMetadata->getStatus()) { // This video media item has been processed $cameraMake = $videoMetadata->getCameraMake(); $cameraModel = $videoMetadata->getCameraModel(); $fps = $videoMetadata->getFps(); // ... } } } $contributorInfo = $item->getContributorInfo(); if (!is_null($contributorInfo)) { // A user has contributed this media item to a shared album $profilePictureBaseUrl = $contributorInfo->getProfilePictureBaseUrl(); $displayName = $contributorInfo->getDisplayName(); } } catch (\Google\ApiCore\ApiException $e) { // Handle error }
एक से ज़्यादा मीडिया आइटम पाएं
कई मीडिया आइटम को उनके आइडेंटिफ़ायर के आधार पर वापस पाने के लिए, कॉल करें
mediaItems.batchGet
mediaItemId
का इस्तेमाल करके.
अनुरोध,
MediaItemResults
अनुरोध में दिए गए मीडिया आइटम आइडेंटिफ़ायर के क्रम में. हर एक नतीजा
MediaItem
शामिल है
या कोई गड़बड़ी होने पर Status
दिखेगा.
एक कॉल में 50 मीडिया आइटम का अनुरोध किया जा सकता है. इसकी सूची मीडिया आइटम में डुप्लीकेट आइडेंटिफ़ायर नहीं होने चाहिए और उन्हें खाली नहीं छोड़ा जा सकता.
आराम
यहां एक जीईटी अनुरोध दिया गया है, जिसमें बताया गया है कि ऐक्सेस सही है या नहीं
मीडिया आइटम. हर मीडिया आइटम आइडेंटिफ़ायर को नए के तौर पर तय करें
अनुरोध के हिस्से के तौर पर 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." } } ] }
Java
try { // List of media item IDs to retrieve List<String> mediaItemIds = Arrays .asList("MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID", "INCORRECT_MEDIA_ITEM_ID"); // Get a list of media items using their IDs BatchGetMediaItemsResponse response = photosLibraryClient .batchGetMediaItems(mediaItemIds); // Loop over each result for (MediaItemResult result : response.getMediaItemResultsList()) { // Each MediaItemresult contains a status and a media item if (result.hasMediaItem()) { // The media item was successfully retrieved, get some properties MediaItem item = result.getMediaItem(); String id = item.getId(); // ... } else { // If the media item is not set, an error occurred and the item could not be loaded // Check the status and handle the error Status status = result.getStatus(); // ... } } } catch (ApiException e) { // Handle error }
PHP
try { // List of media item IDs to retrieve $mediaItemIds = ["MEDIA_ITEM_ID", "ANOTHER_MEDIA_ITEM_ID", "INCORRECT_MEDIA_ITEM_ID"]; // Get a list of media items using their IDs $response = $photosLibraryClient->batchGetMediaItems($mediaItemIds); // Loop over each result foreach ($response->getMediaItemResults() as $itemResult) { // Each MediaItemresult contains a status and a media item $mediaItem = $itemResult->getMediaItem(); if(!is_null($mediaItem)){ // The media item was successfully retrieved, get some properties $id = $mediaItem->getId(); // ... } else { // If the media item is null, an error occurred and the item could not be loaded } } } catch (\Google\ApiCore\ApiException $e) { // Handle error }
बेस यूआरएल
Google Photos 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 पिक्सल चौड़ाई x 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 के साथ काम करता है पैरामीटर का इस्तेमाल करें. वीडियो डाउनलोड होने में कुछ सेकंड लग सकते हैं रिटर्न बाइट होना चाहिए. वीडियो डाउनलोड करने के लिए, डिफ़ॉल्ट रूप से H.264 एन्कोडिंग का इस्तेमाल करना होता है. अगर H.264 एन्कोडिंग काम नहीं करती है, तो VP9 का इस्तेमाल किया जाएगा. इस पैरामीटर का इस्तेमाल करने से पहले, जांच लें कि मीडिया आइटम का
उदाहरण: 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 |
जानकारी किसी मोशन फ़ोटो मीडिया आइटम के फ़ोटो एलिमेंट को वापस पाने के लिए, इसका इस्तेमाल करें इमेज के बेस यूआरएल का फ़ॉर्मैट. |