منصوبے کے بارے میں
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`: لائبریری بھر میں کوئی میٹا ڈیٹا باقی نہیں بچا جسے کیش کیا جا سکے۔
- انٹرایکٹو کریڈینشل پرامپٹ: کریڈینشل اب کنفیگریشن سے آتے ہیں؛ کنفیگریشن دیکھیں۔
تنصیب
یہ ٹول .NET گلوبل ٹول کے طور پر تقسیم کیا جاتا ہے (https://learn.microsoft.com/dotnet/core/tools/global-tools):
dotnet tool update --global googlephotos
اس کے لیے .NET 10 رن ٹائم درکار ہے (https://dotnet.microsoft.com/download/dotnet/10.0)۔
Google Cloud سیٹ اپ
1. Google Cloud کنسول میں ایک پروجیکٹ بنائیں (https://console.cloud.google.com/)۔
2. APIs & Services > Library کھولیں اور Google Photos Library API کو فعال کریں۔
3. OAuth consent screen ترتیب دیں اور Desktop app قسم کا OAuth client ID بنائیں۔
4. کلائنٹ ID اور کلائنٹ سیکرٹ نوٹ کریں؛ یہ نیچے دی گئی کنفیگریشن کے ذریعے فراہم کیے جاتے ہیں۔
مکمل سیٹ اپ رہنمائی لائبریری دستاویزات میں موجود ہے: https://github.com/f2calv/CasCap.Api.GooglePhotos#google-cloud-setup
کنفیگریشن
یہ ٹول `CasCap:GooglePhotosOptions` سیکشن کو باندھتا ہے، ترجیح کی بڑھتی ہوئی ترتیب میں: شپ شدہ `appsettings.json`، موجودہ ورکنگ ڈائریکٹری میں `appsettings.json`، .NET User Secrets، اور ماحولیاتی متغیرات۔
چونکہ گلوبل ٹول صرف پڑھنے کے قابل اسٹور میں انسٹال ہوتا ہے، User Secrets یا ماحولیاتی متغیرات عملی انتخاب ہیں:
$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`:
{
"CasCap": {
"GooglePhotosOptions": {
"User": "your.email@example.com",
"ClientId": "000000000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com",
"ClientSecret": "your-client-secret",
"Scopes": [
"AppendOnly",
"ReadOnlyAppCreatedData",
"EditAppCreatedData"
]
}
}
}
- `AppendOnly`: `mediaitems upload`, `albums add` کے لیے درکار
- `ReadOnlyAppCreatedData`: `albums list`, `albums download`, `mediaitems list` کے لیے درکار
- `EditAppCreatedData`: اپ لوڈ کردہ میڈیا آئٹمز کو البمز میں شامل کرنے کے لیے
کلائنٹ سیکرٹ کبھی کمٹ نہ کریں۔ OAuth گرانٹ خود `Google.Apis.Auth` کے ذریعے `%APPDATA%/googlephotos/auth` (یا پلیٹ فارم کے مساوی) میں کیش ہوتی ہے اور اسے `googlephotos logout` سے صاف کیا جا سکتا ہے۔
استعمال
ہر کمانڈ میں سیاق و سباق کے لحاظ سے مدد ہوتی ہے:
googlephotos --help
googlephotos albums --help
البمز
# اس ٹول کے بنائے ہوئے البمز کی فہرست
googlephotos albums list
# صرف وہ البمز دکھائیں جن کا عنوان کسی دوسرے البم سے مشترک ہو
googlephotos albums list --duplicates
# ایک خالی البم بنائیں
googlephotos albums add -t "my album title"
# البم کے میڈیا آئٹمز ڈاؤن لوڈ کریں
googlephotos albums download -t "my album title" -o ./download
# ری سائز شدہ، کراپ شدہ، EXIF محفوظ کرنے والی کاپیاں ڈاؤن لوڈ کریں
googlephotos albums download -t "my album title" -o ./download --maxheight 100 --crop --exif --overwrite
میڈیا آئٹمز
# اس ٹول کے بنائے ہوئے میڈیا آئٹمز کی فہرست
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
سائن آؤٹ
googlephotos logout
ڈیولپمنٹ
dotnet build CasCap.GooglePhotosCli.Debug.slnx
dotnet test src/CasCap.GooglePhotosCli.Tests/CasCap.GooglePhotosCli.Tests.csproj
ڈیبگ سلوشن `CasCap.Api.GooglePhotos` کو مقامی پروجیکٹ ریفرنس کے ذریعے حل کرتا ہے، اس لیے اسے توقع ہے کہ وہ ریپوزٹری اس کے ساتھ کلون ہوگی۔ ریلیز سلوشن شائع شدہ NuGet پیکج استعمال کرتا ہے۔
فیڈ بیک اور مسائل
براہ کرم کسی بھی چیز کو GitHub issues صفحہ پر اٹھائیں: https://github.com/f2calv/CasCap.GooglePhotosCli/issues
لائسنس
CasCap.GooglePhotosCli © 2020 [@f2calv](https://github.com/f2calv) ہے، MIT لائسنس (LICENSE) کے تحت۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.