BeatOnStep — Android et iOS

BeatOnStep — Android and iOS

BeatOnStep

BeatOnStep

Politique de confidentialité

Privacy policy

← Accueil ← Home

Politique de confidentialité — BeatOnStep

Dernière mise à jour : 14 octobre 2026

1. Qui sommes-nous

BeatOnStep est une application mobile (Android et iOS) qui adapte la musique au rythme de votre allure de marche ou de course. L'application est disponible sur Google Play (Android, BeatOnStep) et l'App Store (iOS, BeatOnSteps).

Éditeur : Rafael Orset — contact : forum BeatOnStep

2. Principe général : collecte minimale, sans tracking commercial

BeatOnStep reste utilisable sans compte et propose un compte facultatif pour signer les partages du catalogue. Il n'utilise pas de publicité et n'effectue aucun tracking commercial ni profilage. Une mesure d'usage pseudonyme très limitée peut être envoyée au serveur BeatOnStep pour connaître uniquement le nombre de playlists personnelles importées par source (§ 3.9). Aucune cadence (pas/min), donnée de parcours, nom ou identifiant de playlist, titre, artiste ou compte musical n'est inclus dans cette mesure.

Selon les fonctions que vous activez, l'application peut échanger des données avec des services que vous choisissez (Mix démo / serveur musique, YouTube ou Apple Music si connectés, liens Spotify ou Deezer collés, analyse BPM) ou avec des infrastructures techniques (mises à jour). Le détail figure ci-dessous.

Comptes facultatifs du catalogue public

Le compte est facultatif : les séances, la course, la musique et le partage anonyme restent disponibles sans inscription. La création d'un compte sur le site stocke dans Cloudflare D1 une adresse e-mail privée, un pseudo public, un sel et une empreinte de mot de passe ainsi que la date d'inscription. Le site utilise un cookie de session sécurisé HttpOnly ; l'application peut stocker une autorisation de publication limitée à 30 jours, révocable à la déconnexion.

Seuls le pseudo et les séances ou playlists publiées sous ce pseudo deviennent publics. Les anciens partages anonymes ne sont pas attribués automatiquement. Aucun identifiant musical n'est transmis au compte du catalogue. Depuis « Mon profil », vous pouvez vous déconnecter ou supprimer votre compte. La suppression retire les signatures des cartes existantes (qui restent accessibles anonymement) et révoque les accès. Aucun usage marketing de l'e-mail. À ce stade, il n'existe pas encore de vérification e-mail ni de récupération de mot de passe. Ces protections devront être ajoutées avant un déploiement à grande échelle.

3. Fonctionnalités et flux de données

3.1 Fichiers audio locaux (Musiques téléphone)

  • Les fichiers que vous importez restent sur votre appareil.
  • Les métadonnées associées (chemin, BPM, préférences) sont stockées localement uniquement.
  • Aucun fichier audio n'est envoyé hors de l'appareil pour la détection de cadence ni la lecture locale, sauf si vous déclenchez l'analyse BPM serveur (§ 3.3).

3.2 Détection de cadence (pas/min)

  • L'accéléromètre est lu sur l'appareil pour estimer votre cadence de pas.
  • Ces mesures restent sur l'appareil par défaut et ne sont pas envoyées automatiquement. Elles peuvent uniquement être incluses dans un rapport de diagnostic si vous choisissez explicitement Bug / remarque → Envoyer (§ 3.11).
  • Elles servent uniquement au fonctionnement temps réel de l'app (sélection et lecture de musique adaptée à votre rythme).

3.3 Mix démo et serveur musique (optionnel)

Le catalogue de démo (278 morceaux libres de droits) est hébergé sur un serveur de l'éditeur (https://beatonstep.tail09d8d8.ts.net/music).

  • Ce serveur n'est pas un réseau social ni un service public : il sert uniquement le catalogue de démo.
  • Pas de création de compte, pas de cookie publicitaire, pas de télémétrie marketing.
  • Si vous envoyez un fichier audio pour analyse BPM, ce fichier transite par le serveur pour traitement ; il n'est pas conservé à des fins de stockage permanent ni revendu.

3.4 YouTube (optionnel)

La connexion à Google/YouTube est facultative et distincte du compte facultatif du catalogue BeatOnStep. Sans connexion Google, BeatOnStep n'accède pas aux données de votre compte YouTube.

  • Données consultées et finalité : avec votre consentement OAuth, BeatOnStep lit votre chaîne YouTube, vos playlists personnelles (y compris privées si l'API les expose), les morceaux et leurs métadonnées disponibles (identifiants, titres, artistes, durées et vignettes). Elles servent à afficher et importer votre bibliothèque, calculer ou modifier localement les BPM, préparer une séance et ouvrir la musique dans YouTube ou YouTube Music. Aucun fichier audio YouTube n'est téléchargé.
  • Autorisations : youtube.readonly sert à la lecture et à l'import ; userinfo.email sert uniquement à afficher l'adresse du compte connecté. Une autorisation d'écriture YouTube distincte n'est demandée que si vous choisissez « Autoriser la création de playlists » pour exporter manuellement une séance vers une nouvelle playlist privée. Aucune modification de votre compte YouTube n'est effectuée automatiquement pendant une course.
  • Mesures de protection : connexion OAuth avec PKCE, échanges HTTPS avec les API Google, aucun mot de passe Google demandé ou conservé. Les jetons d'accès et de renouvellement restent dans le stockage privé de l'application sur l'appareil (AsyncStorage, sans prétendre à un coffre-fort matériel dédié). Les requêtes Google normales partent directement de l'app ; les jetons ne sont pas envoyés au serveur BeatOnStep pour l'import ou la lecture.
  • Partage limité : noms et identifiants de playlists et BPM importés ne sont ni publiés dans le catalogue, ni vendus, ni utilisés pour la publicité. Seul un compteur pseudonyme de playlists importées, sans identifiants Google ni détails de titres, peut parvenir au serveur (§ 3.9). Un rapport technique envoyé volontairement peut contenir des identifiants de morceaux, jamais de jetons OAuth (§ 3.11).
  • Conservation : les jetons restent sur l'appareil tant que YouTube est connecté et sont effacés à la déconnexion. Les métadonnées et BPM déjà importés restent dans la bibliothèque locale jusqu'à leur suppression par l'utilisateur ou la désinstallation ; déconnecter YouTube ne les supprime pas automatiquement. Aucune copie permanente de la bibliothèque Google n'est conservée sur le serveur BeatOnStep.
  • Suppression et retrait du consentement : vous pouvez déconnecter YouTube dans l'app, supprimer les imports locaux et révoquer l'autorisation sur votre compte Google. Révoquer l'accès n'efface pas à lui seul les imports déjà présents sur le téléphone. Les données détenues par Google restent soumises à ses propres règles.

Protection des données Google/YouTube — précisions

L'accès Google est facultatif : lecture seule lors de la connexion ; consentement d'écriture distinct si l'utilisateur choisit la création de playlists. OAuth utilise PKCE (S256) et les requêtes API Google utilisent HTTPS. BeatOnStep ne reçoit pas le mot de passe Google. Les jetons résident dans le stockage applicatif privé sur l'appareil (AsyncStorage), sans prétendre à un coffre-fort matériel ou à un chiffrement dédié. Ils ne transitent pas par le serveur BeatOnStep pour les imports YouTube, ne figurent pas dans les rapports de diagnostic et sont effacés localement à la déconnexion. La bibliothèque importée reste locale sauf partage volontaire. L'autorisation peut être révoquée dans le compte Google. Ces données ne servent pas à la publicité ni à l'entraînement de modèles IA.

3.5 Apple Music (optionnel)

Si vous connectez un compte Apple pour utiliser Apple Music dans BeatOnStep :

  • Fonction initiée par vous ; BeatOnStep ne fournit pas de catalogue Apple Music.
  • Connexion Apple sécurisée ; l'éditeur ne reçoit pas votre mot de passe Apple.
  • Les jetons d'accès sont stockés localement sur l'appareil et ne sont jamais transmis à l'éditeur ni revendus.
  • L'app interroge les services Apple pour afficher vos playlists et métadonnées (titres, artistes, BPM saisis ou détectés).
  • Aucun fichier audio n'est mis en cache par BeatOnStep ; la lecture s'effectue dans l'app Apple Music — pas dans BeatOnStep.
  • Un abonnement Apple Music actif est requis pour écouter le catalogue via Apple.
  • Vous pouvez déconnecter Apple Music dans l'app à tout moment : les jetons locaux sont effacés.
  • Le traitement de votre compte Apple reste régi par les politiques d'Apple.

iPhone : lecture automatique dans Apple Music ; la musique peut continuer en arrière-plan pendant BeatOnStep.

Android : l'app Apple Music (Google Play) doit être installée ; BeatOnStep ouvre le morceau dans cette app (pas de lecteur intégré BeatOnStep).

3.6 Spotify (optionnel — liens Partager)

Lorsque vous utilisez Spotify dans BeatOnStep :

  • Fonction initiée par vous : vous collez le lien Partager d'un morceau, ou d'une playlist publique. BeatOnStep ne se connecte pas à votre compte Spotify.
  • L'app peut interroger le catalogue public de Spotify pour afficher le titre. Aucun mot de passe Spotify n'est demandé ni transmis à l'éditeur.
  • Les identifiants et métadonnées restent sur l'appareil.
  • La lecture s'effectue dans l'app Spotify — pas dans BeatOnStep. Un compte Spotify (et, selon les titres, un abonnement) peut être requis par Spotify.
  • Une playlist privée ne peut pas être lue sans connexion officielle, qui n'est pas proposée au public pour l'instant.
  • BeatOnStep ne fournit pas le catalogue Spotify.

3.7 Deezer (optionnel — liens Partager)

Lorsque vous utilisez Deezer dans BeatOnStep :

  • Fonction initiée par vous : vous collez le lien Partager d'un morceau, ou d'une playlist publique. BeatOnStep ne se connecte pas à votre compte Deezer.
  • L'app peut interroger le catalogue public Deezer (titre, durée, parfois BPM). Aucun mot de passe Deezer n'est demandé ni transmis à l'éditeur.
  • Les identifiants et métadonnées restent sur l'appareil.
  • La lecture s'effectue dans l'app Deezer — pas dans BeatOnStep. Un compte Deezer (et, selon les titres, un abonnement) peut être requis par Deezer.
  • Une playlist privée ne peut pas être lue sans connexion officielle, qui n'est pas proposée au public pour l'instant.
  • BeatOnStep ne fournit pas le catalogue Deezer.

3.8 Mises à jour (Expo OTA)

L'app peut contacter les services Expo pour vérifier et télécharger des mises à jour JavaScript liées à votre installation. Il ne s'agit pas d'un SDK publicitaire ; aucune donnée de cadence ni de bibliothèque musicale n'est envoyée via ce canal.

3.9 Mesure pseudonyme du nombre de playlists importées

Pour évaluer l'usage de la fonction d'import et améliorer le produit, BeatOnStep peut envoyer occasionnellement au serveur de l'éditeur un snapshot minimal comprenant : un identifiant d'installation aléatoire propre à BeatOnStep, la plateforme (iOS / Android), la version de l'app et le nombre de playlists personnelles encore importées pour Apple Music, YouTube, Spotify et Deezer.

  • Cette mesure correspond à de l'analytics produit : elle sert à comprendre l'utilisation de la fonction d'import et à orienter les améliorations de BeatOnStep.
  • Cette mesure ne contient aucun nom ni identifiant de playlist, aucun titre, artiste, token OAuth, compte musical, donnée audio, cadence (pas/min) ou parcours.
  • L'identifiant est généré aléatoirement par BeatOnStep. Il n'est pas l'identifiant Apple, Google, Android ou d'un fournisseur musical et ne contient ni nom, ni adresse e-mail, ni identifiant de compte.
  • Cet identifiant permet uniquement de rattacher les snapshots successifs à une même installation de BeatOnStep. Il n'est pas utilisé pour identifier la personne qui utilise l'app.
  • Les suppressions sont prises en compte : le snapshot suivant reflète le nombre de playlists encore présentes dans l'app.
  • L'envoi est limité : au plus une fois par jour après un changement et, si rien ne change, un rappel au plus une fois tous les 7 jours pour mesurer les installations actives.
  • Le serveur conserve seulement le dernier snapshot connu par installation afin de produire des statistiques cumulées depuis le début de cette mesure ; il ne conserve pas l'historique détaillé de chaque envoi. L'adresse IP peut être traitée techniquement pendant la connexion HTTPS mais n'est pas enregistrée dans le fichier de mesure.
  • Ces données ne sont ni vendues, ni utilisées pour la publicité, ni utilisées pour le suivi publicitaire (« tracking »), ni croisées avec des données provenant d'autres entreprises à des fins de profilage.

3.10 Suivi GPS des courses sur iOS, Android et Garmin (facultatif)

GPS du téléphone (si vous activez cette fonction). Lorsque vous démarrez volontairement une course ou une séance à objectif kilométrique avec GPS, BeatOnStep peut demander l'accès à la localisation pour mesurer la distance parcourue, calculer l'allure lorsqu'elle est disponible et suivre la progression des phases. Le GPS ne démarre pas à l'ouverture de l'application. Vous pouvez refuser l'accès ; les fonctionnalités nécessitant une distance GPS fiable seront alors indisponibles ou limitées. Mettre la séance en pause suspend le suivi ; terminer la séance l'arrête.

  • Sur iPhone, iOS peut demander la localisation pendant l'utilisation et l'autorisation nécessaire à la poursuite d'une séance lorsque le téléphone est verrouillé ou que l'application passe en arrière-plan.
  • Sur Android, la mesure nécessite la permission de localisation et, pendant une séance active, peut utiliser un service de premier plan avec une notification visible pour continuer sous écran verrouillé. BeatOnStep ne demande pas la permission Android distincte ACCESS_BACKGROUND_LOCATION.
  • Protection des positions : les coordonnées GPS brutes du téléphone sont traitées temporairement en mémoire par le module natif ; elles ne sont pas enregistrées comme historique de positions, ni transmises au serveur BeatOnStep ou aux services musicaux. Le module produit des mesures cumulées (notamment distance et durée) et peut générer sur iPhone une silhouette relative et non géolocalisée du parcours pour le récapitulatif. Les positions brutes sont effacées de la session après l'arrêt du suivi.

Montres Garmin compatibles. Si vous activez une montre Garmin, elle peut transmettre temporairement les métriques de course et les positions nécessaires au récapitulatif. Les coordonnées brutes reçues restent en mémoire pendant la course ; seule une silhouette relative, dépourvue de latitude et longitude, peut être conservée localement pour le bilan ou un visuel partagé.

Visibilité des cartes sportives. Lorsqu'une performance est acceptée par le serveur et qu'une carte sportive mondiale est attribuée à votre compte, le catalogue public peut afficher votre pseudo, la distance, le temps SUB, la difficulté et les événements de transfert (gain, donation ou libération), avec leurs dates. La fiche peut également indiquer le premier détenteur et celui ayant conservé la carte le plus longtemps. Un avertissement « Performance non validée » peut apparaître après une analyse facultative ; le nouveau détenteur n'en hérite jamais après un transfert. Aucun détail de télémétrie n'est publié. Les coordonnées GPS, justificatifs de course, adresses e-mail et identifiants privés ne sont jamais publiés. En cas de suppression du compte, votre pseudo n'apparaît plus dans cet historique.

Partages facultatifs. À votre demande, un récapitulatif, une carte de performance ou une activité Strava peut utiliser des résultats de séance (par exemple distance, durée, heure de départ et source de mesure). Pour l'export Strava, ces résultats passent par l'API BeatOnStep avant d'être envoyés à Strava avec votre autorisation ; aucune suite de coordonnées GPS brutes n'est transmise. Un visuel partagé peut contenir la silhouette relative du parcours, si elle existe. La mesure d'usage analytique du § 3.9 ne contient ni position GPS ni parcours.

3.11 Rapport Bug / remarque volontaire

Si vous utilisez le bouton Bug / remarque dans Réglages, BeatOnStep affiche un champ de message et demande une action explicite avant tout envoi. Si vous choisissez Envoyer, l'app transmet le même rapport technique que celui que vous pouvez partager manuellement en touchant la version de l'application, avec le message que vous avez saisi.

Ce rapport peut inclure :

  • la version, le build, le runtime et les informations techniques de livraison de l'application ;
  • des événements de diagnostic récents liés au fonctionnement de BeatOnStep ;
  • le diagnostic récent de cadence (pas/min), pouvant contenir des échantillons d'accéléromètre et la cadence calculée ;
  • des états techniques Garmin / Apple Watch et des intégrations musicales, par exemple disponibilité, états de lecture, erreurs et identifiants techniques de titres ou d'appareils lorsqu'ils figurent déjà dans le diagnostic ;
  • l'identifiant d'installation pseudonyme BeatOnStep, la plateforme et la version de l'app.

L'envoi est strictement déclenché par l'utilisateur : aucun rapport Bug / remarque n'est transmis automatiquement. Aucun mot de passe, token OAuth ni fichier musical n'est inclus.

Le serveur utilise ce rapport uniquement pour le support technique et le diagnostic d'incidents. Les petits rapports peuvent être inclus directement dans l'e-mail de support ; les rapports plus volumineux peuvent être joints sous forme de fichier texte. L'adresse e-mail privée du destinataire du support reste configurée côté serveur et n'est pas exposée dans l'app.

4. Permissions demandées

Android

PermissionRaison
HIGH_SAMPLING_RATE_SENSORSLecture de l'accéléromètre à haute fréquence pour détecter la cadence de pas (pas/min).
FOREGROUND_SERVICEExécuter les services de premier plan nécessaires pendant une séance.
ACCESS_FINE_LOCATION et ACCESS_COARSE_LOCATIONDemander l'accès à la localisation pour mesurer la distance d'une séance GPS lancée volontairement.
FOREGROUND_SERVICE_LOCATIONContinuer le suivi GPS d'une séance active avec notification visible, notamment sous écran verrouillé.
FOREGROUND_SERVICE_HEALTHMaintenir les mesures liées à l'activité physique pendant la séance.
FOREGROUND_SERVICE_MEDIA_PLAYBACKPoursuivre la lecture audio pendant la séance.
WAKE_LOCKLimiter la mise en veille du capteur pendant une session.

iOS (App Store)

La détection de cadence utilise les capteurs de mouvement (accéléromètre) via le framework natif. Sur iOS, cet accès est géré par le framework natif sans permission explicite demandée à l'utilisateur.

L'accès à la médiathèque (Musiques téléphone) déclenche une demande de permission système standard lorsque vous importez de la musique depuis votre appareil.

Pour les séances avec GPS, iOS peut demander la localisation pendant l'utilisation et l'accès nécessaire au suivi sous écran verrouillé ; Android utilise une permission de localisation et un service de premier plan pendant la séance (§ 3.10). Le suivi ne démarre pas à l'ouverture de l'app. Les montres Garmin ont leurs autorisations propres. BeatOnStep n'accède pas à vos contacts, votre appareil photo ou votre microphone.

5. Données stockées localement

Sur votre appareil, dans l'espace privé de l'app :

  • Bibliothèque importée (chemins, BPM, sources activées).
  • Préférences (mode, plages cibles, réglages, langue).
  • Jetons d'accès et de renouvellement YouTube (si connecté, voir § 3.4) et jetons de connexion Apple Music (si connecté).
  • Titres ou playlists publiques Spotify dont vous avez collé le lien (identifiant, titre, BPM saisi ou détecté) — pas de jeton de compte Spotify.
  • Titres ou playlists publiques Deezer dont vous avez collé le lien (identifiant, métadonnées, BPM saisi, détecté ou fourni par Deezer) — pas de jeton de compte Deezer.
  • Identifiant d'installation aléatoire BeatOnStep et dernier état d'envoi de la mesure de playlists (§ 3.9).
  • Mesures de séance et éventuelle silhouette relative simplifiée du parcours GPS téléphone/Garmin, lorsqu'elles sont conservées pour un récapitulatif local (§ 3.10) — sans historique de coordonnées GPS brutes.

La désinstallation de l'application supprime ces données. La déconnexion d'un service (YouTube, Apple Music) efface les jetons correspondants sans désinstaller l'app.

6. Services tiers

ServiceQuandCe qui transite
Google / YouTubeConnexion ou export expressément autoriséOAuth ; playlists / métadonnées par API ; création facultative d'une playlist privée à votre demande (§ 3.4)
Apple / Apple MusicSi vous connectez Apple MusicConnexion Apple ; métadonnées playlists
Apple (App Store)Distribution iOSGestion par Apple selon ses propres règles
ExpoAutomatiqueVérification / téléchargement de mises à jour OTA
Serveur BeatOnStepCatalogue, compte facultatif, synchronisation sportive, analyse BPM, mesure pseudonyme d'usage et support volontaireInformations de compte si inscrit ; résumés sportifs nécessaires à la synchronisation des cartes ; éventuel fichier audio pour analyse BPM ; compteur de playlists par source + identifiant d'installation aléatoire (§ 3.9) ; rapport de diagnostic après action explicite (§ 3.11). Aucun historique de coordonnées GPS brutes.
SpotifySi vous collez un lien PartagerDemande du titre au catalogue public ; ouverture dans l'app Spotify. Pas de connexion compte
DeezerSi vous collez un lien PartagerDemande titre / durée / parfois BPM au catalogue public ; ouverture dans l'app Deezer. Pas de connexion compte
Garmin Connect IQSi vous associez une montre Garmin et utilisez BeatOnStep pendant une courseCadence et métriques de course ; positions GPS brutes transitoires montre → téléphone uniquement pour produire localement une forme relative du parcours (§ 3.10)
Strava (facultatif)Si vous connectez Strava et demandez l'export d'une courseAutorisation OAuth via le serveur BeatOnStep et création d'une activité avec heure de départ, durée et distance fiable éventuelle ; aucune trace de coordonnées GPS brutes (§ 3.10).

Pas de SDK publicitaire, pas de mesure d'audience marketing, pas de réseau social intégré autre que la connexion aux services que vous choisissez.

7. Enfants

L'application n'est pas destinée aux enfants de moins de 13 ans (16 ans dans l'UE) et ne collecte sciemment aucune donnée les concernant.

8. Vos choix et droits (RGPD / vie privée)

BeatOnStep n'utilise aucun suivi publicitaire et ne propose donc aucun réglage de consentement publicitaire. Vous pouvez gérer les données locales directement dans l'app, déconnecter les services musicaux concernés ou désinstaller l'app, ce qui arrête les futurs envois de la mesure pseudonyme décrite au § 3.9.

La mesure serveur ne contient ni nom, ni e-mail, ni compte BeatOnStep permettant à l'éditeur de rattacher spontanément un snapshot à votre identité. Pour toute question relative à cette mesure ou à vos droits, utilisez le forum BeatOnStep indiqué ci-dessous.

  • Données locales (bibliothèque, réglages, jetons) : vous les contrôlez directement dans l'app ou via la désinstallation.
  • Compte Google / YouTube : déconnectez YouTube pour effacer les jetons, supprimez séparément les imports locaux ou désinstallez l'app, et révoquez l'accès dans votre compte Google (voir § 3.4).
  • Compte Apple / Apple Music : exercez vos droits auprès d'Apple selon leurs procédures.
  • Spotify : pas de compte BeatOnStep lié à Spotify ; les liens collés restent sur l'appareil. Pour votre compte Spotify, exercez vos droits auprès de Spotify.
  • Deezer : pas de compte BeatOnStep lié à Deezer ; les liens collés restent sur l'appareil. Pour votre compte Deezer, exercez vos droits auprès de Deezer.
  • Serveur BeatOnStep : un compte de catalogue est facultatif (§ 2). La mesure des playlists conserve seulement le dernier état par installation, sans historique détaillé (§ 3.9). Les rapports de diagnostic ne sont transmis qu'à votre demande (§ 3.11). Pour toute demande relative à vos données, utilisez le forum.

9. Modifications

Cette politique peut être mise à jour. La date en haut du document reflète la dernière révision. La version en vigueur est disponible à l'adresse communiquée sur la fiche Google Play et dans l'app (Réglages → À propos) :

https://beatonstep.app/privacy.html

Historique des principales évolutions

  • 14 octobre 2026 — version 1.7.2 : précisions sur le GPS des séances iOS/Android, les permissions associées et les partages facultatifs de résultats sportifs. Les anciennes révisions restent consultables dans l'historique public du dépôt.

10. Contact


11. Crédits musicaux (catalogue mix démo)

Le catalogue « Mix démo » est composé exclusivement de morceaux libres de droits sous licence Creative Commons Attribution 4.0 International (CC-BY 4.0) (usage commercial autorisé avec attribution).

Artistes (sources) :

Les BPM sont mesurés côté serveur (librosa.beat.beat_track, seuil de confiance ≥ 0,77). Ils peuvent différer légèrement des BPM publiés par les auteurs.

Liste complète des titres (obligatoire pour l'attribution CC-BY) : Crédits musicaux — Mix démo

Privacy Policy — BeatOnStep (English)

Last updated: October 14, 2026

The French text is the binding version. This English translation is provided for convenience.

1. Who we are

BeatOnStep is a mobile app (Android and iOS) that adapts music to your walking or running cadence. The app is available on Google Play (Android, BeatOnStep) and the App Store (iOS, BeatOnSteps).

Publisher: Rafael Orset — contact: BeatOnStep forum

2. Core principle: minimal data collection, no commercial tracking

BeatOnStep works without an account and offers an optional catalogue account for signing public shares. It uses no advertising, and performs no commercial tracking or profiling. A very limited pseudonymous usage measurement may be sent to the BeatOnStep server solely to count how many personal playlists are imported per source (§ 3.9). No cadence (SPM), route data, playlist name or identifier, track, artist, or music-account identifier is included in this measurement.

Depending on the features you enable, the app may exchange data with services you choose (demo mix / music server, YouTube or Apple Music if connected, pasted Spotify or Deezer links, BPM analysis) or with technical infrastructure (updates). Details below.

Optional catalogue accounts

Accounts are optional: workouts, running, music and anonymous sharing work without registration. Creating a website account stores a private email, public handle, password salt and hash, and registration date in Cloudflare D1. The website uses a secure HttpOnly session cookie; the app can store a publish-only device grant, valid for up to 30 days and revocable by signing out.

Only your handle and shares published under it are public. Existing anonymous shares are not attributed retroactively. Music-service credentials are not shared with the catalogue. You can sign out or delete the account through “My profile”; deletion removes attribution from existing shares (which stay anonymous), and revokes access. Your email is not used for marketing. At this stage, email verification and password recovery are not yet available. These protections should be added before a large-scale rollout.

3. Features and data flows

3.1 Local audio files (Phone music)

  • Files you import stay on your device.
  • Associated metadata (path, BPM, preferences) is stored locally only.
  • No audio file is sent off-device for cadence detection or local playback, unless you trigger server-side BPM analysis (§ 3.3).

3.2 Cadence detection (SPM)

  • The accelerometer is read on-device to estimate your step cadence.
  • These readings stay on the device by default and are not sent automatically. They may only be included in a diagnostic report if you explicitly choose Bug / feedback → Send (§ 3.11).
  • They are used solely for real-time app operation (selecting and playing music matched to your pace).

3.3 Demo mix and music server (optional)

The demo catalogue (278 royalty-free tracks) is hosted on a publisher server (https://beatonstep.tail09d8d8.ts.net/music).

  • This server is not a social network or public service: it serves only the demo catalogue.
  • No account creation, no advertising cookies, no marketing telemetry.
  • If you send an audio file for BPM analysis, it transits through the server for processing; it is not retained permanently or resold.

3.4 YouTube (optional)

Connecting Google/YouTube is optional and separate from an optional BeatOnStep catalogue account. Without Google sign-in, BeatOnStep does not access your YouTube account data.

  • Data accessed and purpose: with your OAuth consent, BeatOnStep reads your YouTube channel, personal playlists (including private ones when available from the API), their tracks and available metadata (IDs, titles, artists, durations, thumbnails). This supports library display/import, local BPM calculation and editing, workout preparation, and opening a track in YouTube or YouTube Music. No YouTube audio file is downloaded.
  • Permissions: youtube.readonly is used to read/import playlists; userinfo.email only displays the connected Google account address. A separate YouTube write permission is requested only when you choose “Allow creating playlists” to manually export a workout as a new private playlist. No automatic changes are made to your YouTube account during a workout.
  • Data protection: OAuth with PKCE, HTTPS requests to Google's APIs, no Google password requested or stored. Access and refresh tokens remain in the app's private on-device storage (AsyncStorage, not represented as a dedicated hardware security vault). Normal Google requests go directly from the app to Google; tokens are not sent to the BeatOnStep server for import or playback.
  • Limited sharing: imported playlist names, IDs and BPM values are not published to the catalogue, sold or used for advertising. Only a pseudonymous count of imported playlists, without Google IDs or track details, may reach the server (§ 3.9). An explicitly sent support report may contain track IDs but never OAuth tokens (§ 3.11).
  • Retention: tokens remain on the device while YouTube is connected and are deleted on disconnect. Previously imported metadata and BPM remain in the local library until you delete them or uninstall the app; disconnecting does not delete them automatically. No permanent server-side copy of the Google music library is retained by BeatOnStep.
  • Deletion and withdrawal: you can disconnect YouTube, delete local imports and revoke access from your Google Account. Revocation alone does not erase data already imported onto the phone. Google's policies apply to information held by Google.

Google/YouTube data protection — details

Google access is optional: read-only access on connection; separate write consent if the user enables playlist creation. OAuth uses PKCE (S256) and Google API requests use HTTPS. BeatOnStep never receives the Google password. Tokens reside in the app's private on-device application storage (AsyncStorage), without claiming a hardware vault or dedicated encryption. They are not sent through the BeatOnStep server for YouTube imports, excluded from diagnostic reports and deleted locally on disconnect. Imported music data remains local unless expressly shared. Access can also be revoked from the Google Account. These data are not used for advertising or AI model training.

3.5 Apple Music (optional)

If you connect an Apple account to use Apple Music in BeatOnStep:

  • Feature initiated by you; BeatOnStep does not provide an Apple Music catalogue.
  • Secure Apple sign-in; the publisher does not receive your Apple password.
  • Access tokens are stored locally on the device and are never transmitted to the publisher or resold.
  • The app queries Apple services to display your playlists and metadata (tracks, artists, BPM you enter or detect).
  • No audio files are cached by BeatOnStep; playback happens in the Apple Music app — not inside BeatOnStep.
  • An active Apple Music subscription is required to listen to the catalogue via Apple.
  • You can disconnect Apple Music in the app at any time: local tokens are deleted.
  • Your Apple account remains governed by Apple's policies.

iPhone: automatic playback in Apple Music; music can keep playing in the background while BeatOnStep runs.

Android: the Apple Music app (Google Play) must be installed; BeatOnStep opens the track in that app (no BeatOnStep built-in player).

3.6 Spotify (optional — Share links)

When you use Spotify in BeatOnStep:

  • Feature initiated by you: you paste the Share link of a track, or of a public playlist. BeatOnStep does not sign you into Spotify.
  • The app may query Spotify’s public catalogue to display the title. No Spotify password is requested or sent to the publisher.
  • IDs and metadata stay on the device.
  • Playback happens in the Spotify app — not inside BeatOnStep. A Spotify account (and, depending on the tracks, a subscription) may be required by Spotify.
  • A private playlist cannot be read without an official sign-in, which is not offered to the public for now.
  • BeatOnStep does not provide Spotify’s catalogue.

3.7 Deezer (optional — Share links)

When you use Deezer in BeatOnStep:

  • Feature initiated by you: you paste the Share link of a track, or of a public playlist. BeatOnStep does not sign you into Deezer.
  • The app may query Deezer’s public catalogue (title, duration, sometimes BPM). No Deezer password is requested or sent to the publisher.
  • IDs and metadata stay on the device.
  • Playback happens in the Deezer app — not inside BeatOnStep. A Deezer account (and, depending on the tracks, a subscription) may be required by Deezer.
  • A private playlist cannot be read without an official sign-in, which is not offered to the public for now.
  • BeatOnStep does not provide Deezer’s catalogue.

3.8 Updates (Expo OTA)

The app may contact Expo services to check for and download JavaScript updates linked to your installation. This is not an advertising SDK; no cadence or music library data is sent through this channel.

3.9 Pseudonymous measurement of imported playlist counts

To understand use of playlist imports and improve the product, BeatOnStep may occasionally send the publisher server a minimal snapshot containing: a random BeatOnStep installation identifier, platform (iOS / Android), app version, and the count of personal playlists still imported from Apple Music, YouTube, Spotify, and Deezer.

  • This measurement is used for product analytics: it helps us understand use of the import feature and guide BeatOnStep improvements.
  • This measurement contains no playlist name or playlist identifier, track, artist, OAuth token, music account, audio data, cadence (SPM), or route data.
  • The identifier is randomly generated by BeatOnStep. It is not an Apple, Google, Android, or music-provider identifier and contains no name, email address, or account identifier.
  • This identifier is used only to associate successive snapshots with the same BeatOnStep installation. It is not used to identify the person using the app.
  • Deletions are reflected: the next snapshot contains the number of playlists still present in the app.
  • Sending is limited: at most once per day after a change and, when unchanged, at most once every 7 days to measure active installations.
  • The server stores only the latest known snapshot per installation to produce aggregate product statistics; it does not keep a detailed history of each transmission. The IP address may be processed technically during the HTTPS connection but is not recorded in the measurement file.
  • These data are not sold, not used for advertising, not used for advertising tracking, and not combined with data from other companies for profiling.

3.10 GPS tracking for runs on iOS, Android and Garmin (optional)

Phone GPS (when you enable this feature). When you voluntarily start a run or a distance-based workout with GPS, BeatOnStep may request location access to measure distance travelled, calculate pace when available, and advance the workout phases. GPS tracking does not start when the app opens. You can refuse permission; features requiring reliable GPS distance will then be unavailable or limited. Pausing suspends tracking; finishing the workout stops it.

  • On iPhone, iOS may request location access while the app is in use and the permission needed to continue an active workout while the phone is locked or the app is in the background.
  • On Android, tracking requires location permission and may use a foreground service with a visible notification during an active workout to continue while the screen is locked. BeatOnStep does not request the separate Android ACCESS_BACKGROUND_LOCATION permission.
  • Raw coordinates: the phone's raw GPS positions are processed temporarily in native memory. They are not saved as a location history or sent to BeatOnStep servers or music services. The module produces aggregate measurements (including distance and elapsed time) and, on iPhone, may generate a relative, non-geolocated route silhouette for a recap. Raw positions are cleared from the session once tracking stops.

Compatible Garmin watches. If you enable a Garmin watch, it may temporarily transmit run metrics and positions needed for the recap. Raw coordinates received remain in memory during the run; only a relative shape, without latitude or longitude, may be retained locally for a recap or shared graphic.

Public sporting-card records. When the server accepts a result and awards your account a worldwide sporting card, the public catalogue may display your handle, distance, SUB threshold, difficulty and dated ownership changes (win, gift or release). The card may also identify its first holder and longest continuous holder. An advisory “Performance not validated” label may appear after optional review; the new holder never inherits the warning after a transfer. No underlying telemetry details are public. GPS coordinates, run evidence, email addresses and private account identifiers are never published. After account deletion, your handle no longer appears in this history.

Optional sharing. At your request, a recap, performance card or Strava activity may use workout results (for example distance, duration, start time and measurement source). Strava exports send those results through the BeatOnStep API to Strava with your permission; no raw GPS coordinate sequence is sent. A shared image may include the relative route silhouette when available. The product analytics in § 3.9 include neither GPS locations nor route data.

3.11 Voluntary Bug / feedback diagnostic report

If you use the Bug / feedback button in Settings, BeatOnStep shows a message field and requires an explicit action before any transmission. If you choose Send, the app sends the same technical report that you can manually share by tapping the app version, together with the message you typed.

This report may include:

  • app version, build, runtime and technical delivery information;
  • recent diagnostic events related to BeatOnStep operation;
  • recent SPM diagnostics, which may contain accelerometer samples and calculated cadence;
  • technical states for Garmin / Apple Watch and music integrations, for example availability, playback states, errors, and technical track or device identifiers when already present in the diagnostic;
  • the pseudonymous BeatOnStep installation identifier, platform and app version.

Sending is strictly user-initiated: no Bug / feedback diagnostic report is transmitted automatically. No password, OAuth token, or music file is included.

The server uses the report only for technical support and incident diagnosis. Small reports may be included directly in the support email; larger reports may be attached as a text file. The private support recipient email address is configured only on the server and is not exposed in the app.

4. Permissions

Android

PermissionPurpose
HIGH_SAMPLING_RATE_SENSORSRead the accelerometer at high frequency to detect step cadence (SPM).
FOREGROUND_SERVICERun foreground services needed during an active workout.
ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATIONRequest location access to measure distance for a voluntarily started GPS workout.
FOREGROUND_SERVICE_LOCATIONContinue GPS tracking during an active workout with a visible notification, including when locked.
FOREGROUND_SERVICE_HEALTHMaintain workout and physical-activity measurements during a session.
FOREGROUND_SERVICE_MEDIA_PLAYBACKContinue audio playback during a session.
WAKE_LOCKPrevent the sensor from sleeping during a session.

iOS (App Store)

Cadence detection uses motion sensors (accelerometer) through the native framework. On iOS, this is handled by the native framework without an explicit user-facing permission prompt.

Access to the media library (Phone music) triggers a standard system permission request when you import music from your device.

For GPS-enabled workouts, iOS may request location access while using the app and permission to continue during an active workout with the screen locked. Android uses location permission and a foreground service during the workout (§ 3.10). Tracking never starts merely by opening the app. Garmin watch permissions are separate. BeatOnStep does not access your contacts, camera, or microphone.

5. Locally stored data

On your device, in the app's private storage:

  • Imported library (paths, BPM, enabled sources).
  • Preferences (mode, target ranges, settings, language).
  • YouTube access and refresh tokens (when connected; see § 3.4) and Apple Music connection tokens (if connected).
  • Spotify tracks or public playlists whose links you pasted (ID, title, entered or detected BPM) — no Spotify account token.
  • Deezer tracks or public playlists whose links you pasted (ID, metadata, BPM entered, detected, or provided by Deezer) — no Deezer account token.
  • Random BeatOnStep installation identifier and the last local state used for playlist-count measurement (§ 3.9).
  • Workout measurements and an optional simplified relative shape from phone/Garmin GPS, when locally retained for a recap (§ 3.10) — without any raw GPS coordinate history.

Uninstalling the app removes this data. Disconnecting a service (YouTube, Apple Music) deletes the corresponding tokens without uninstalling the app.

6. Third-party services

ServiceWhenWhat transits
Google / YouTubeSign-in or explicitly authorized exportOAuth; playlist / metadata API calls; optional creation of a private playlist on request (§ 3.4)
Apple / Apple MusicIf you connect Apple MusicApple sign-in; playlist metadata
Apple (App Store)iOS distributionManaged by Apple under their own terms
ExpoAutomaticOTA update verification / download
BeatOnStep serverCatalogue, optional account, sports-card synchronization, BPM analysis, pseudonymous usage measurement and voluntary supportAccount details if registered; workout summaries needed to sync sports cards; optional audio file for BPM analysis; playlist counts by source plus random installation identifier (§ 3.9); technical report after an explicit action (§ 3.11). No raw GPS location history.
SpotifyIf you paste a Share linkPublic catalogue request (title); opening in the Spotify app. No account sign-in
DeezerIf you paste a Share linkPublic catalogue request (title / duration / sometimes BPM); opening in the Deezer app. No account sign-in
Garmin Connect IQIf you pair a Garmin watch and use BeatOnStep during a runCadence and run metrics; transient raw GPS positions watch → phone only to locally produce a relative route shape (§ 3.10)
Strava (optional)If you connect Strava and request a run exportOAuth authorization through the BeatOnStep server and manual activity creation with start time, duration and optional reliable distance; no raw GPS location track (§ 3.10).

No advertising SDK, no marketing audience measurement, no integrated social network beyond the connection to services you choose.

7. Children

The app is not directed at children under 13 (16 in the EU) and does not knowingly collect data from them.

8. Your privacy choices and rights (GDPR / privacy)

BeatOnStep does not use advertising tracking, so there is no advertising-consent setting to manage. You can manage local data directly in the app, disconnect the relevant music services, or uninstall the app, which stops future transmissions of the pseudonymous measurement described in § 3.9.

The server-side measurement contains no name, email address, or BeatOnStep account that would allow the publisher to directly associate a snapshot with your identity. For questions about this measurement or your privacy rights, use the BeatOnStep forum listed below.

  • Local data (library, settings, tokens): you control it directly in the app or by uninstalling.
  • Google / YouTube account: disconnect YouTube to delete tokens, separately delete local imports or uninstall, and revoke access through your Google Account (see § 3.4).
  • Apple / Apple Music account: exercise your rights with Apple under their procedures.
  • Spotify: no BeatOnStep account linked to Spotify; pasted links stay on the device. For your Spotify account, exercise your rights with Spotify.
  • Deezer: no BeatOnStep account linked to Deezer; pasted links stay on the device. For your Deezer account, exercise your rights with Deezer.
  • BeatOnStep server: a catalogue account is optional (§ 2). Playlist analytics retain only the latest state per installation, without detailed submission history (§ 3.9). Technical reports are sent only at your request (§ 3.11). For data enquiries, use the forum.

9. Changes

This policy may be updated. The date at the top reflects the latest revision. The current version is available at the address listed on Google Play and in the app (Settings → About):

https://beatonstep.app/privacy.html

Summary of key changes

  • October 14, 2026 — version 1.7.2: clarified iOS/Android workout GPS, related permissions and optional sharing of workout results. Earlier revisions remain available in the public repository history.

10. Contact


11. Music credits (demo mix catalogue)

The "Demo mix" catalogue consists exclusively of royalty-free tracks under Creative Commons Attribution 4.0 International (CC-BY 4.0) (commercial use allowed with attribution).

Artists (sources):

BPM values are measured server-side (librosa.beat.beat_track, confidence threshold ≥ 0.77). They may differ slightly from author-published BPM values.

Full track list (required for CC-BY attribution): Music credits — Demo mix