ScrollCount is a privacy-focused Android app that estimates how many short-form videos you watch and how long you spend watching them. It keeps the results on your device and turns each day's count into a changing character state.
- TikTok
- YouTube Shorts
- Instagram Reels
- Facebook Reels
- Snapchat Spotlight
ScrollCount supports Android 8.0 (API 26) and newer.
- JDK 17
- Android SDK 36
- An Android device with USB debugging enabled, or an Android emulator
Clone the repository and build the debug APK:
git clone https://github.com/wberri13/scrollCount.git
cd scrollCount
./gradlew assembleDebugThe APK will be created at app/build/outputs/apk/debug/app-debug.apk. Install it with Android Studio or ADB:
adb install -r app/build/outputs/apk/debug/app-debug.apk- Open ScrollCount.
- Read the accessibility disclosure and tap Agree and continue.
- In Android's Accessibility settings, select ScrollCount tracker and enable it.
- Return to ScrollCount. The status at the top should show that tracking is active.
- Open a supported app and browse its short-form feed normally.
- Return to ScrollCount to see today's count, watch time, per-app activity, weekly totals, and character calendar. Tap Sync latest activity to refresh the dashboard immediately.
To stop tracking, open Android Settings → Accessibility → ScrollCount tracker and turn the service off. You can use the rest of the app without enabling the service.
Settings labels vary slightly between Android manufacturers. If ScrollCount is not counting, confirm that its accessibility service is still enabled and that you are viewing one of the supported short-form feeds.
The accessibility service listens only to the supported app packages. While one of their short-form feeds is visible, ScrollCount temporarily examines accessibility labels, content descriptions, view IDs, and scroll events to recognize when the visible video changes. It also measures the time for which the feed remains visible.
The detection is heuristic because the supported platforms do not provide ScrollCount with a public short-video history API. Counts may vary as those apps change their interfaces or expose different accessibility information on different devices.
Every day begins at the highest character level. The character changes after each 100 detected videos, and the calendar preserves the daily result.
Visible interface text is processed in memory and is never stored. ScrollCount saves only aggregate counts, watch duration, platform names, and timestamps in local Android SharedPreferences. The Android app makes no network requests, does not share tracking data, and disables Android backup for its stored data.
Read the ScrollCount privacy policy.
Run the unit tests:
./gradlew testBuild a debug APK:
./gradlew assembleDebugThe Android application is in app/. The public privacy-policy site is in privacy-site/; its own README contains local development instructions.
Useful next steps for the tracker include:
- Add an opt-in diagnostic screen for inspecting raw candidate snapshots.
- Tune platform-specific fingerprints against current versions of each supported app.
- Add explicit data export and deletion controls.
Accessibility services can expose sensitive on-screen information. Review the source and the in-app disclosure before enabling ScrollCount. The service is restricted to the supported package names and disables itself unless consent has been recorded.
ScrollCount is available under the MIT License.
