up mapillary batch command
This commit is contained in:
parent
ed63e229d6
commit
9d00868be4
2
mapillary_sequences_userscript/.gitignore
vendored
Normal file
2
mapillary_sequences_userscript/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
out*
|
||||||
|
sequences*.json
|
@ -1,7 +1,29 @@
|
|||||||
# Export en masse de photos de Mapillary vers panoramax
|
# Export en masse de photos de Mapillary vers panoramax
|
||||||
|
|
||||||
|
## Quand tout est déjà installé:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source secrets_variables.sh
|
||||||
|
username="mon_compte"
|
||||||
|
bash find_user_id.sh $username
|
||||||
|
# ce qui crée un fichier out_mon_compte.json
|
||||||
|
# on va chercher ensuite les numéros de séquence à partir des identifiants de couverture d'image
|
||||||
|
python3 get_sequences_of_username.py --username="$username" --dev_token="$MAPILLARY_DEV_TOKEN" --max_sequence=9999
|
||||||
|
# ce qui donne un fichier sequences_mon_compte.txt
|
||||||
|
# que l'on convertit en script bash à utiliser avec le writer.py du dépot https://github.com/Stefal/mapillary_download.git
|
||||||
|
python3 text_array_to_download_script.py --username=eric_s --dev_token="$MAPILLARY_DEV_TOKEN"
|
||||||
|
```
|
||||||
|
on peut copier les scripts bash dans le dépot mapillary_export et les exécuter pour récupérer les séquences dans le dossier data, que l'on peut ensuite envoyer en masse vers panoramax par geovisio_cli
|
||||||
|
|
||||||
|
## Installation et procédure de téléchargement
|
||||||
* avoir un token développeur mapillary
|
* avoir un token développeur mapillary
|
||||||
* se rendre sur la page mapillary d'un utilisateur dont on souhaite obtenir les identifiants de séquences de photos pour exporter les contenus des séquences photos, exemple: https://www.mapillary.com/app/user/gendy54
|
* se rendre sur la page mapillary d'un utilisateur dont on souhaite obtenir les identifiants de séquences de photos pour exporter les contenus des séquences photos, exemple: https://www.mapillary.com/app/user/gendy54
|
||||||
|
* filtrer les requêtes en cherchant getlatestactivity
|
||||||
|
* copier la valeur de cette requête en tant que cURL et la mettre dans le script curl_land.sh à la place de la requête curl existante
|
||||||
|
* remplacer "200" par "10000", c'est le nombre de séquences à récupérer
|
||||||
|
* lancer le script curl_land et mettre sa sortie dans out.json: `bash curl_land.sh > out.json`
|
||||||
|
*
|
||||||
|
*
|
||||||
* copier secret_variables_examples.sh et remplir avec un token de développeur Mapillary (ça demande d'avoir toujours un compte Mapillary fonctionnel ou de demander à quelqu'un qui en a un)
|
* copier secret_variables_examples.sh et remplir avec un token de développeur Mapillary (ça demande d'avoir toujours un compte Mapillary fonctionnel ou de demander à quelqu'un qui en a un)
|
||||||
* cp secret_variables_examples.sh secret_variables.sh
|
* cp secret_variables_examples.sh secret_variables.sh
|
||||||
* editor secret_variables.sh
|
* editor secret_variables.sh
|
||||||
@ -9,7 +31,11 @@
|
|||||||
* Recopiez la requete en tant que cURL et collez là en remplacement de celle dans curl_land.sh
|
* Recopiez la requete en tant que cURL et collez là en remplacement de celle dans curl_land.sh
|
||||||
* Notez l'ID de l'utilisateur.
|
* Notez l'ID de l'utilisateur.
|
||||||
* Lancez la récupération des identifiants de séquence.
|
* Lancez la récupération des identifiants de séquence.
|
||||||
* `bash get_user.sh boblennon 10123456`
|
* `bash find_user_id.sh boblennon`
|
||||||
|
* Ceci crée un fichier json: out_boblennon.json
|
||||||
|
* On peut ensuite télécharger les séquences: source secrets_variables.sh && python3 get_sequences_of_username.py --username="gotpo" --dev_token="$MAPILLARY_DEV_TOKEN" --max_sequence=9999
|
||||||
|
|
||||||
|
|
||||||
* Vous obtenez un script bash selon le nom d'utilisateur demandé (script_bash_get_sequences_for_user_boblennon.sh ) à lancer dans le dossier de mapillary_download.py du dépot https://github.com/Stefal/mapillary_download.git .
|
* Vous obtenez un script bash selon le nom d'utilisateur demandé (script_bash_get_sequences_for_user_boblennon.sh ) à lancer dans le dossier de mapillary_download.py du dépot https://github.com/Stefal/mapillary_download.git .
|
||||||
* Pour ce faire, clonez le dépot mapillary_download et déplacez dedans les scripts bash générés par cet exportateur.
|
* Pour ce faire, clonez le dépot mapillary_download et déplacez dedans les scripts bash générés par cet exportateur.
|
||||||
* Si vous avez les libs (suivez les instructions d'installation de mapillary_download) vous devriez pouvoir récupérer vos séquences de photos mapillary. Et si votre connexion internet plante vous pourrez relancer ce script, ça n'ira pas retélécharger les photos déjà trouvées.
|
* Si vous avez les libs (suivez les instructions d'installation de mapillary_download) vous devriez pouvoir récupérer vos séquences de photos mapillary. Et si votre connexion internet plante vous pourrez relancer ce script, ça n'ira pas retélécharger les photos déjà trouvées.
|
||||||
@ -21,3 +47,11 @@
|
|||||||
* Si vous avez bien rempli le fichier secrets_variables.sh ça devrait envoyer vers panoramax, sur l'instance osm fr.
|
* Si vous avez bien rempli le fichier secrets_variables.sh ça devrait envoyer vers panoramax, sur l'instance osm fr.
|
||||||
* Au premier lancement du script il faudra vous identifier avec votre compte Panoramax, qui sur l'instance osm fr est relié à un compte osm.
|
* Au premier lancement du script il faudra vous identifier avec votre compte Panoramax, qui sur l'instance osm fr est relié à un compte osm.
|
||||||
* Enjaillez!
|
* Enjaillez!
|
||||||
|
|
||||||
|
```
|
||||||
|
cd data
|
||||||
|
cd $USERNAME
|
||||||
|
source secrets_variables.sh
|
||||||
|
|
||||||
|
for dir in */; do dir=${dir%?} ; geovisio upload --api-url https://panoramax.openstreetmap.fr "$dir" --token=$TOKEN ; done
|
||||||
|
```
|
27
mapillary_sequences_userscript/batch_get_username.sh
Normal file
27
mapillary_sequences_userscript/batch_get_username.sh
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# récupérer les séquences pour un tas d'utilisateurs
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Liste des usernames
|
||||||
|
usernames=("gotpo" "romelito" "julessgds" "evaseignanx" "fost" "ciutadavng" "yopasepor" "jasskum" "jonnymccullagh" "reisender" "derfred" "zlphr" "gatpro" "heilbron" "h4n5antw")
|
||||||
|
|
||||||
|
|
||||||
|
source secrets_variables.sh
|
||||||
|
# Boucle sur la liste des usernames
|
||||||
|
for username in "${usernames[@]}"; do
|
||||||
|
# Lancer la commande pour chaque username
|
||||||
|
|
||||||
|
echo "---------- utilisateur: $username"
|
||||||
|
|
||||||
|
if [ ! -f "out_$username.json" ]; then
|
||||||
|
bash find_user.sh $username
|
||||||
|
fi
|
||||||
|
# Vérifier si le fichier sequences_$username.txt existe
|
||||||
|
if [ ! -f "sequences_$username.txt" ]; then
|
||||||
|
python3 get_sequences_of_username.py --username="$username" --dev_token="$MAPILLARY_DEV_TOKEN" --max_sequence=9999
|
||||||
|
fi
|
||||||
|
# Lancer la commande pour chaque username
|
||||||
|
if [ ! -f "script_bashget_sequences_for_user_$username.sh" ]; then
|
||||||
|
python3 text_array_to_download_script.py --username=eric_s --dev_token="$MAPILLARY_DEV_TOKEN"
|
||||||
|
fi
|
||||||
|
done
|
@ -4,12 +4,5 @@
|
|||||||
# copier la valeur curl de la requete dans les devtool firefox
|
# copier la valeur curl de la requete dans les devtool firefox
|
||||||
# remplacer la valeur 10000 qui limite le nombre de séquences par disons 10000
|
# remplacer la valeur 10000 qui limite le nombre de séquences par disons 10000
|
||||||
# lancer la commande : bash curl_land.sh > out.json
|
# lancer la commande : bash curl_land.sh > out.json
|
||||||
source secrets_variables.sh
|
#source secrets_variables.sh
|
||||||
|
curl "https://graph.mapillary.com/graphql?doc=query%20getLatestActivity(%24id%3A%20ID!%2C%20%24first%3A%20Int%2C%20%24after%3A%20ID%2C%20%24hide_after%3A%20Int)%20%7B%0A%20%20%20%20%20%20fetch__User(id%3A%20%24id)%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20feed(first%3A%20%24first%2C%20after%3A%20%24after%2C%20hide_failed_sequences_after_days%3A%20%24hide_after)%20%7B%0A%20%20%20%20%20%20%20%20%20%20page_info%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20start_cursor%0A%20%20%20%20%20%20%20%20%20%20%20%20end_cursor%0A%20%20%20%20%20%20%20%20%20%20%20%20has_next_page%0A%20%20%20%20%20%20%20%20%20%20%20%20has_previous_page%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20cluster_id%20type%20created_at_seconds%20captured_at_seconds%20thumb_url%20item_count%20image_id%20status%20initial_processing_status%20anonymization_status%20tiler_status%20error_code%20timezone%0A%20%20%20%20%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D&query=query%20getLatestActivity(%24id%3A%20ID!%2C%20%24first%3A%20Int%2C%20%24after%3A%20ID%2C%20%24hide_after%3A%20Int)%20%7B%0A%20%20fetch__User(id%3A%20%24id)%20%7B%0A%20%20%20%20id%0A%20%20%20%20feed(%0A%20%20%20%20%20%20first%3A%20%24first%0A%20%20%20%20%20%20after%3A%20%24after%0A%20%20%20%20%20%20hide_failed_sequences_after_days%3A%20%24hide_after%0A%20%20%20%20)%20%7B%0A%20%20%20%20%20%20page_info%20%7B%0A%20%20%20%20%20%20%20%20start_cursor%0A%20%20%20%20%20%20%20%20end_cursor%0A%20%20%20%20%20%20%20%20has_next_page%0A%20%20%20%20%20%20%20%20has_previous_page%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20%20%20cluster_id%0A%20%20%20%20%20%20%20%20type%0A%20%20%20%20%20%20%20%20created_at_seconds%0A%20%20%20%20%20%20%20%20captured_at_seconds%0A%20%20%20%20%20%20%20%20thumb_url%0A%20%20%20%20%20%20%20%20item_count%0A%20%20%20%20%20%20%20%20image_id%0A%20%20%20%20%20%20%20%20status%0A%20%20%20%20%20%20%20%20initial_processing_status%0A%20%20%20%20%20%20%20%20anonymization_status%0A%20%20%20%20%20%20%20%20tiler_status%0A%20%20%20%20%20%20%20%20error_code%0A%20%20%20%20%20%20%20%20timezone%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D%0A%20%20%20%20__typename%0A%20%20%7D%0A%20%20__typename%0A%7D&operationName=getLatestActivity&variables=%7B%22id%22%3A%22${ID}%22%2C%22first%22%3A10000%2C%22after%22%3Anull%2C%22hide_after%22%3A14%7D" --compressed -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0' -H 'Accept: */*' -H 'Accept-Language: fr,en-US;q=0.7,en;q=0.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Referer: https://www.mapillary.com/' -H 'content-type: application/json' -H 'authorization: OAuth MLYARA3tSkHGXL0kEKYPx49q2BjzoZCfpZAl9HO7R8YdUKT99yMZB2pJxPzkSd3khd6C1ZBPgrUYZCE3wlsCG3ZC4UNn4RuJZChbIzmRfiE10ZA7eX06KGEhUb9yIA8HZBzyKg2PRlflG3h0pwZDZD' -H 'Origin: https://www.mapillary.com' -H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: same-site' -H 'Sec-GPC: 1' -H 'Priority: u=4' -H 'TE: trailers' > out.json
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
curl 'https://graph.mapillary.com/graphql?doc=query%20getLatestActivity(%24id%3A%20ID!%2C%20%24first%3A%20Int%2C%20%24after%3A%20ID%2C%20%24hide_after%3A%20Int)%20%7B%0A%20%20%20%20%20%20fetch__User(id%3A%20%24id)%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20feed(first%3A%20%24first%2C%20after%3A%20%24after%2C%20hide_failed_sequences_after_days%3A%20%24hide_after)%20%7B%0A%20%20%20%20%20%20%20%20%20%20page_info%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20start_cursor%0A%20%20%20%20%20%20%20%20%20%20%20%20end_cursor%0A%20%20%20%20%20%20%20%20%20%20%20%20has_next_page%0A%20%20%20%20%20%20%20%20%20%20%20%20has_previous_page%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20cluster_id%20type%20created_at_seconds%20captured_at_seconds%20thumb_url%20item_count%20image_id%20status%20initial_processing_status%20anonymization_status%20tiler_status%20error_code%20timezone%0A%20%20%20%20%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D&query=query%20getLatestActivity(%24id%3A%20ID!%2C%20%24first%3A%20Int%2C%20%24after%3A%20ID%2C%20%24hide_after%3A%20Int)%20%7B%0A%20%20fetch__User(id%3A%20%24id)%20%7B%0A%20%20%20%20id%0A%20%20%20%20feed(%0A%20%20%20%20%20%20first%3A%20%24first%0A%20%20%20%20%20%20after%3A%20%24after%0A%20%20%20%20%20%20hide_failed_sequences_after_days%3A%20%24hide_after%0A%20%20%20%20)%20%7B%0A%20%20%20%20%20%20page_info%20%7B%0A%20%20%20%20%20%20%20%20start_cursor%0A%20%20%20%20%20%20%20%20end_cursor%0A%20%20%20%20%20%20%20%20has_next_page%0A%20%20%20%20%20%20%20%20has_previous_page%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20%20%20cluster_id%0A%20%20%20%20%20%20%20%20type%0A%20%20%20%20%20%20%20%20created_at_seconds%0A%20%20%20%20%20%20%20%20captured_at_seconds%0A%20%20%20%20%20%20%20%20thumb_url%0A%20%20%20%20%20%20%20%20item_count%0A%20%20%20%20%20%20%20%20image_id%0A%20%20%20%20%20%20%20%20status%0A%20%20%20%20%20%20%20%20initial_processing_status%0A%20%20%20%20%20%20%20%20anonymization_status%0A%20%20%20%20%20%20%20%20tiler_status%0A%20%20%20%20%20%20%20%20error_code%0A%20%20%20%20%20%20%20%20timezone%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D%0A%20%20%20%20__typename%0A%20%20%7D%0A%20%20__typename%0A%7D&operationName=getLatestActivity&variables=%7B%22id%22%3A%22100515188859784%22%2C%22first%22%3A200%2C%22after%22%3Anull%2C%22hide_after%22%3A14%7D' --compressed -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0' -H 'Accept: */*' -H 'Accept-Language: fr,en-US;q=0.7,en;q=0.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Referer: https://www.mapillary.com/' -H 'content-type: application/json' -H 'authorization: OAuth EEEEEEEEEEEEEEEEEEEEEEEEEE' -H 'Origin: https://www.mapillary.com' -H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: same-site' -H 'Sec-GPC: 1' -H 'Priority: u=4' -H 'TE: trailers'
|
|
59
mapillary_sequences_userscript/find_user_id.sh
Normal file
59
mapillary_sequences_userscript/find_user_id.sh
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# récupérer l'id utilisateur et ses séquences dans un fichier json
|
||||||
|
echo "Prenez un token oauth sur https://www.mapillary.com/app/user/$1"
|
||||||
|
|
||||||
|
USERNAME=$1
|
||||||
|
|
||||||
|
response=$(curl "https://graph.mapillary.com/graphql?doc=query%20getNewSequences(%24username%3A%20String!)%20%7B%0A%20%20%20%20%20%20user_by_username(username%3A%20%24username)%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20new_sequences%20%7B%0A%20%20%20%20%20%20%20%20%20%20sequence_keys%0A%20%20%20%20%20%20%20%20%20%20geojson%0A%20%20%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D&query=query%20getNewSequences(%24username%3A%20String!)%20%7B%0A%20%20user_by_username(username%3A%20%24username)%20%7B%0A%20%20%20%20id%0A%20%20%20%20new_sequences%20%7B%0A%20%20%20%20%20%20sequence_keys%0A%20%20%20%20%20%20geojson%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D%0A%20%20%20%20__typename%0A%20%20%7D%0A%20%20__typename%0A%7D&operationName=getNewSequences&variables=%7B%22username%22%3A%22${USERNAME}%22%7D" --compressed -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0' -H 'Accept: */*' -H 'Accept-Language: fr,en-US;q=0.7,en;q=0.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Referer: https://www.mapillary.com/' -H 'content-type: application/json' -H "authorization: OAuth MLYARA3tSkHGXL0kEKYPx49q2BjzoZCfpZAl9HO7R8YdUKT99yMZB2pJxPzkSd3khd6C1ZBPgrUYZCE3wlsCG3ZC4UNn4RuJZChbIzmRfiE10ZA7eX06KGEhUb9yIA8HZBzyKg2PRlflG3h0pwZDZD" -H 'Origin: https://www.mapillary.com' -H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: same-site' -H 'Sec-GPC: 1' -H 'Priority: u=4' -H 'TE: trailers')
|
||||||
|
|
||||||
|
ID=$(echo "$response" | jq -r '.data.user_by_username.id')
|
||||||
|
|
||||||
|
echo "ID: $ID"
|
||||||
|
|
||||||
|
curl "https://graph.mapillary.com/graphql?doc=query%20getLatestActivity(%24id%3A%20ID!%2C%20%24first%3A%20Int%2C%20%24after%3A%20ID%2C%20%24hide_after%3A%20Int)%20%7B%0A%20%20%20%20%20%20fetch__User(id%3A%20%24id)%20%7B%0A%20%20%20%20%20%20%20%20id%0A%20%20%20%20%20%20%20%20feed(first%3A%20%24first%2C%20after%3A%20%24after%2C%20hide_failed_sequences_after_days%3A%20%24hide_after)%20%7B%0A%20%20%20%20%20%20%20%20%20%20page_info%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20start_cursor%0A%20%20%20%20%20%20%20%20%20%20%20%20end_cursor%0A%20%20%20%20%20%20%20%20%20%20%20%20has_next_page%0A%20%20%20%20%20%20%20%20%20%20%20%20has_previous_page%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20cluster_id%20type%20created_at_seconds%20captured_at_seconds%20thumb_url%20item_count%20image_id%20status%20initial_processing_status%20anonymization_status%20tiler_status%20error_code%20timezone%0A%20%20%20%20%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D&query=query%20getLatestActivity(%24id%3A%20ID!%2C%20%24first%3A%20Int%2C%20%24after%3A%20ID%2C%20%24hide_after%3A%20Int)%20%7B%0A%20%20fetch__User(id%3A%20%24id)%20%7B%0A%20%20%20%20id%0A%20%20%20%20feed(%0A%20%20%20%20%20%20first%3A%20%24first%0A%20%20%20%20%20%20after%3A%20%24after%0A%20%20%20%20%20%20hide_failed_sequences_after_days%3A%20%24hide_after%0A%20%20%20%20)%20%7B%0A%20%20%20%20%20%20page_info%20%7B%0A%20%20%20%20%20%20%20%20start_cursor%0A%20%20%20%20%20%20%20%20end_cursor%0A%20%20%20%20%20%20%20%20has_next_page%0A%20%20%20%20%20%20%20%20has_previous_page%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20nodes%20%7B%0A%20%20%20%20%20%20%20%20cluster_id%0A%20%20%20%20%20%20%20%20type%0A%20%20%20%20%20%20%20%20created_at_seconds%0A%20%20%20%20%20%20%20%20captured_at_seconds%0A%20%20%20%20%20%20%20%20thumb_url%0A%20%20%20%20%20%20%20%20item_count%0A%20%20%20%20%20%20%20%20image_id%0A%20%20%20%20%20%20%20%20status%0A%20%20%20%20%20%20%20%20initial_processing_status%0A%20%20%20%20%20%20%20%20anonymization_status%0A%20%20%20%20%20%20%20%20tiler_status%0A%20%20%20%20%20%20%20%20error_code%0A%20%20%20%20%20%20%20%20timezone%0A%20%20%20%20%20%20%20%20__typename%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20__typename%0A%20%20%20%20%7D%0A%20%20%20%20__typename%0A%20%20%7D%0A%20%20__typename%0A%7D&operationName=getLatestActivity&variables=%7B%22id%22%3A%22${ID}%22%2C%22first%22%3A10000%2C%22after%22%3Anull%2C%22hide_after%22%3A14%7D" --compressed -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0' -H 'Accept: */*' -H 'Accept-Language: fr,en-US;q=0.7,en;q=0.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Referer: https://www.mapillary.com/' -H 'content-type: application/json' -H 'authorization: OAuth MLYARA3tSkHGXL0kEKYPx49q2BjzoZCfpZAl9HO7R8YdUKT99yMZB2pJxPzkSd3khd6C1ZBPgrUYZCE3wlsCG3ZC4UNn4RuJZChbIzmRfiE10ZA7eX06KGEhUb9yIA8HZBzyKg2PRlflG3h0pwZDZD' -H 'Origin: https://www.mapillary.com' -H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: same-site' -H 'Sec-GPC: 1' -H 'Priority: u=4' -H 'TE: trailers' > "out_${1}.json"
|
||||||
|
|
||||||
|
echo " lancez: \n\n python3 get_sequences_of_username.py --username=\"$1\" ; bash get_user.sh $1 $ID "
|
||||||
|
|
||||||
|
#ID="106275364940146"
|
||||||
|
#
|
||||||
|
#curl \
|
||||||
|
# -d '{
|
||||||
|
# "query": "query getLatestActivity($id: ID!, $first: Int, $after: ID, $hide_after: Int) {
|
||||||
|
# fetch__User(id: $id) {
|
||||||
|
# id
|
||||||
|
# feed(first: $first, after: $after, hide_failed_sequences_after_days: $hide_after) {
|
||||||
|
# page_info {
|
||||||
|
# start_cursor
|
||||||
|
# end_cursor
|
||||||
|
# has_next_page
|
||||||
|
# has_previous_page
|
||||||
|
# }
|
||||||
|
# nodes {
|
||||||
|
# cluster_id
|
||||||
|
# type
|
||||||
|
# created_at_seconds
|
||||||
|
# captured_at_seconds
|
||||||
|
# thumb_url
|
||||||
|
# item_count
|
||||||
|
# image_id
|
||||||
|
# status
|
||||||
|
# initial_processing_status
|
||||||
|
# anonymization_status
|
||||||
|
# tiler_status
|
||||||
|
# error_code
|
||||||
|
# timezone
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
# }",
|
||||||
|
# "operationName": "getLatestActivity",
|
||||||
|
# "variables": {
|
||||||
|
# "id": "'${ID}'",
|
||||||
|
# "first": 5000,
|
||||||
|
# "after": null,
|
||||||
|
# "hide_after": 100
|
||||||
|
# }
|
||||||
|
# }' \
|
||||||
|
# --compressed -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0' -H 'Accept: */*' -H 'Accept-Language: fr,en-US;q=0.7,en;q=0.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Referer: https://www.mapillary.com/' -H 'content-type: application/json' -H 'authorization: OAuth MLYARA3tSkHGXL0kEKYPx49q2BjzoZCfpZAl9HO7R8YdUKT99yMZB2pJxPzkSd3khd6C1ZBPgrUYZCE3wlsCG3ZC4UNn4RuJZChbIzmRfiE10ZA7eX06KGEhUb9yIA8HZBzyKg2PRlflG3h0pwZDZD' -H 'Origin: https://www.mapillary.com' -H 'Connection: keep-alive' -H 'Sec-Fetch-Dest: empty' -H 'Sec-Fetch-Mode: cors' -H 'Sec-Fetch-Site: same-site' -H 'Sec-GPC: 1' -H 'Priority: u=4' -H 'TE: trailers' > out.json
|
||||||
|
##
|
||||||
|
#cat out.json
|
12
mapillary_sequences_userscript/get_juillet.sh
Normal file
12
mapillary_sequences_userscript/get_juillet.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
bash get_user.sh evaseignanx 860674832310863
|
||||||
|
bash get_user.sh julessgds 103346386118689
|
||||||
|
bash get_user.sh romelito 109648011269039
|
||||||
|
bash get_user.sh jonnymccullagh 105727461666895
|
||||||
|
bash get_user.sh reisender 109369264625744
|
||||||
|
bash get_user.sh derfred 100419955536172
|
||||||
|
bash get_user.sh zlplhr 107963194773576
|
||||||
|
bash get_user.sh gaptpro 109770907917282
|
||||||
|
bash get_user.sh heilbron 101577445421924
|
||||||
|
bash get_user.sh konink360 405688198458497
|
||||||
|
bash get_user.sh koninklijke 100444315538123
|
||||||
|
bash get_user.sh eric_s 107837578118568
|
@ -50,6 +50,8 @@ def get_image_data_from_sequences():
|
|||||||
if limit_requests >= ii and image_id:
|
if limit_requests >= ii and image_id:
|
||||||
params = {"id": image_id, "fields": "id,sequence"}
|
params = {"id": image_id, "fields": "id,sequence"}
|
||||||
request_url = "https://graph.mapillary.com/" + str(image_id)+"?access_token="+dev_token+"&fields=id,sequence"
|
request_url = "https://graph.mapillary.com/" + str(image_id)+"?access_token="+dev_token+"&fields=id,sequence"
|
||||||
|
# print("requete: "+request_url)
|
||||||
|
|
||||||
response = requests.get(request_url)
|
response = requests.get(request_url)
|
||||||
|
|
||||||
# Analyse de la réponse
|
# Analyse de la réponse
|
||||||
|
@ -21,7 +21,7 @@ then
|
|||||||
##
|
##
|
||||||
else
|
else
|
||||||
echo "Aucune séquence trouvée (${num_sequences}) ! Pas d'autres actions à entreprendre."
|
echo "Aucune séquence trouvée (${num_sequences}) ! Pas d'autres actions à entreprendre."
|
||||||
cat "out_${username}.json"
|
# cat "out_${username}.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
# export de séquences mapillary
|
|
||||||
|
|
||||||
script à lancer dans le navigateur pour récupérer toutes les séquences d'un compte
|
|
||||||
pour que cela fonctionne il faut aller sur la page d'un utilisateur, https://www.mapillary.com/app/user/tykayn
|
|
||||||
puis scroller pour voir toutes les séquences
|
|
||||||
et lancer ce script dans la console js en le copiant collant pour avoir à la fin un tableau de toutes les séquences.
|
|
||||||
|
|
||||||
Pour que ça fonctionne bien il faut que le popup d'info soit ouvert.
|
|
||||||
Vous pouvez le recopier avec un clic dans la console de votre navigateur.
|
|
||||||
|
|
||||||
|
|
||||||
J'utilise ensuite un script qui lit un fichier texte contenant un tableau python listant des strings d'identifiants de séquences pour générer un script bash qui lance une commande par séquence pour télécharger toutes les images de la séquence en renommant les fichiers et en ajoutant les infos exif: le mapillary_download de stefmani pour lancer le téléchargement de chaque séquence à la suite.
|
|
||||||
https://github.com/Stefal/mapillary_download
|
|
||||||
[index.js](index.js)[index.js](index.js)
|
|
File diff suppressed because it is too large
Load Diff
1
mapillary_sequences_userscript/sequences_eric_s.txt
Normal file
1
mapillary_sequences_userscript/sequences_eric_s.txt
Normal file
File diff suppressed because one or more lines are too long
1
mapillary_sequences_userscript/sequences_gotpo.txt
Normal file
1
mapillary_sequences_userscript/sequences_gotpo.txt
Normal file
File diff suppressed because one or more lines are too long
@ -34,7 +34,7 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
output_file = f"script_bash_get_sequences_for_user_{username}.sh"
|
output_file = f"script_bash_get_sequences_for_user_{username}.sh"
|
||||||
|
|
||||||
access_token = "--access_token="+args.dev_token+" "
|
access_token = "--access_token='"+args.dev_token+"' "
|
||||||
format_string = "/usr/bin/python3 mapillary_download.py {} --sequence_id={}\n"
|
format_string = "/usr/bin/python3 mapillary_download.py {} --sequence_id={}\n"
|
||||||
|
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ if __name__ == '__main__':
|
|||||||
content = input_handle.read()
|
content = input_handle.read()
|
||||||
sequences = eval(content)
|
sequences = eval(content)
|
||||||
for seq in sequences:
|
for seq in sequences:
|
||||||
full_cmd = f"/usr/bin/python3 mapillary_download.py {access_token} --sequence_id={seq} --username={username}\n"
|
full_cmd = f"/usr/bin/python3 mapillary_download.py {access_token} --sequence_id='{seq}' --username={username}\n"
|
||||||
output.write(full_cmd)
|
output.write(full_cmd)
|
||||||
|
|
||||||
print(output_file)
|
print(output_file)
|
||||||
|
Loading…
Reference in New Issue
Block a user