Skip to main content

CLI for YouTube channel analysis and transcript downloading

Project description

yt-metrics-cli

CI Python 3.12+ License: MIT Docs

CLI tool that analyzes YouTube channels and downloads video transcripts, generating engagement metrics and structured reports.

Problem

YouTube Studio gives you analytics for your own channels. If you want to compare multiple channels, benchmark engagement rates, or bulk-download transcripts for research, you're stuck with manual work or fragmented browser extensions.

yt-metrics-cli solves this: point it at a list of channels, get CSV data, engagement reports, and transcript files in one command.

Quick Start

# Install
pip install yt-metrics-cli
# or
uv tool install yt-metrics-cli

# Set your API key
export YOUTUBE_API_KEY=your_key_here
# Get one at: https://console.cloud.google.com/apis/credentials

# Create channels.yml
cat > channels.yml << 'EOF'
- custom_url: "@mkbhd"
- custom_url: "@veritasium"
EOF

# Analyze
yt-metrics channels

Features

Feature Description
Multi-channel analysis Analyze N channels in one run
Engagement metrics View rate, like rate, comment rate, viral detection
CSV export Raw data with all computed fields
Text reports Channel stats, trends, top/latest video URLs
Transcript download Multi-language with 3-level fallback chain
API resilience Exponential backoff on rate limits (403/429)

Usage

Analyze Channels

yt-metrics channels                        # Use defaults from .env
yt-metrics channels -c my_channels.yml     # Custom channel list
yt-metrics channels -n 100 -o ./reports    # 100 videos, custom output

Generates timestamped reports in output/<timestamp>/:

  • CSV — Raw data with all metrics per video
  • Channel Stats — Per-channel analysis with top 5 videos
  • Engagement Trends — Cross-channel comparisons and rankings
  • Best/Latest Videos — URL lists for quick access
  • README — Index explaining all generated files

Download Transcripts

yt-metrics transcript -v dQw4w9WgXcQ       # Specific video
yt-metrics transcript -v abc123 -l es,en    # Language preference

Engagement Metrics

Metric Formula Interpretation
Engagement Rate (likes + comments) / views * 100 Overall audience interaction
View Rate views / subscribers * 100 Reach beyond subscriber base (>100% = viral)
Like Rate likes / views * 100 Content satisfaction signal
Comment Rate comments / views * 100 Discussion engagement level

Configuration

All settings can be set via environment variables or .env file:

Variable Default Description
YOUTUBE_API_KEY (required) YouTube Data API v3 key
MAX_RESULTS_PER_CHANNEL 50 Videos to fetch per channel
OUTPUT_DIR ./output Report output directory
CHANNELS_FILE channels.yml Channel list file path
VIDEO_ID Default video for transcript mode
TRANSCRIPT_LANGUAGES es,en Preferred transcript languages

Development

git clone https://github.com/mlorentedev/yt-metrics-cli.git
cd yt-metrics-cli
make install    # Create venv + install deps
make check      # Lint + typecheck + test
make build      # Full build

See CONTRIBUTING.md for details.

License

MIT

Documentation

Project-bound knowledge lives in docs/ (docs-as-code): ADRs, runbooks, troubleshooting, and lessons.

Project details


Download files

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

Source Distribution

yt_metrics_cli-0.2.2.tar.gz (145.1 kB view details)

Uploaded Source

Built Distribution

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

yt_metrics_cli-0.2.2-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file yt_metrics_cli-0.2.2.tar.gz.

File metadata

  • Download URL: yt_metrics_cli-0.2.2.tar.gz
  • Upload date:
  • Size: 145.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for yt_metrics_cli-0.2.2.tar.gz
Algorithm Hash digest
SHA256 c7ec2111e4a075c4cd68cc056dea15bbaa6e5706dc017af7f5a42f7ee2f90a23
MD5 523d62871a7db7f7d9546c7e79cf7d81
BLAKE2b-256 3e7fa781015d5c599c9da0f1fc92fb6f3acfa743584e87a27c073963bc09c6c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_metrics_cli-0.2.2.tar.gz:

Publisher: release.yml on mlorentedev/yt-metrics-cli

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_metrics_cli-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: yt_metrics_cli-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for yt_metrics_cli-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d6365e31c2887555ea4b2f702645ff193e4448b88396535ad9eb557ca3ec37f4
MD5 98efde33eec5b9e8077bba97ee9dda82
BLAKE2b-256 798fa7467fba1300f6afd2eac5292b70157f9575ec789cf756e613be1c513f4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_metrics_cli-0.2.2-py3-none-any.whl:

Publisher: release.yml on mlorentedev/yt-metrics-cli

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page