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

Uploaded Python 3

File details

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

File metadata

  • Download URL: content_cli-0.6.0.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.0.tar.gz
Algorithm Hash digest
SHA256 7b1d049090853e1c3ca599bd6eaa862fd2c05f5166c3319da616d4f67dfeb836
MD5 9f6d7611651e1f9f3e89f3d6c774aadb
BLAKE2b-256 e92220a57687ec46c4aa9ad9d68dfcd19d4c940492bed174217b5ab72be17de2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: content_cli-0.6.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d69a09b9ebfb2795799ca2c04789dcfc38ab5b8762d6a0c2166e643f69fff800
MD5 eb5bc6522527ff08d3d478cf17a3f1f7
BLAKE2b-256 5043ee8c5157ebcdafbaafbbc7afe5ef6ff91e3802fa81546b0cdd8ee5c3e2d4

See more details on using hashes here.

Provenance

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

0.6.1

2 files

This release

0.6.0 This release

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