Skip to content

YouTube Watch History Export

Try for free

Turn your Google Takeout YouTube and YouTube Music history into a clean table: title, artist or channel, link, play time, duration and album for every video and song you played.

📺 YouTube Watch History Export

Turn your own YouTube and YouTube Music history into a clean table: every video and song you played, with the title, artist or channel, link, play time, duration and album. Upload the history file Google Takeout gives you, and get JSON, CSV or Excel back in minutes. No Google password, no cookies, no browser extension.

✨ Why use YouTube Watch History Export?

  • 🔒 No login needed — you never share your Google password or cookies. You export your history yourself with Google Takeout and upload the file.
  • 🎵 YouTube and YouTube Music together — every row says where the play came from, so you can split videos from songs.
  • 💿 Album and artist for songs — songs get their album, artist and release date from YouTube's public music information.
  • ⏱️ Duration and more for every video — each video is looked up once, however often you played it: duration, views, publish date, category and thumbnail.
  • 📦 Any Takeout format — JSON, HTML, or the whole Takeout .zip / .tgz; Google Drive and Dropbox share links work too.
  • 🧮 Ready for analysis — one row per play with an exact UTC time stamp, so counting top artists, listening hours per month or binge days is a simple pivot.

🎯 Use cases

  • 📊 Your own YouTube Wrapped — top songs, artists and channels for any year or month.
  • ⏳ Screen-time review — how many hours of video you watched per week, and when.
  • 🎧 Move your music library — a list of everything you listen to, with album and artist, to rebuild playlists elsewhere.
  • 🗂️ Personal archive — keep a searchable copy of your history before you clear it on YouTube.
  • 🔬 Research on your own data — export your history for a study you take part in, in a clean, documented format.

🚀 How to use

  1. Get your history from Google Takeout. Open takeout.google.com, click Deselect all, then tick YouTube and YouTube Music. Click All YouTube data included, keep only history, and under Multiple formats set History to JSON (HTML works too). Create the export; Google emails you a download link, usually within minutes.
  2. Upload it. In Google Takeout file, click Upload and pick the downloaded Takeout .zip as it is; there is no need to unpack it. You can also paste a link to the file, for example a Google Drive or Dropbox share link.
  3. Choose options. Keep Add video details on for duration, album and artist; set the filters if you only want part of the history.
  4. Run and download the results as JSON, CSV, Excel or HTML, or read them through the API.

The file you upload is kept in your own account's storage (the input-files key-value store), where you can delete it after the run.

📥 Input

FieldWhat it does
takeoutFileYour Takeout file (upload) or an https link to it: watch-history.json, watch-history.html, or the Takeout .zip / .tgz
addVideoDetailsLook up each video once for duration, album, artist, views, publish date and thumbnail (default on)
maxItemsStop after this many entries, newest first; empty exports everything
historySourceall (default), youtube or music
playedAfter / playedBeforeOnly plays in this date range (UTC days)
{
  "takeoutFile": "https://drive.google.com/file/d/<your-file-id>/view?usp=sharing",
  "addVideoDetails": true,
  "historySource": "all",
  "playedAfter": "2026-01-01"
}

📤 Output

One row per play, newest first.

FieldDescription
playedAtWhen you played it (ISO 8601, UTC)
sourceYouTube or YouTube Music
titleVideo or song title as it was when you played it
artistArtist of a song (YouTube Music plays and music videos)
albumAlbum of a song, where YouTube shows one
songSong title from YouTube's music information
channelName, channelUrlChannel that uploaded the video
url, videoIdLink and id of the video or song
duration, durationSecondsLength as hh:mm:ss and in seconds
viewCount, publishedAt, category, thumbnailUrlPublic video details
releaseDateRelease date of a song, where YouTube shows one
isAvailablefalse when the video is now private or removed
playedAtTextOnly for HTML exports whose time could not be converted: the time exactly as written
[
  {
    "playedAt": "2026-10-19T23:17:40.401Z",
    "source": "YouTube Music",
    "title": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)",
    "artist": "Daft Punk, Pharrell Williams, Nile Rodgers",
    "album": "Random Access Memories",
    "song": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)",
    "channelName": "Daft Punk - Topic",
    "channelUrl": "https://www.youtube.com/channel/UCRr1xG_2WIDs18a6cIiCxeA",
    "url": "https://music.youtube.com/watch?v=4D7u5KF7SP8",
    "videoId": "4D7u5KF7SP8",
    "duration": "00:06:10",
    "durationSeconds": 370,
    "viewCount": 359601875,
    "publishedAt": "2014-11-07T19:18:11-08:00",
    "category": "Music",
    "thumbnailUrl": "https://i.ytimg.com/vi/4D7u5KF7SP8/maxresdefault.jpg",
    "releaseDate": "2013-05-20",
    "isAvailable": true
  },
  {
    "playedAt": "2026-10-20T21:15:03.120Z",
    "source": "YouTube",
    "title": "Me at the zoo",
    "channelName": "jawed",
    "channelUrl": "https://www.youtube.com/channel/UC4QobU6STFB0P71PMvOGN5A",
    "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
    "videoId": "jNQXAC9IVRw",
    "duration": "00:00:19",
    "durationSeconds": 19,
    "viewCount": 446963552,
    "publishedAt": "2005-04-23T20:31:52-07:00",
    "category": "Film & Animation",
    "isAvailable": true
  }
]

The key-value store's OUTPUT record sums up the run: rows saved, rows with video details, videos looked up, videos no longer available, and the entries the file had (ads and entries without a video link are skipped).

💰 Pricing

Pay per event. Platform usage (compute, proxy) is included in the price; you pay the events only.

EventFreeStarterScaleBusiness
History entry (per 1,000)$0.20$0.16$0.13$0.10
Video details (per 1,000 entries)$0.50$0.40$0.35$0.30
  • Example on the Free plan: a history of 10,000 plays costs $2.00 without video details and $7.00 with them.
  • Video details are charged only for rows that got them; videos that are now private or removed cost the history entry only.

❓ FAQ

Is it legal? It reads a file of your own data that Google gives you, and public video pages on YouTube. Use it for your own history, or with the consent of the person whose history it is.

Do I need to give my Google password or cookies? No. You export the history yourself with Google Takeout; the actor never signs in to your account.

How much history is in the export? Everything your account's watch history kept. If watch history was paused or auto-delete is on, those plays are not in the file.

Why are some fields empty? Album, artist and release date exist only for songs YouTube has music information for. Videos that were removed or made private since you watched them keep the title and link from your file but have no duration (isAvailable is false). Takeout leaves out the title of videos that were already removed when you exported; those entries are skipped.

Can I export only YouTube Music? Yes: set History to YouTube Music only.

Can I run it from the API or on a schedule? Yes. Pass takeoutFile as an https link your run can download. A schedule only makes sense with a new Takeout export each time; Google Takeout can also create scheduled exports every two months.

⚠️ Limits

  • The actor reads the file you give it; it cannot fetch your history from your Google account.
  • Uploads in the run form are limited to 100 MB, and a .json file to 10 MB: upload the Takeout .zip (a few MB even for years of history), or paste a link to the file. Select only history in Takeout to keep the archive small.
  • A long history with video details takes a while: about 5 new videos are looked up per second (roughly 18,000 an hour); repeat plays need no lookup. The default run timeout is 4 hours; raise it in the run options for a bigger history.
  • Takeout leaves search history, comments and likes in separate files; this actor exports watch and listening history only.
  • HTML exports give the play time to the second in your account's time zone; times in time zones the actor does not know stay in playedAtText. JSON exports are exact.
  • Ads that Takeout lists in the history are skipped.

Related actors

//From the blog\\

Latest articles

All articles

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.