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.3.tar.gz (143.5 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.3-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yt_metrics_cli-0.2.3.tar.gz
  • Upload date:
  • Size: 143.5 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.3.tar.gz
Algorithm Hash digest
SHA256 7b6b354768db6d0601e7abe77ced344cab8ed3e416c42a53ea75afc27638a0f2
MD5 a099393edba0bd2cb823f83cb5c051a9
BLAKE2b-256 4a64915daf111fc4ad05c88aaa21178091891f239e71f8a9d9113e3324eb4d18

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_metrics_cli-0.2.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: yt_metrics_cli-0.2.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8045b591b9c856278d12ccee3e0e418e19497c36a095728d17e68738b29ced0a
MD5 dcbe95a8a2fe21dd2f2b7618ca64bf6c
BLAKE2b-256 bd844899a41905178cb4ba546b49e89b080e87bb7625143abe86df80ed700cc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for yt_metrics_cli-0.2.3-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