Recover your library and watch history from the TV Time Android app's local cache
(DioCache.db) and export it to CSV.
TV Time's Android app (com.tozelabs.tvshowtime) keeps a local SQLite cache of the
API responses it has seen. When the online service is unavailable, that cache is
often the only remaining copy of your data. This project parses it back into
usable CSV files.
If that cache (DioCache.db) has been cleared and reads as empty, the tool also
recovers a name-level library and your "up next" list from the app's Flutter
preferences (shared_prefs/FlutterSharedPreferences.xml and
HomeWidgetPreferences.xml). You can hand it the whole tvtime-private.tar you
pulled from the phone and it will find and merge whatever it can.
Not affiliated with or endorsed by TV Time. This recovers only data that is still cached locally on your device; it is not an official export and completeness depends entirely on what your device kept.
- Web app (recommended, no install): upload your
DioCache.db, the wholetvtime-private.tar, or yourshared_prefsfiles and download CSVs. Everything is processed entirely in your browser and is never uploaded anywhere. - CLI:
tvtime-recover <inputs...> --out ./tvtime-export(or--zip out.zip), where each input is aDioCache.db, atvtime-privatetar/zip, or a prefs.xml. - Library (
tvtime-core):recover_files({name: bytes})(orrecover(db_bytes)for a single DioCache) for use in your own scripts.
Extracting the app's private database from an Android phone is the hard part and
depends on your device. See docs/extraction-guide.md.
packages/tvtime-core/ # pure, stdlib-only parser library
packages/tvtime-cli/ # command-line front end
web/ # static site (Pyodide runs tvtime-core in the browser)
docs/ # extraction guide and design docs
uv sync
uv run ruff check
uv run mypy
uv run pytest
WTFPL. See LICENSE.