SwingShadow ("the app") is a tennis swing analysis app by Matthew Lee ("we", "us"). This policy covers the Android version distributed through Google Play: what the app does with data, and the choices you have. Write to matthewlee0725@gmail.com with any questions.
The short version
The app asks the Android system for read-only access to each video you import. It does not copy, modify, move, or delete your video files; they stay where they are in your gallery or storage.
From the video, the app computes and stores the following in its private storage on your device:
This data stays on your device unless you share a clip (next section). Delete a video inside the app and the app deletes its analysis; uninstall the app or clear its data and Android removes all of it.
Correct a misdetected swing and the app offers a checkbox: "Upload a video clip of this swing to help improve detection." The app uploads nothing unless you tick that box, and the tick covers that one swing only.
Tick it, and the app uploads the following over an encrypted (HTTPS) connection:
A shared clip is ordinary video: it may show you, and it may show other people on court. Share only clips you are comfortable sharing and have the right to share.
We use shared clips for one purpose: improving SwingShadow's swing detection. We review them and use them as training and evaluation data for the detection models. We do not use them for advertising or profiling, do not publish them, and do not sell or pass them to anyone for their own use.
The app uploads to our API at api.swingshadow.app.
Cloudflare, Inc. (Workers and R2 storage) hosts the data and
processes it only on our behalf. Cloudflare operates a global network, so your
uploads may pass through data centers outside your country. No one can read a
stored clip from the internet: the storage has no public read access, and the
endpoints accept uploads only with an access token held by the app.
We keep standard server logs (request metadata, including the install identifier) for a limited period, for debugging and abuse prevention.
Uploads carry no identity, so we cannot match a clip to an email request. The in-app control is the way to delete your data, and it needs no proof of identity: only your installation holds its identifier.
The app requests no access to your camera, microphone, location, or contacts, and reads no files beyond the videos you pick.
SwingShadow is not directed at children under 13, and we do not knowingly collect personal information from children. The app collects nothing without a share action, stores shares without identity, and builds no profile of any user, child or adult.
If we change this policy, we will post the new version at this address with a new effective date. For changes that affect what the app shares or how long we keep it, we will update the app's consent text before the change applies to new uploads.