|
1 | | -# Nuances and Known Issues |
2 | | - |
3 | | -## iCloud Authentication |
4 | | - |
5 | | -### MFA |
6 | | - |
7 | | -If your Apple account has two-factor authentication (multi-factor authentication, MFA) enabled, |
8 | | -you will be prompted for a code when you run the script. Two-factor authentication will expire after an interval set by Apple, |
9 | | -at which point you will have to re-authenticate. This interval is currently two months. Apple requires MFA for all new accounts. |
10 | | - |
11 | | -You can receive an email notification when two-factor authentication expires by passing the |
12 | | -`--smtp-username` and `--smtp-password` options. Emails will be sent to `--smtp-username` by default, |
13 | | -or you can send to a different email address with `--notification-email`. |
14 | | - |
15 | | -If you want to send notification emails using your Gmail account, and you have enabled two-factor authentication, you will need to generate an App Password at <https://myaccount.google.com/apppasswords> |
16 | | - |
17 | | -### FIDO |
18 | | - |
19 | | -Authentication to iCloud with hardware keys (FIDO) is not supported. |
20 | | - |
21 | | -### ADP |
22 | | - |
23 | | -Advanced Data Protection (ADP) for iCloud accounts is not supported because iCloudPD simulates web access, which is disabled with ADP. |
24 | | - |
25 | | -### System Keyring |
26 | | - |
27 | | -You can store your password in the system keyring using the `icloud` command-line tool: |
28 | | - |
29 | | -``` plain |
30 | | -$ icloud --username [email protected] |
31 | | -ICloud Password for [email protected]: |
32 | | -Save password in keyring? (y/N) |
33 | | -``` |
34 | | - |
35 | | -If you have stored a password in the keyring, you will not be required to provide a password |
36 | | -when running the script. |
37 | | - |
38 | | -If you would like to delete a password stored in your system keyring, |
39 | | -you can clear a stored password using the `--delete-from-keyring` command-line option: |
40 | | - |
41 | | -``` sh |
42 | | -icloud --username [email protected] --delete-from-keyring |
43 | | -``` |
44 | | - |
45 | | -## Error on the First Run |
46 | | - |
47 | | -When you run the script for the first time, you might see an error message like this: |
48 | | - |
49 | | -``` plain |
50 | | -Bad Request (400) |
51 | | -``` |
52 | | - |
53 | | -This error often happens because your account hasn't used the iCloud API before, so Apple's servers need to prepare some information about your photos. This process can take around 5-10 minutes, so please wait a few minutes and try again. |
54 | | - |
55 | | -If you are still seeing this message after 30 minutes, then please [open an issue on GitHub](https://github.com/icloud-photos-downloader/icloud_photos_downloader/issues/new) and post the script output. |
56 | | - |
57 | | -## Access from Mainland China |
58 | | - |
59 | | -Access to iCloud.com is blocked from mainland China. `icloudpd` can be used with `--domain cn` parameter to support downloading iCloud phtotos from mainland China, however, people reported mixed results with that parameter. |
60 | | - |
61 | | -## MacOS binary |
62 | | - |
63 | | -`icloudpd` is available as Intel 64bit binary for MacOS, but works on ARM macs too (M1, M2). |
64 | | - |
65 | | -Here are the steps to make it working: |
66 | | -- download binary from Github [Releases](https://github.com/icloud-photos-downloader/icloud_photos_downloader/releases) into desired local folder |
67 | | -- add executable flag by running `chmod +x icloudpd-1.17.0-macos-amd64` |
68 | | -- start it from the terminal: `icloudpd-1.17.0-macos-amd64` |
69 | | -- Apple will tell you that it cannot check for malicous software and refuse to run the app; click "Ok" |
70 | | -- Open "System Settings"/"Privacy & Security" and find `icloudpd-1.17.0-macos-amd64` as blocked app; Click "Allow" |
71 | | -- Start `icloudpd-1.17.0-macos-amd64` from the terminal again |
72 | | -- Apple will show another warning; click "Open" |
73 | | -- After that you can run `icloudpd-1.17.0-macos-amd64 --help` or any other supported command/option |
| 1 | +# Nuances and Known Issues |
| 2 | + |
| 3 | +## iCloud Authentication |
| 4 | + |
| 5 | +### MFA |
| 6 | + |
| 7 | +If your Apple account has two-factor authentication (multi-factor authentication, MFA) enabled, |
| 8 | +you will be prompted for a code when you run the script. Two-factor authentication will expire after an interval set by Apple, |
| 9 | +at which point you will have to re-authenticate. This interval is currently two months. Apple requires MFA for all new accounts. |
| 10 | + |
| 11 | +You can receive an email notification when two-factor authentication expires by passing the |
| 12 | +`--smtp-username` and `--smtp-password` options. Emails will be sent to `--smtp-username` by default, |
| 13 | +or you can send to a different email address with `--notification-email`. |
| 14 | + |
| 15 | +If you want to send notification emails using your Gmail account, and you have enabled two-factor authentication, you will need to generate an App Password at <https://myaccount.google.com/apppasswords> |
| 16 | + |
| 17 | +### FIDO |
| 18 | + |
| 19 | +Authentication to iCloud with hardware keys (FIDO) is not supported. |
| 20 | + |
| 21 | +### ADP |
| 22 | + |
| 23 | +Advanced Data Protection (ADP) for iCloud accounts is not supported because iCloudPD simulates web access, which is disabled with ADP. |
| 24 | + |
| 25 | +### System Keyring |
| 26 | + |
| 27 | +You can store your password in the system keyring using the `icloud` command-line tool: |
| 28 | + |
| 29 | +``` plain |
| 30 | +$ icloud --username [email protected] |
| 31 | +ICloud Password for [email protected]: |
| 32 | +Save password in keyring? (y/N) |
| 33 | +``` |
| 34 | + |
| 35 | +If you have stored a password in the keyring, you will not be required to provide a password |
| 36 | +when running the script. |
| 37 | + |
| 38 | +If you would like to delete a password stored in your system keyring, |
| 39 | +you can clear a stored password using the `--delete-from-keyring` command-line option: |
| 40 | + |
| 41 | +``` sh |
| 42 | +icloud --username [email protected] --delete-from-keyring |
| 43 | +``` |
| 44 | + |
| 45 | +## Error on the First Run |
| 46 | + |
| 47 | +When you run the script for the first time, you might see an error message like this: |
| 48 | + |
| 49 | +``` plain |
| 50 | +Bad Request (400) |
| 51 | +``` |
| 52 | + |
| 53 | +This error often happens because your account hasn't used the iCloud API before, so Apple's servers need to prepare some information about your photos. This process can take around 5-10 minutes, so please wait a few minutes and try again. |
| 54 | + |
| 55 | +If you are still seeing this message after 30 minutes, then please [open an issue on GitHub](https://github.com/icloud-photos-downloader/icloud_photos_downloader/issues/new) and post the script output. |
| 56 | + |
| 57 | +## Access from Mainland China |
| 58 | + |
| 59 | +Access to iCloud.com is blocked from mainland China. `icloudpd` can be used with `--domain cn` parameter to support downloading iCloud phtotos from mainland China, however, people reported mixed results with that parameter. |
| 60 | + |
| 61 | +## MacOS binary |
| 62 | + |
| 63 | +`icloudpd` is available as Intel 64bit binary for MacOS, but works on ARM macs too (M1, M2). |
| 64 | + |
| 65 | +Here are the steps to make it working: |
| 66 | +- download binary from Github [Releases](https://github.com/icloud-photos-downloader/icloud_photos_downloader/releases) into desired local folder |
| 67 | +- add executable flag by running `chmod +x icloudpd-1.17.1-macos-amd64` |
| 68 | +- start it from the terminal: `icloudpd-1.17.1-macos-amd64` |
| 69 | +- Apple will tell you that it cannot check for malicous software and refuse to run the app; click "Ok" |
| 70 | +- Open "System Settings"/"Privacy & Security" and find `icloudpd-1.17.1-macos-amd64` as blocked app; Click "Allow" |
| 71 | +- Start `icloudpd-1.17.1-macos-amd64` from the terminal again |
| 72 | +- Apple will show another warning; click "Open" |
| 73 | +- After that you can run `icloudpd-1.17.1-macos-amd64 --help` or any other supported command/option |
0 commit comments