Your TikTok Watch History file is a plain-text JSON record of every video you played, stored inside the data export TikTok lets you download. Once you know its structure, you can read it, count videos, and even estimate viewing sessions yourself.
When you request your data from TikTok and choose the JSON format, the export arrives as a ZIP archive containing several files. One of the most interesting is the Watch History file, which lists the videos you have watched over time. This guide walks through where the file lives, how its JSON is organized, and how to make sense of it.
What the Watch History File Is
The Watch History file is a log of the videos that played in your For You and Following feeds. Each entry represents a single video that TikTok recorded as watched, along with the time it was played and a link back to the original video.
It is not an analytics dashboard. It is raw data: a long list of timestamps and URLs. That makes it powerful for personal analysis but harder to read at a glance, especially if your history spans months or years.
Where It Lives in the Export
After you unzip the TikTok export, the Watch History data is grouped under an activity-related folder. In a JSON export you will typically find it nested like this:
- Activity → Video Browsing History (sometimes labeled Watch History),
- stored inside a single .json file alongside other activity files such as Like List and Search History.
The exact folder names can vary slightly between export versions. If you are unsure how the archive is laid out, our guide on TikTok data export folders explained breaks down each section. For the full request-and-download process, see how to download and analyze TikTok data.
The JSON Structure: VideoList Entries
Inside the file, the watch records are stored under a key usually named VideoList. It is an array of objects, where each object describes one watched video. A single entry looks roughly like this:
- Date — when the video was watched, e.g. "2026-02-14 18:32:07",
- Link — the URL of the video, e.g. "https://www.tiktokv.com/share/video/7300000000000000000/".
So the overall shape is a top-level object containing the array, which you can think of as { "Video Browsing History": { "VideoList": [ ... ] } }. Every element of VideoList is one play event with a Date and a Link field. There are no view counts, no engagement numbers, and no captions — just when and what.
How to Count Videos Manually
The simplest metric is the total number of videos watched, which equals the length of the VideoList array. You can find this in a few ways:
- open the file in a code editor and look at the array length, or
- load it in a browser console with data['Video Browsing History'].VideoList.length, or
- use a command-line tool to count occurrences of the Date key.
Counting unique videos is a little harder, because the same Link can appear more than once if you rewatched a video. To count uniques, you would need to deduplicate by the Link field rather than just counting rows.
Estimating Sessions vs Using a Tool
A "session" is a stretch of continuous watching. The export does not label sessions, so you have to infer them from the Date timestamps. A common approach is to sort entries by date and group videos that are close together in time:
- sort all entries by their Date value,
- walk through the list and start a new session whenever the gap between two consecutive videos exceeds a threshold (for example, 30 minutes),
- count how many sessions result.
Doing this by hand across thousands of entries is tedious and error-prone. A tool like TikTok Wrapped performs this grouping automatically and turns it into readable summaries. You can view an example wrapped to see what the output looks like, or analyze your own export directly.
Common Gotchas
Date Formats and Timezones
The Date field is a string, not a true datetime, and it is often recorded in UTC rather than your local time. If you parse it without accounting for timezone, your session boundaries and "most active hour" results can shift by several hours.
Partial History
The export may not include your entire lifetime of watching. TikTok limits how far back some activity goes, so an empty or short VideoList does not always mean you watched little — it may mean the export window was limited.
Large Files
Heavy users can end up with Watch History files that are tens of megabytes in size. Some text editors struggle to open files that large. If a file will not open or freezes your editor, that is a sign the data is large rather than corrupted.
Key Naming Differences
Because TikTok occasionally renames keys between export versions, the wrapper key around VideoList may differ. If data['Video Browsing History'] is undefined, inspect the top-level keys first to find the correct label.
Final Thoughts
The Watch History JSON file is one of the most revealing parts of your TikTok export. Once you understand that it is just a VideoList array of Date and Link pairs, counting videos and estimating sessions becomes straightforward — though the timezone, partial-history, and file-size gotchas are easy to trip over.
If you would rather skip the manual parsing, an analysis tool can read the same file and present the results for you in seconds.