Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

YT Data Exporter

Export YouTube channel videos, Shorts, playlists, and search results to CSV, JSON, XLSX, or Markdown — directly from your browser. Free, open‑source, and 100% client‑side.

License: MIT Manifest V3 Chrome Edge Brave Opera

YT Data Exporter is a lightweight Chrome browser extension that turns any YouTube channel page, Shorts feed, playlist, or search results page into a clean, structured dataset. Perfect for content creators, marketers, researchers, journalists, and data analysts who need YouTube data without API keys, scraping services, or paid tools.


Table of contents


Why YT Data Exporter

Tired of copying YouTube video titles into spreadsheets by hand? Hitting the YouTube Data API v3 quota limits? Paying for SaaS scrapers that lock your data behind a subscription?

YT Data Exporter solves all of that:

  • No API key required — works on the public DOM, no quotas, no auth.
  • No server, no tracking — every byte stays on your machine.
  • No subscription — free and open source under the MIT license.
  • No setup — install, click, download.

If you've ever searched for a "YouTube channel video list exporter", "YouTube playlist to CSV", "YouTube Shorts scraper", or a "competitor channel research tool", this is the one‑click answer.


Features

  • One‑click export of videos, Shorts, playlists, and search results
  • Live preview window with sortable, searchable table before download
  • Export to CSV, JSON, XLSX (Excel), or Markdown
  • Filters: minimum/maximum views, upload age, duration, title keyword, content type
  • Aggregate statistics (total videos, total views, average views, top 10 by views)
  • Auto‑scroll to load every video on long channels
  • Re‑hydrate pass to fill in metadata YouTube lazy‑loads
  • Configurable item cap for large channels
  • Cancel mid‑scrape at any time
  • Light & dark theme toggle
  • Page‑type auto‑detection — knows whether you're on a channel, playlist, Shorts feed, or search
  • Keyboard shortcut: Ctrl+Shift+Y (⌘+Shift+Y on Mac)

Supported pages

Page type URL pattern Example
Channel Videos tab youtube.com/@handle/videos All long‑form videos on a channel
Channel Shorts tab youtube.com/@handle/shorts All Shorts on a channel
Playlists youtube.com/playlist?list=... Any public playlist
Search results youtube.com/results?search_query=... Any search query

Supported browsers

YT Data Exporter is a Chromium Manifest V3 extension and runs on every major Chromium‑based browser:

  • ✅ Google Chrome (v109+)
  • ✅ Microsoft Edge (v109+)
  • ✅ Brave
  • ✅ Opera
  • ✅ Vivaldi
  • ✅ Arc
  • ✅ Any other Chromium‑based browser that supports Manifest V3 extensions

Firefox is not currently supported — Firefox's MV3 implementation differs from Chromium. Firefox support is on the roadmap; PRs welcome.


Installation

Option 1 — Install from source (recommended for now)

  1. Download the latest release as a ZIP, or clone the repo:
    git clone https://github.com/amolbangare08/YT-Data-Exporter.git
  2. Open your browser and go to:
    • Chrome: chrome://extensions
    • Edge: edge://extensions
    • Brave: brave://extensions
  3. Enable Developer mode (top‑right toggle).
  4. Click Load unpacked and select the YT-Data-Exporter folder.
  5. Pin the extension to your toolbar — done.

Option 2 — Chrome Web Store

Coming soon.


How to use

  1. Open any supported YouTube page (channel Videos, channel Shorts, a playlist, or search results).
  2. Click the YT Data Exporter icon in your toolbar — or press Ctrl+Shift+Y.
  3. (Optional) Switch to the Filters tab to narrow results by views, age, duration, or title keyword.
  4. (Optional) Switch to the Settings tab to set a max item cap or change the default format.
  5. Click Scrape & Preview.
  6. The extension auto‑scrolls the page to load every item, then opens a preview tab with a sortable table, summary stats, and a top‑10 list.
  7. Pick your format (CSV / JSON / XLSX / Markdown) and click Download.

That's it. No accounts, no API keys, no rate limits.


How it works

YT Data Exporter is a content‑script‑based scraper. Here's what happens under the hood:

  1. When you click Scrape & Preview, the popup sends a scrapeData message to the active YouTube tab.
  2. A content script (content.js) injected into youtube.com auto‑scrolls the page using window.scrollTo until no new items load (or your max‑item cap is reached).
  3. It then walks the DOM using a hardened set of selectors that cover both YouTube's modern (yt-content-metadata-view-model) and legacy (#metadata-line) rendering paths.
  4. For each video card, it extracts:
    • Title, video ID, watch URL, thumbnail
    • View count (parsed from aria-label, metadata row, or subhead)
    • Upload time (relative — "2 days ago" — and an absolute timestamp estimate)
    • Duration (parsed from the badge overlay)
    • Whether it's a Short or a long‑form video
  5. Channel‑level info (name, description, subscriber count) is grabbed from the page header.
  6. Filters are applied client‑side, then the dataset is handed to preview.html, which renders the table, stats, and top‑10 chart.
  7. When you click Download, the data is serialized in your chosen format and saved via a Blob URL — nothing ever leaves your browser.

Permissions used (minimal):

  • activeTab — read the YouTube tab you click on
  • scripting — inject the content script
  • storage — remember your filter and theme preferences

No host_permissions for any non‑YouTube domain. No network requests to anywhere outside YouTube.


Export formats

Format Best for Notes
CSV Excel, Google Sheets, pandas, R UTF‑8 with BOM, RFC‑4180‑style quoting
JSON Developers, automation, APIs Pretty‑printed, includes metadata block
XLSX Power BI, Excel power users Native Excel format, multiple sheets
Markdown GitHub READMEs, Notion, Obsidian Pipe table with summary header

Data fields exported

Each row in the export contains:

  • title — video title
  • videoId — YouTube video ID (e.g. dQw4w9WgXcQ)
  • url — full https://www.youtube.com/watch?v=... link
  • thumbnail — high‑quality thumbnail URL
  • views — display string (e.g. "1.2M views")
  • viewsCount — numeric views, parsed
  • timeUploaded — relative string (e.g. "3 weeks ago")
  • uploadedDate — best‑effort ISO date estimate
  • duration — display string (e.g. "12:34")
  • durationSeconds — duration in seconds
  • isShort — boolean

Plus a top‑level metadata block with channel name, description, total videos found, total views, and average views.


Filters

Filters apply during preview generation, so you only export what you actually need.

  • Views — min and/or max
  • Upload age — last 24 hours / 7 days / 30 days / 12 months / any time
  • Duration — under 4 min, 4–20 min, over 20 min, or any
  • Title contains — case‑insensitive keyword match
  • Content type — include videos, Shorts, or both

Settings

  • Auto‑scroll to load all items — toggle on/off
  • Re‑scroll to hydrate metadata — fixes missing views/dates on lazy‑rendered cards
  • Max items to scrape — useful cap for huge channels
  • Default export format — CSV, JSON, XLSX, or Markdown

All settings persist via chrome.storage.


Keyboard shortcut

Action Windows / Linux macOS
Open YT Data Exporter Ctrl+Shift+Y ⌘+Shift+Y

You can rebind it at chrome://extensions/shortcuts.


Privacy

YT Data Exporter is fully client‑side:

  • No analytics, no telemetry, no error reporting.
  • No external network requests — only YouTube's own DOM is read.
  • No accounts, sign‑ups, or API keys.
  • Settings are stored locally via chrome.storage.local.

Your data is yours. Period.


FAQ

Does this use the YouTube Data API?

No. It reads the public DOM of the page you have open, so there are no API quotas or keys involved.

Will I get banned from YouTube for using this?

The extension simply automates scrolling and reads what's already on screen — the same thing your eyes do. That said, scraping at scale is against YouTube's Terms of Service, so use responsibly.

Why are some views or upload dates missing?

YouTube lazy‑loads metadata as you scroll. Enable Re‑scroll to hydrate metadata in Settings, or just scroll the page once before clicking Export.

How big a channel can it handle?

It's been tested on channels with 2,000+ videos. For very large channels, set a Max items cap in Settings and expect the scrape to take a few minutes.

Does it work on YouTube Music or YouTube Studio?

No — only on www.youtube.com channel/playlist/search/Shorts pages.

Can I export comments or subscriber lists?

No. The extension only reads what YouTube renders on the page; comments and subscriber lists aren't part of the supported page types.


Contributing

Contributions welcome. If YouTube changes its DOM and a selector breaks, that's the most common kind of fix:

  1. Open content.js.
  2. Find the SELECTORS block at the top — every CSS selector lives there.
  3. Update the broken one and submit a PR.

For larger changes, please open an issue first to discuss the approach.


License

MIT © Amol Bangare


Keywords

youtube channel exporter, youtube to csv, youtube to excel, youtube to json, youtube playlist exporter, youtube shorts scraper, youtube search results export, youtube data extractor, youtube channel videos list, youtube competitor research, youtube data without api key, chrome extension youtube, youtube data exporter free, open source youtube scraper

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages