Skip to main content

yt-research

yt-research is an open source command-line tool for exploring public YouTube channel metadata and upload histories. It produces readable terminal tables for people and stable JSON or CSV for scripts and agents.

[!IMPORTANT] This project is under active development. Version 0.1.0 is the first public interface and may evolve before 1.0.

What it does

  • Resolve a channel by handle, channel ID, or channel URL.
  • Search for channel candidates without silently choosing an ambiguous match.
  • Walk a channel's complete public uploads playlist.
  • Filter videos by title text or UTC publication date.
  • Sort by publication date, views, or likes.
  • Export versioned JSON and fixed-column CSV.

yt-research uses the official YouTube Data API v3. You provide your own API key, and the tool only requests public data.

Install

Python 3.11 or newer is required. The supported platforms are macOS and Linux.

pipx install yt-research

Alternatively, use uv:

uv tool install yt-research

Or run it without a persistent installation:

uvx yt-research --help

For a development checkout:

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

Configure an API key

Create an API key for the YouTube Data API v3, then store it in your operating system's native secret store:

yt-research auth set
yt-research auth status

For CI or headless Linux, set the environment variable instead:

export YT_RESEARCH_API_KEY="your-api-key"

The environment variable takes precedence over the native secret store. See API key setup for complete instructions and security guidance.

Quick start

Use a fictional placeholder handle in examples, replacing it with the public channel you want to research:

yt-research channel info @examplecreator
yt-research channel search "Example Creator"
yt-research videos latest @examplecreator --limit 20
yt-research videos top @examplecreator --year 2026 --limit 10
yt-research videos first @examplecreator --match "tutorial"
yt-research videos list @examplecreator --from 2025-01-01 --format json

When stdout is a terminal, results default to a table. Redirected output defaults to JSON:

yt-research videos list @examplecreator > videos.json
yt-research videos list @examplecreator --format csv --output videos.csv

Diagnostics and warnings are written to stderr, so JSON and CSV on stdout remain machine-readable.

Documentation

Privacy and limitations

The tool does not use OAuth or access private account data. Version 0.1.0 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 CONTRIBUTING.md, the Code of Conduct, and the Security Policy before opening a contribution.

License

MIT. See LICENSE.

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.0.tar.gz (80.2 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.0-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yt_research-0.1.0.tar.gz
  • Upload date:
  • Size: 80.2 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.0.tar.gz
Algorithm Hash digest
SHA256 f9a425ee0a20c4a1048ef1cbad572b5d5a9b2063ae1d967c51c9ddceb9821cfe
MD5 445fae88cff9cafe459b9ce5dc232450
BLAKE2b-256 aca3e894abcb9a289d7056965db6d3ac744909387602213146f8fa51b812e373

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_research-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: yt_research-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.8 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3332b4dc04122c095cb0a3368f96fb67b20f71acacbeb864d61f7794954c150
MD5 f6d8697c01f01feb7188451edda0703f
BLAKE2b-256 a74b0d62be4daf0b5983687eae226498653e617b2782f3fbfbf65b6302568ee4

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_research-0.1.0-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

0.1.1

2 files

This release

0.1.0 This release

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