Skip to main content

Manage and analyze your YouTube channel from the terminal. Designed for humans and AI agents.

Project description

YT Studio CLI

ascii

CI PyPI Python

Manage and analyze your YouTube channel from the terminal. Designed for humans and AI agents.

[!NOTE] This is not an official Google product, see disclaimer.

Motivation

I built this because I needed to bulk update video titles for a YouTube channel I manage with 300+ videos. YouTube Studio does not support bulk search-replace operations, which made it a tedious manual process. This tool uses the YouTube Data API to perform bulk operations on video metadata. Furthermore, it provides features for analytics and comment moderation, all accessible from the command line.

Features

  • Bulk update video metadata across hundreds of videos in one pass (search-replace titles, descriptions, tags).
  • Upload videos from a directory using YAML sidecars for metadata and thumbnails.
  • Schedule, start, stop, and update YouTube livestream broadcasts, including RTMP ingest details.
  • Multi-channel profiles: manage several channels from one machine and switch per command.
  • Comments moderation: list, reply, and moderate from the CLI.
  • Channel analytics queries via the YouTube Analytics API.

Documentation

See the full documentation for installation, OAuth setup, and the command reference.

Development

Clone the repo, sync dev dependencies, and install the pre-commit hook so ruff check and ruff format run on every commit (same checks CI runs):

uv sync --group dev
uv run pre-commit install

Run the suite manually with uv run pytest and uv run pre-commit run --all-files.

To preview the docs site locally, install the docs group and serve with mkdocs:

uv sync --group docs
uv run mkdocs serve  # or: uv run mkdocs build

API quota

The YouTube Data API enforces a default quota of 10_000 units per project per day. Most read operations (listing videos, comments, channel info) cost 1 unit, while write operations like updating video metadata or moderating comments cost 50 units each. Bulk updates can consume quota quickly. When exceeded, the API returns a 403 error; quota resets at midnight Pacific Time.

You can request a quota increase via IAM & AdminQuotas in the Google Cloud Console. See the official quota documentation for full details.

Disclaimer

This is not an officially supported Google or YouTube product. YouTube and YouTube Studio are trademarks of Google. All channel data is accessed exclusively through the official YouTube Data API and YouTube Analytics API.

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

ytstudio_cli-0.3.1.tar.gz (133.3 kB view details)

Uploaded Source

Built Distribution

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

ytstudio_cli-0.3.1-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

File details

Details for the file ytstudio_cli-0.3.1.tar.gz.

File metadata

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

File hashes

Hashes for ytstudio_cli-0.3.1.tar.gz
Algorithm Hash digest
SHA256 2f3acd080872031552a1e32d2ea9361bc92fff49c911a0311ff7f1a6aabddc5f
MD5 d4e3112197a51bb60ef0d1d197369410
BLAKE2b-256 9f9d018be5396b76f3a4de153e2d78f404445d289b956bcbe720ed5db425bd71

See more details on using hashes here.

Provenance

The following attestation bundles were made for ytstudio_cli-0.3.1.tar.gz:

Publisher: ci.yml on jdwit/ytstudio-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 ytstudio_cli-0.3.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for ytstudio_cli-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd31d1bb153ab4582ebbb2fe40c6a3f94d42b5beeb020dce1c5e9fa691cdb4a7
MD5 95c1f8165f0a52a8848d69ef4d9b1180
BLAKE2b-256 aa97890e77c76ed1e39429193d2c2beeff3d64c723ae75c8bb0f3556ebd73359

See more details on using hashes here.

Provenance

The following attestation bundles were made for ytstudio_cli-0.3.1-py3-none-any.whl:

Publisher: ci.yml on jdwit/ytstudio-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