इस प्रोजेक्ट के बारे में

# CasCap.GooglePhotosCli एक अनौपचारिक Google Photos कमांड लाइन इंटरफ़ेस, जो `googlephotos` नामक एक .NET ग्लोबल टूल के रूप में वितरित होता है, जिसका उपयोग Google Photos खाते में मीडिया अपलोड करने और एल्बम का प्रबंधन करने के लिए किया जाता है。 ## महत्वपूर्ण: Google ने 31 मार्च 2025 को Photos APIs बदल दिए Google ने किसी भी थर्ड-पार्टी अनुप्रयोग द्वारा उपयोगकर्ता की Google Photos लाइब्रेरी के साथ क्या कर सकता है, इसे मौलिक रूप से कम कर दिया है। यह टूल और इसके नीचे स्थित [CasCap.Api.GooglePhotos](https://github.com/f2calv/CasCap.Api.GooglePhotos) लाइब्रेरी उस बदलाव द्वारा सीमित हैं: - Library API केवल **इस टूल के OAuth क्लाइंट द्वारा बनाई गईं एल्बम और मीडिया आइटम** ही देख सकती है। आपके खाते में पहले से मौजूद सब कुछ इसके लिए अदृश्य है। - पूरी लाइब्रेरी पढ़ना, और इसलिए पूरी लाइब्रेरी वाली डुप्लिकेट डिटेक्शन और पूरी लाइब्रेरी बैकअप, अब संभव नहीं है。 - Library API शेयरिंग और शाेयर्ड-एल्बम ऑपरेशन पूरी तरह से हटा दिए गए थे。 - मौजूदा उपयोगकर्ता मीडिया केवल Picker API के माध्यम से पहुँचा जा सकता है, जिसमें उपयोगकर्ता को एक-एक सत्र में आइटम इंटरेक्टिवली चुनने होते हैं。 वर्जन 1.0 ने उन कमांड्स को हटा दिया है जिनकी पूरी लाइब्रेरी एक्सेस पर निर्भरता थी, न कि उन्हें भ्रामक आंशिक परिणाम देने वाली छोड़ दिया। [Google का API अद्यतन](https://developers.google.com/photos/support/updates) देखें。 ### वर्जन 1.0 में हटाए गए | कमांड | कारण | | --- | --- | | `mediaitems duplicates` | डुप्लिकेट डिटेक्शन को पूरी लाइब्रेरी पढ़ने की आवश्यकता है。| | `sync`, `albums sync` | लॉन्ग-लाइब्रेरी मेटाडेटा कैश करने के लिए अब कुछ नहीं बचा।| | Interactive क्रेडेंशियल प्रॉम्प्ट | क्रेडेंशियल अब कॉन्फ़िगरेशन से आते हैं; [कॉन्फ़िगरेशन](#configuration) देखें।| ## इनस्टॉलेशन टूल को [.NET ग्लोबल टूल](https://learn.microsoft.com/dotnet/core/tools/global-tools) के रूप में वितरित किया गया है: ```powershell dotnet tool update --global googlephotos ``` इसके लिए [.NET 10 रूटाइम](https://dotnet.microsoft.com/download/dotnet/10.0) की आवश्यकता है。 ## Google Cloud सेटअप 1. [Google Cloud console](https://console.cloud.google.com/) में एक प्रोजेक्ट बनाएं。 2. **APIs & Services > Library** खोलें और **Google Photos Library API** सक्षम करें。 3. OAuth consent screen कॉन्फ़िगर करें और **OAuth क्लाइंट ID** बनाएं जिसका प्रकार **Desktop app** हो。 4. क्लाइंट ID और क्लाइंट सीक्रेट नोट करें; वे नीचे दी गई कॉन्फ़िगरेशन के माध्यम से प्रदान किए जाते हैं。 पूर्ण सेटअप गाइडेंस [लाइब्रेरी दस्तावेज़ीकरण](https://github.com/f2calv/CasCap.Api.GooglePhotos#google-cloud-setup) में है。 ## कॉन्फ़िगरेशन टूल `CasCap:GooglePhotosOptions` सेक्शन को निम्नलिखित क्रम में बांधता है:शipped `appsettings.json`, वर्तमान वर्किंग डायरेक्ट्री में `appsettings.json`, .NET User Secrets, और एन्वायरनमेंट वेरिएबल्स。 क्योंकि एक ग्लोबल टूल एक read-only स्टोर में इनस्टॉल होता है, User Secrets या एन्वायरनमेंट वेरिएबल्स व्यावहारिक विकल्प हैं: ```powershell $env:CasCap__GooglePhotosOptions__User = "your.email@example.com" $env:CasCap__GooglePhotosOptions__ClientId = "000000000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com" $env:CasCap__GooglePhotosOptions__ClientSecret = "your-client-secret" ``` या जहां आप टूल चलाते हैं उसके बगल में एक `appsettings.json`: ```json { "CasCap": { "GooglePhotosOptions": { "User": "your.email@example.com", "ClientId": "000000000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com", "ClientSecret": "your-client-secret", "Scopes": [ "AppendOnly", "ReadOnlyAppCreatedData", "EditAppCreatedData" ] } } } ``` | Scope | किसके लिए चाहिए | | --- | --- | | `AppendOnly` | `mediaitems upload`, `albums add` | | `ReadOnlyAppCreatedData` | `albums list`, `albums download`, `mediaitems list` | | `EditAppCreatedData` | अपलोड किए गए मीडिया आइटम को एल्बम में जोड़ना | कभी भी क्लाइंट सीक्रेट कმიट न करें。OAuth ग्रैंट स्वयं `%APPDATA%/googlephotos/auth` (या प्लेटफ़ॉर्म समकक्ष) के तहत `Google.Apis.Auth` द्वारा कैश्ड होता है और `googlephotos logout` से साफ़ किया जा सकता है。 ## उपयोग हर कमांड के पास context-sensitive help होती है: ```powershell googlephotos --help googlephotos albums --help ``` ### एल्बम ```powershell # सूची देखें जिसे इस टूल ने बनाया है googlephotos albums list # केवल उन एल्बम दिखाएं जो किसी अन्य एल्बम के साथ शीर्षक साझा करते हैं googlephotos albums list --duplicates # खाली एल्बम बनाएं googlephotos albums add -t "my album title" # एल्बम के मीडिया आइटम डाउनलोड करें googlephotos albums download -t "my album title" -o ./download # resized, cropped, EXIF संरक्षित प्रतियां डाउनलोड करें googlephotos albums download -t "my album title" -o ./download --maxheight 100 --crop --exif --overwrite ``` ### मीडिया आइटम ```powershell # इस टूल द्वारा बनाए गए मीडिया आइटम की सूची googlephotos mediaitems list # फ़ोल्डर ट्री अपलोड करें googlephotos mediaitems upload -s ./photos # केवल JPEG अपलोड करें, नामित एल्बम में, प्रॉम्प्ट किए बिना googlephotos mediaitems upload -s ./photos --pattern *.jpg -t "holiday 2026" -y # फ़ोल्डर ट्री अपलोड करें, एक-एक सब-फ़ोल्डर के लिए एक एल्बम बनाते हुए googlephotos mediaitems upload -s ./photos --hierarchy ``` ### साइन आउट ```powershell googlephotos logout ``` ## डेवलपमेंट ```powershell dotnet build CasCap.GooglePhotosCli.Debug.slnx dotnet test src/CasCap.GooglePhotosCli.Tests/CasCap.GooglePhotosCli.Tests.csproj ``` Debug सॉल्यूशन `CasCap.Api.GooglePhotos` को एक लोकल प्रोजेक्ट रिफ़रंस के माध्यम से रिज़ॉल्व करता है, इसलिए यह उम्मीद करता है कि वह रिपॉजिटरी इसी के साथ क्लोन की गई हो। Release सॉल्यूशन प्रकाशित NuGet पैकेज का उपयोग करता है。 ## फ़ीडबैक और मुद्दे कृपया [GitHub issues page](https://github.com/f2calv/CasCap.GooglePhotosCli/issues) पर कुछ भी उठाएं。 ## लाइसेंस CasCap.GooglePhotosCli Copyright © 2020 [@f2calv](https://github.com/f2calv) के अधीन है [MIT license](LICENSE) के तहत।