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.5.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.5-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: content_cli-0.6.5.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.5.tar.gz
Algorithm Hash digest
SHA256 5bf5faf95085efdf6f0a7c10a5ab6447bb50f138c870f023c1a0fb435794f4e2
MD5 b45fc358275607d258a60ad7ce98686d
BLAKE2b-256 f02ab3b2a1edfb2a48993d5ca254514f86c1dd64bf012653ef662a4838c5dfb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for content_cli-0.6.5.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.5-py3-none-any.whl.

File metadata

  • Download URL: content_cli-0.6.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5a0031dd97de9a5305a83fdf7cddd5e48a5588c75b641cee464b0d02d606a84a
MD5 0cf27afcd595853bd36b8aa7bb8a1b8b
BLAKE2b-256 e5a64844f05e63aa6cadf7df0a46ca0432fbf95bcb8318f902010ca7f9830db0

See more details on using hashes here.

Provenance

The following attestation bundles were made for content_cli-0.6.5-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

This release

0.6.5 This release

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

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