Skip to main content

content — Content CLI

A thin command-line client for the Content engine, built on the official Python SDK (content_sdk) — it never speaks HTTP itself and never runs the planner, yt-dlp or ffmpeg. Ergonomic shortcuts (video, audio) are normalized to canonical GenerationRequests; there is no parallel contract.

Install

The CLI is an ordinary Python application — nothing to clone:

uv tool install content-cli     # isolated, on your PATH — recommended
content --help

# or
pipx install content-cli

content-cli on PyPI pulls content-sdk as an ordinary dependency, pinned to the matching release. The wheels are also attached to each GitHub release for air-gapped installs (uv tool install ./content_cli-<v>-py3-none-any.whl --find-links .).

From a clone

pip install ./packages/python-sdk ./apps/cli     # exposes `content`

For development

make install    # editable installs of the engine, SDK, CLI and MCP in one venv

Build the distributions yourself with make wheels (they land in dist/).

Point it at your engine

--api-url URL or CONTENT_API_URL (default http://localhost:8010):

export CONTENT_API_URL=http://nas.local:8010
content health

Commands

content health
content config
content analyze https://youtu.be/… [--credential youtube]
content analysis <analysis_id>           # re-fetch a stored analysis (ADR 0014)
content video  https://youtu.be/… --height 1080 --container mkv --subs en,fr --watch
content audio  https://youtu.be/… --format opus --folder music --name track --watch
content video  https://…/playlist?list= --playlist --watch      # each item
content submit request.json --watch      # raw GenerationRequest (or - for stdin)
content jobs
content job    <job_id>
content watch  <job_id>
content artifacts <job_id>
content download <artifact_id> -o out.mkv
content cancel <job_id> ; content retry <job_id>

Global flags: --api-url URL and --json (raw JSON output) go before the subcommand. Exit code is non-zero on API errors or a failed watched job.

Exit codes when watching a job

content ... --watch and content watch <job> return the outcome, so a script can chain on it (ADR 0021):

Code Meaning
0 succeeded — everything asked for was produced
2 partially_succeeded — some of it was, and at least one step failed
1 failed or cancelled

2 is deliberately distinct from 1. A playlist that yielded five videos of six, or a download whose delivery into your library was refused, is not a failure — but it is not a success either, and a script that treats it as one will quietly move on with missing files.

Download files

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

Source Distribution

content_cli-0.6.1.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

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

content_cli-0.6.1-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file content_cli-0.6.1.tar.gz.

File metadata

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

File hashes

Hashes for content_cli-0.6.1.tar.gz
Algorithm Hash digest
SHA256 7997c88211fafc169c72f7345da9bf107754d9d1c3b84db37afd9350ce4c6c5d
MD5 e7b9b879bdd46cb62bf1146845142156
BLAKE2b-256 b60a83db0bd4766b7a674dfa9d73be045154d25e851e9a66cc951414c69a41cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for content_cli-0.6.1.tar.gz:

Publisher: publish-pypi.yml on LatentNoise/content

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

File details

Details for the file content_cli-0.6.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for content_cli-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a2da5db6be8630871ac7e8c1c924de920be329706368ca1244cd8c04e36a4aed
MD5 a6768f0e2869edbe0e99c70a5b04c275
BLAKE2b-256 22489f0b5f3f18d56726f178d19970a97fc88959e06536855e33d4d8e13a76df

See more details on using hashes here.

Provenance

The following attestation bundles were made for content_cli-0.6.1-py3-none-any.whl:

Publisher: publish-pypi.yml on LatentNoise/content

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.6.7

2 files

0.6.6

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

This release

0.6.1 This release

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.3

2 files

0.3.0

2 files

0.2.0

2 files

Supported by

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