iCloudPD – zálohování fotek z iCloud
Bohužel se jedná o službu, která bude jednorázově spouštěná (klient) a z tohoto důvodu je nevhodné se ji pokoušet implementovat přímo do IOTstacku. Navíc je potřeba vložit ručně heslo (lze i automaticky) či jednou za čas 2FA kód s potvrzením na telefonu.
A nyní se již vrhneme na konkrétní řešení s pomocí projektu iCloud Photos Downloader (icloudpd).
Krok č. 1 – vytvoření skriptu
Začneme příkazem pro editaci a vytvoření nového souboru, který nazveme icloud_photo_download.sh
:
mcedit ~/.local/bin/icloud_photo_download.sh
Do něj vložíme následující obsah, kde si pochopitelně nastavíme vlastní přihlašovací jmého/heslo (nahradit za vaše iCloud přístupové údaje u hodnot PRIHLASOVACIJMENO
a PRIHLASOVACIHESLO
) a případně dle vlastního uvážení poupravíme i složky, kde se budou fotky ukládat. Skript bude kontrolovat posledních 500 fotek:
!/usr/bin/env bash
cd ~/IOTstack
docker run -it --rm --name icloud -v ~/iCloudPhotos:/data -v ~/IOTstack/volumes/icloudpd/cookies:/cookies -e TZ=Europe/Prague icloudpd/icloudpd:latest icloudpd --directory /data --cookie-directory /cookies --folder-structure {:%Y/%Y-%m-%d} --username PRIHLASOVACIJMENO --password PRIHLASOVACIHESLO --size original --recent 500
Při prvním spuštění je vhodné vynechat poslední přepínač --recent 500
, aby skript stáhl veškeré dostupné fotografie.
Krok č. 2 – nastavení práv
Aby mohl být skript spouštěn, je potřeba mu nastavit patřičná práva. Velmi jednoduchá věc, kterou obstará příkaz:
chmod 755 ~/.local/bin/icloud_photo_download.sh
Krok č. 3 – nastavení pravidelného spouštění
Zde se vysloveně nabízí použití cronu, tedy zadáme příkaz:
crontab -e
A na konec vložíme následující kód, které bude spouštět skript každý den ve 4:30 ráno:
30 04 * * * icloud_photo_download.sh >>./Logs/icloud_photo_download.log 2>&1
Poznámka pod čarou: skript samozřejmě můžeme vyvolat ručně zadáním icloud_photo_download.sh
, čímž můžeme ověřit i funkčnost a poprvé stáhnout všechny fotky (při vypuštění posledního přepínače – viz výše). Jak vidíte na screenu níže, skript zrovna stahuje bezmála 33 tisíc fotek 😀