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

Uploaded Python 3

File details

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

File metadata

  • Download URL: content_cli-0.6.6.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.6.tar.gz
Algorithm Hash digest
SHA256 548b97e4f762a16b5e60bd2e56c74a01ed0a201e73ed4afde90fe0737ff97518
MD5 644f89a71804889e76d807a4236505a1
BLAKE2b-256 1b5b62f75fd586625dae541f306dcf4484716dedad9fb9451b8078ebb81c61fb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: content_cli-0.6.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1e7de7f5f8940132fac7afce281d2876286d5b9defdc97130fabed4e51b824af
MD5 9418fc34468c5b2dba996baaf991b97c
BLAKE2b-256 2c6ddd4fe7f773f082d73307839d9333717fdc57797391872086f6ff0cb4d1a2

See more details on using hashes here.

Provenance

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

This release

0.6.6 This release

2 files

0.6.5

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