Amazon Photos API - Documentation Authentification¶
Vue d'ensemble¶
L'API Amazon Photos/Drive nécessite une authentification via cookies de session Amazon. La librairie Python amazon_photos est utilisée pour interagir avec l'API.
Headers HTTP requis¶
Header critique : x-amz-clouddrive-appid¶
Ce header est obligatoire pour toutes les requêtes à l'API Amazon Drive/Photos.
Note : La valeur est un identifiant d'application encodé en base64. C'est toujours la même valeur.
Sans ce header, l'API renvoie systématiquement une erreur 401 Unauthorized avec le message "BadToken" ou "Get error during session authentication".
Autres headers requis¶
| Header | Valeur | Description |
|---|---|---|
User-Agent |
Browser UA string | Ex: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 |
x-amzn-sessionid |
Valeur du cookie session-id |
Identifiant de session Amazon |
Accept |
*/* |
Types de contenu acceptés |
Accept-Language |
en_US ou fr_FR |
Langue |
Referer |
https://www.amazon.fr/ |
Page de référence |
Headers optionnels (navigateur)¶
Ces headers sont envoyés par le navigateur mais ne sont pas strictement nécessaires :
sec-ch-ua: "Chromium";v="145", "Google Chrome";v="145"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
Cookies requis¶
Les cookies doivent être extraits d'une session authentifiée sur amazon.fr (ou autre TLD selon le pays).
Cookies obligatoires¶
| Cookie | Description | Exemple de valeur |
|---|---|---|
session-id |
Identifiant de session | 260-1305919-9156156 |
session-token |
Token de session (long) | QExajR6kOibPvZxhFp66... |
at-acbfr |
Token d'authentification Atza | Atza\|gQAK8wV_AwEBAt... |
sess-at-acbfr |
Token de session signé | FdV6VL8MhuAXjID6fje... |
sst-acbfr |
SST token | Sst1\|PQK_Ra-v0mTff7... |
x-acbfr |
Token X | UsxeNctz4CIg8TwNb6x... |
ubid-acbfr |
Identifiant utilisateur | 259-1536965-5200042 |
Cookies optionnels¶
| Cookie | Description | Valeur |
|---|---|---|
i18n-prefs |
Préférences devise | EUR |
lc-acbfr |
Langue/pays | fr_FR |
Suffixe TLD¶
Le suffixe -acbfr indique le TLD français (.fr). Pour d'autres pays :
- .com : pas de suffixe ou _main
- .co.uk : -acbgb
- .de : -acbde
- etc.
Format du fichier cookies.json¶
{
"session-id": "260-1305919-9156156",
"session-token": "QExajR6kOibPvZxhFp66mcbFf1pvI1+xr+...",
"at-acbfr": "Atza|gQAK8wV_AwEBAt-33ObMWeNtpF8DlSA3k7_t...",
"sess-at-acbfr": "FdV6VL8MhuAXjID6fjedEO0GAdNG4V7+GGIBuP5F52g=",
"sst-acbfr": "Sst1|PQK_Ra-v0mTff7xyCU35CQdqCUFnrCdPXvIUHTyb...",
"x-acbfr": "UsxeNctz4CIg8TwNb6xIWPx9DDAZNWf1?7oq6LRwp930...",
"ubid-acbfr": "259-1536965-5200042",
"i18n-prefs": "EUR",
"lc-acbfr": "fr_FR"
}
Endpoints API¶
Base URL¶
Endpoints principaux¶
| Endpoint | Méthode | Description |
|---|---|---|
/nodes?filters=isRoot:true |
GET | Récupérer le nœud racine |
/nodes/{nodeId}/children |
GET | Lister les enfants d'un dossier |
/nodes/{nodeId} |
GET | Détails d'un nœud |
/nodes |
POST | Créer un nœud (dossier/fichier) |
/nodes/{nodeId}/content |
PUT | Uploader contenu |
Paramètres communs¶
Patch de la librairie amazon_photos¶
La librairie amazon_photos ne contient pas le header x-amz-clouddrive-appid par défaut. Il faut patcher le fichier _api.py :
Localisation du fichier¶
Modification¶
Ligne ~70, dans le constructeur __init__, section headers du Client :
Avant :
Après :
headers={
'user-agent': random.choice(USER_AGENTS),
'x-amzn-sessionid': cookies['session-id'],
'x-amz-clouddrive-appid': 'YW16bjEuYXBwbGljYXRpb24uMjllMmU2YjgxZDE3NDhjYWIxZjM4MDQwZGZmMjJkYmY',
},
Commande de patch¶
sed -i "s/'x-amzn-sessionid': cookies\['session-id'\],/'x-amzn-sessionid': cookies['session-id'],\n 'x-amz-clouddrive-appid': 'YW16bjEuYXBwbGljYXRpb24uMjllMmU2YjgxZDE3NDhjYWIxZjM4MDQwZGZmMjJkYmY',/" \
/opt/amazon-sync/venv/lib/python3.11/site-packages/amazon_photos/_api.py
Extraction des cookies¶
Méthode 1 : Extension navigateur¶
Utiliser une extension comme "Cookie-Editor" ou "EditThisCookie" : 1. Se connecter à amazon.fr 2. Aller sur la page Amazon Photos 3. Exporter les cookies au format JSON 4. Extraire les cookies nécessaires
Méthode 2 : DevTools¶
- Ouvrir DevTools (F12)
- Onglet Network
- Se connecter à Amazon Photos
- Cliquer sur une requête vers
/drive/v1/ - Copier les cookies depuis l'onglet Headers
Méthode 3 : HAR Export¶
- Ouvrir DevTools (F12)
- Onglet Network
- Naviguer sur Amazon Photos
- Clic droit → "Save all as HAR"
- Extraire les cookies et headers du fichier HAR
Durée de validité¶
Les cookies Amazon ont une durée de vie variable :
- session-token : ~1-2 semaines
- at-acbfr (Atza) : quelques heures à quelques jours
- session-id : plusieurs mois
Il est recommandé de rafraîchir les cookies régulièrement (toutes les semaines) pour éviter les erreurs 401.
Erreurs courantes¶
| Code | Message | Cause | Solution |
|---|---|---|---|
| 401 | "BadToken" | Header x-amz-clouddrive-appid manquant |
Ajouter le header |
| 401 | "Get error during session authentication" | Cookies expirés ou incomplets | Rafraîchir les cookies |
| 403 | "Forbidden" | Compte non autorisé | Vérifier l'abonnement Amazon Photos |
| 429 | "Too Many Requests" | Rate limiting | Attendre et réessayer avec backoff |
Référence¶
- Librairie : amazon-photos
- API non officielle : Reverse-engineered depuis l'interface web Amazon Photos
- TLD supportés : .com, .fr, .co.uk, .de, .es, .it, etc.