Skip to main content
A video play button under a magnifying glass, surrounded by terminal and data-analysis elements

yt-research

YouTube channel research, straight from your terminal.

Explore public channel metadata and upload histories, then export clean data for spreadsheets, scripts, and agents.

CI PyPI Python License: MIT

Quick start · Commands · Documentation · Contributing

[!IMPORTANT] yt-research is under active development. The 0.1.x interface may evolve before 1.0.


✨ Why yt-research?

The YouTube website is built for watching. yt-research is built for answering questions about a channel's public catalog.

discover  →  collect  →  filter  →  rank  →  export

🔎 Resolve precisely
Start from a handle, channel ID, or channel URL.
🧭 Search safely
See candidates instead of accepting an ambiguous match.
🗂️ Walk every upload
Traverse the channel's complete public uploads history.
🎯 Slice the catalog
Filter by title text, year, or UTC date range.
📊 Rank what matters
Sort videos by publication date, views, or likes.
↗️ Take data anywhere
Use terminal tables, versioned JSON, or fixed-column CSV.

It uses the official YouTube Data API v3 with your own API key and requests only public data. Ambiguous channel searches return candidates instead of silently choosing one.

⚡ Quick start

1 · Install

Use pipx with Python 3.11+ on macOS or Linux:

pipx install yt-research

2 · Authenticate

Add your YouTube Data API key to your operating system's native secret store:

yt-research auth set
yt-research auth status

3 · Research

Replace the placeholder with a public channel handle:

# See the newest uploads
yt-research videos latest @examplecreator --limit 10

# Find the most-viewed videos published in 2026
yt-research videos top @examplecreator --year 2026

# Search titles and save the results
yt-research videos list @examplecreator --match "tutorial" --format csv --output videos.csv

Terminal output defaults to a readable table. Redirected output automatically switches to JSON, while diagnostics stay on stderr:

yt-research videos list @examplecreator > videos.json

[!TIP] Need an API key? Follow the step-by-step API key setup guide. In CI or headless Linux, set YT_RESEARCH_API_KEY instead; it takes precedence over the native secret store.

Other ways to install

With uv:

uv tool install yt-research

For a one-off run:

uvx yt-research --help

From a development checkout:

git clone https://github.com/vedntp/yt-research.git
cd yt-research
uv sync
uv run yt-research --help

🧭 Commands at a glance

Command What it does
🔎 yt-research channel info CHANNEL Show public metadata for one channel
🧭 yt-research channel search QUERY Return candidates for a channel name
yt-research videos latest CHANNEL Show the newest matching uploads
📈 yt-research videos top CHANNEL Show the most-viewed matching uploads
yt-research videos first CHANNEL Find the oldest matching upload
🗂️ yt-research videos list CHANNEL List and filter a channel's uploads

Video commands support --match, --year, --from, --to, --sort, --limit, --format, and --output. Run any command with --help or see the full command reference.

Research recipes

🔭 Trace a topic through a channel
yt-research videos list @examplecreator --match "telescope" --sort published-asc

Title matching is case-insensitive. Add --from and --to to narrow the timeline.

🏆 Find a channel's strongest videos from one year
yt-research videos top @examplecreator --year 2026 --limit 25

videos top sorts matching uploads by view count and defaults to ten results.

🤖 Build a clean dataset for a script or agent
yt-research videos list @examplecreator --from 2025-01-01 --format json --output videos.json

The output follows a versioned contract and keeps warnings on stderr.

🔌 Built for people and programs

Interactive results are formatted as a styled terminal table:

Stylized yt-research terminal preview based on fictional fixture data

Stylized preview based on fictional test fixture data · open full size

The same commands fit cleanly into pipelines and spreadsheet workflows:

# Pipeline  versioned JSON
yt-research videos list @examplecreator --year 2026 | jq '.items[].title'

# Spreadsheet  fixed-column CSV
yt-research videos top @examplecreator --limit 50 --format csv --output top-videos.csv

JSON output includes a schema version, command metadata, the resolved channel, the effective query, result items, and request counts. See the JSON output contract for the stable shape.

📚 Documentation

Guide Description
Command reference Every command, option, and exit code
API key setup Google Cloud setup and credential security
JSON output contract Stable output schema for integrations
Troubleshooting Common authentication, quota, and network issues
Codex integration Optional setup for agent-driven research

Scope and privacy

yt-research does not use OAuth or access private account data. It does not download videos, retrieve transcripts or comments, classify Shorts, or run as a hosted service. API calls consume quota from the Google Cloud project associated with your key.

Contributing

Contributions are welcome. Read the contributing guide, Code of Conduct, and Security Policy before opening a contribution.

License

Released under the MIT License.


Built for curious people, repeatable research, and clean data.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yt_research-0.1.1.tar.gz (134.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yt_research-0.1.1-py3-none-any.whl (20.3 kB view details)

Uploaded Python 3

File details

Details for the file yt_research-0.1.1.tar.gz.

File metadata

  • Download URL: yt_research-0.1.1.tar.gz
  • Upload date:
  • Size: 134.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yt_research-0.1.1.tar.gz
Algorithm Hash digest
SHA256 440f81972c168ee852fbac9f356051f2afb07cc2af924cbc102562a90026475f
MD5 7c82f07f8720918c6b134db0d0f27961
BLAKE2b-256 2068f23a691a2611d7305437a60bb309bb6b08c5e8c8175ca3bf94b88ebb0b25

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_research-0.1.1.tar.gz:

Publisher: release.yml on vedntp/yt-research

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yt_research-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yt_research-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yt_research-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 988ea56977ca0968c67a81b0a9c1b37b1b41b448e8fb9d6d184b7700e0fbf84d
MD5 a0c2b6a03189617f21a124b88c5d2848
BLAKE2b-256 3e505624392349e4afc4896ffbdf848507875aca34a33b6b6977f072936ea202

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_research-0.1.1-py3-none-any.whl:

Publisher: release.yml on vedntp/yt-research

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.1.1 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page