OpenAPI 명령
모든 `listenhub openapi` 명령의 레퍼런스 — 스크립트와 CI를 위한 API 키 네임스페이스.
listenhub openapi 네임스페이스의 모든 명령은 OAuth 로그인 대신 API 키로 인증합니다. 환경을 직접 통제할 수 있고 대화형 브라우저 플로우 대신 장기 자격 증명을 쓰고 싶은 서버와 CI에서 사용하세요.
시작하기 전에 키를 사용할 수 있게 만들어 두세요 — LISTENHUB_API_KEY를 설정하거나 listenhub openapi config set-key로 저장하면 됩니다. 자격 증명이 저장되는 위치와 CLI가 이를 해석하는 순서는 인증을 참고하세요.
export LISTENHUB_API_KEY="lh_sk_..."
listenhub openapi speakers list --language en이 페이지의 공통 규칙
이 네임스페이스의 모든 명령은 아래 동작을 공유합니다.
- 출력. 기본은 사람이 읽는 텍스트입니다.
--json/-j는 기계가 읽을 수 있는 JSON을stdout으로 출력합니다(에러는stderr로). JSON은jq로 파이프하세요. - 비동기 생성. 생성을 시작하는 명령은 작업을 제출한 뒤 종료 상태에 도달할 때까지 폴링하며 스피너를 표시합니다. 폴링 간격은 10초입니다.
--no-wait은 ID를 즉시 반환하고0으로 종료합니다.--timeout <seconds>는 대기 시간의 상한을 정합니다(기본값은 명령마다 다르며, 아래 각 그룹에 적어 두었습니다). - 종료 코드.
0성공,1에러,2인증,3타임아웃. - 크레딧. 생성에는 크레딧이 소비됩니다. 만들기 전에 해당하는
estimate명령으로 추정하고,listenhub openapi subscription으로 잔액을 확인하세요. 비용이 고정되어 있다고 가정하지 마세요.
모든 명령은 --help / -h를 받습니다. listenhub openapi <group> <command> --help를 실행하면 설치된 버전의 정확한 플래그를 확인할 수 있습니다.
config
저장된 API 키를 관리합니다. CLI는 LISTENHUB_API_KEY를 먼저 읽고, 그다음 set-key가 기록한 파일을 읽습니다.
| 명령 | 설명 |
|---|---|
config set-key | 키 입력을 요청하고 ~/.config/listenhub/openapi.json(권한 0600)에 저장합니다. 키는 lh_sk_로 시작해야 합니다. |
config show | 설정된 키(마스킹)와 그 출처(env 또는 file)를 표시합니다. --json을 받습니다. 설정된 것이 없으면 1로 종료합니다. |
config clear | 저장된 키 파일을 삭제합니다. |
listenhub openapi config set-key
listenhub openapi config show --jsonspeakers
계정에서 사용할 수 있는 보이스를 나열합니다. ID 열이 곧 생성 명령에 전달하는 speakerId입니다.
| 명령 | 옵션 | 설명 |
|---|---|---|
speakers list | --language <lang>, --json | 스피커를 나열하며, 언어로 필터링할 수 있습니다. |
listenhub openapi speakers list --language enName, ID, Gender, Language 열로 이루어진 표를 출력합니다.
tts, audio-speech, speech
텍스트를 음성으로 바꾸는 세 가지 방법입니다. 앞의 둘은 바이너리 오디오를 파일로 스트리밍하고, 세 번째는 호스팅된 오디오 URL을 반환합니다.
| 명령 | 설명 |
|---|---|
tts | 텍스트를 음성으로 변환해 로컬 파일로 스트리밍합니다. |
audio-speech | tts와 동일하되 OpenAI /v1/audio/speech 호환 경로를 사용합니다. |
speech | 음성을 만들고 호스팅된 audioUrl을 돌려받습니다(길이, 크레딧, 가능한 경우 자막 포함). |
tts와 audio-speech는 다음 옵션을 공유합니다.
| 옵션 | 기본값 | 설명 |
|---|---|---|
--text <text> | 필수 | 변환할 텍스트. |
--voice <speakerId> | 필수 | 스피커 ID. |
--output <file> | 필수 | 출력 파일 경로. |
--format <format> | mp3 | mp3, opus, aac, flac, wav, pcm 중 하나. |
speech 옵션:
| 옵션 | 설명 |
|---|---|
--script <content> | 스크립트 텍스트(필수). |
--speaker-id <id> | 스피커 ID(필수). |
--json, -j | JSON 출력. |
# Stream an MP3 to disk
listenhub openapi tts \
--text "Welcome to ListenHub." \
--voice <speaker-id> \
--output welcome.mp3
# Get a hosted audio URL instead
listenhub openapi speech --script "Welcome to ListenHub." --speaker-id <speaker-id>flow-speech
Flow Speech는 소스나 스크립트를 내레이션 에피소드로 만듭니다. 생성 명령은 processStatus가 success가 될 때까지 폴링하며, --timeout 기본값은 300초입니다.
| 명령 | 설명 |
|---|---|
flow-speech create | --source-url / --source-text로 에피소드를 생성합니다. |
flow-speech get <episodeId> | 에피소드 상세 정보를 가져옵니다. |
flow-speech tts | 소스 추출 없이 스크립트로 곧바로 에피소드를 생성합니다. |
flow-speech text-stream <episodeId> | 생성되는 텍스트를 SSE로 스트리밍합니다. |
flow-speech create 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--source-url <url> | — | 소스 URL. 반복 지정 가능. |
--source-text <text> | — | 소스 텍스트. 반복 지정 가능. |
--speaker-id <id> | 필수 | 스피커 ID. 반복 지정 가능. 최소 하나는 필요합니다. |
--mode <mode> | smart | smart 또는 direct. |
--lang <lang> | 자동 | 언어 코드. |
--no-wait | — | 폴링 없이 에피소드 ID를 반환합니다. |
--timeout <seconds> | 300 | 폴링 타임아웃. |
--json, -j | — | JSON 출력. |
--source-url 또는 --source-text 중 최소 하나는 필요합니다.
flow-speech tts 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--script <content> | 필수 | 스크립트 내용. 반복 지정 가능. 최소 하나 필요. |
--speaker-id <id> | 필수 | 스피커 ID. 반복 지정 가능. 최소 하나 필요. |
--title <title> | — | 에피소드 제목. |
--no-wait, --timeout <seconds>(300), --json | — | 위와 동일. |
스크립트와 스피커는 순서대로 짝지어집니다. 첫 번째 --script는 첫 번째 --speaker-id를 쓰는 식이며, 스크립트가 스피커보다 많으면 첫 번째 스피커를 다시 사용합니다.
flow-speech text-stream <episodeId>에는 --event <event>가 필요하며, 값은 script 또는 outline입니다. 원시 SSE 스트림을 stdout으로 씁니다.
# From a source URL, two voices
listenhub openapi flow-speech create \
--source-url "https://example.com/article" \
--speaker-id <host-id> \
--speaker-id <guest-id>
# Directly from scripts
listenhub openapi flow-speech tts \
--script "Hello and welcome." --speaker-id <host-id> \
--script "Glad to be here." --speaker-id <guest-id> \
--title "Episode 1"listenhub-voice
listenhub-voice-1.0을 사용한 엔드투엔드 오디오 생성 — 일반 내레이션, 음향 효과, 단일 보이스 음성, 다중 화자 대화, 보이스 클로닝, 이미지-투-오디오를 지원합니다. generate는 작업을 만든 뒤 status가 success가 될 때까지 폴링하고(--timeout 기본값 300초), task와 tasks는 기존 작업을 조회합니다.
| 명령 | 설명 |
|---|---|
listenhub-voice generate | 텍스트 스크립트로 오디오를 생성합니다. |
listenhub-voice tasks | 작업을 최신순으로 나열합니다. |
listenhub-voice task <taskId> | 작업 상세 정보를 가져오며, 완료될 때까지 폴링할 수도 있습니다. |
listenhub-voice generate 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--text <text> | 필수 | 스크립트 텍스트, 최대 1400자. 다중 보이스 모드에서는 @音频1 / @音频2로 대사를 배정합니다. |
--voice <spec...> | — | 보이스 1–3개. 각 값은 speaker:<voiceType>(내장 프리셋, 단일 보이스 전용) 또는 reference:<url>(사용자 참조 오디오)입니다. 다중 보이스 대화를 만들려면 반복 지정하거나 공백으로 구분하세요. --image-url과 함께 쓸 수 없습니다. |
--image-url <url> | — | 이미지-투-오디오용 참조 이미지 URL. --voice와 함께 쓸 수 없습니다. |
--speech-rate <n> | — | 말하기 속도, -50–100. |
--loudness-rate <n> | — | 음량, -50–100. |
--pitch-rate <n> | — | 음높이, -12–12. |
--format <fmt> | mp3 | 출력 포맷: mp3, wav, pcm, ogg_opus. |
--duration-hint <seconds> | — | 목표 길이, 1–110. |
--watermark | 꺼짐 | 오디오 워터마크를 추가합니다. |
--no-wait, --timeout <seconds>(300), --json | — | 표준 비동기 플래그. |
listenhub-voice tasks 옵션: --page <n>(기본값 1), --page-size <n>(기본값 20, 최대 100), --status <status>(pending, generating, uploading, success, failed 중 하나), --keyword <text>, --json.
listenhub-voice task <taskId>는 --wait(종료 상태까지 폴링), --timeout <seconds>(300), --json을 받습니다.
# Single built-in voice
listenhub openapi listenhub-voice generate \
--text "Welcome to ListenHub. Here is your daily briefing." \
--voice "speaker:zh_female_warm" \
--duration-hint 20
# Two-voice dialogue (@音频N assigns lines in order)
listenhub openapi listenhub-voice generate \
--text "@音频1 Hi there! @音频2 Hello, how can I help?" \
--voice "reference:https://example.com/host.mp3" \
--voice "speaker:zh_male_calm"
# Image to audio
listenhub openapi listenhub-voice generate \
--text "Describe this scene as a short narrated clip." \
--image-url "https://example.com/scene.jpg"voice-clone
참조 오디오로 보이스를 복제하고, 그렇게 만들어진 비공개 보이스를 관리합니다. create는 로컬 오디오 파일 1–6개를 업로드하고 복제가 끝날 때까지 폴링합니다. confirm은 완료된 작업을 재사용 가능한 보이스로 확정하며, 그 스피커 ID는 tts, speech, audio-speech에서 그대로 쓸 수 있습니다. 업로드 방식만 지원하며, 대화형 녹음 플로우는 웹 앱에 있습니다.
복제에는 복제 대상 본인의 동의가 필요합니다. --consent는 그 동의를 확보했다는 선언이며, 이 플래그가 없으면 API가 생성 요청을 거부합니다. 확정은 요금제의 기간별 쿼터 안에서는 무료이고, 쿼터를 넘기면 확정 1회당 300 크레딧이 들며 --use-credits를 전달했을 때만 진행됩니다.
| 명령 | 설명 |
|---|---|
voice-clone create | 참조 오디오를 업로드하고 복제 작업을 생성합니다. |
voice-clone get <taskId> | 작업을 가져옵니다. --auto-confirm으로 생성한 작업이라면 확정까지 처리합니다. |
voice-clone confirm | 완료된 작업을 비공개 보이스로 확정합니다. |
voice-clone speakers | 비공개 보이스를 쿼터 및 남은 확정 횟수와 함께 나열합니다. |
voice-clone speaker <speakerId> | 비공개 보이스 하나를 가져옵니다. |
voice-clone update <speakerId> | 보이스 이름을 바꾸거나 성별을 변경합니다. |
voice-clone delete <speakerId> | 보이스를 삭제하고 슬롯 하나를 되돌립니다. |
voice-clone create 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--file <path...> | 필수 | 로컬 참조 오디오 파일 1–6개. |
--lang <lang> | 필수 | zh, en, ja. |
--consent | 꺼짐 | 필수. 복제 대상 본인의 동의를 확보했음을 선언합니다. |
--auto-confirm | 꺼짐 | 복제가 끝나는 즉시 보이스를 확정합니다. --name과 --gender가 필요합니다. |
--name <name> | — | 보이스 이름, 최대 50자. --auto-confirm과 함께 쓸 때는 필수. |
--gender <gender> | — | male, female, other. --auto-confirm과 함께 쓸 때는 필수. |
--use-credits | 꺼짐 | 쿼터를 다 쓴 뒤의 300 크레딧 차감을 승인합니다. |
--no-wait, --timeout <seconds>(600), --json | — | 표준 비동기 플래그. |
voice-clone confirm은 --task-id <id>, --name <name>, --gender <gender>를 받고 --use-credits는 선택입니다. voice-clone update <speakerId>는 --name과 --gender 중 최소 하나를 받습니다.
폴링은 세 가지 상태 중 하나로 끝납니다. 복제 실패(에러 코드와 메시지), 복제됐지만 미확정(미리듣기 URL, auto-confirm이 저장하지 못한 경우 확정 에러 포함), 확정 완료(스피커 ID)입니다.
# Two-step: clone, listen, then confirm
listenhub openapi voice-clone create --file ./reference.mp3 --lang en --consent
listenhub openapi voice-clone confirm \
--task-id 6915bde9cca4d3c8ecb3eaf5 --name "My API Voice" --gender female
# One-shot: clone and confirm in the same flow
listenhub openapi voice-clone create \
--file ./part-1.mp3 --file ./part-2.mp3 --lang ja \
--consent --auto-confirm --name "My API Voice" --gender female --use-credits
# Speak with the cloned voice
listenhub openapi speech --script "Hello from my own voice." \
--speaker-id voice-clone-6915bde9cca4d3c8ecb3eaf5
# Manage private voices
listenhub openapi voice-clone speakers
listenhub openapi voice-clone delete 6915c0a2cca4d3c8ecb3eb01podcast
팟캐스트 에피소드를 생성합니다. 텍스트와 오디오를 한 번에 만들 수도 있고, 둘을 나눠서 텍스트 콘텐츠를 먼저 생성해 검토하거나 스트리밍한 뒤 오디오를 생성할 수도 있습니다. 생성 명령의 --timeout 기본값은 300초입니다.
| 명령 | 설명 |
|---|---|
podcast create | --query와/또는 소스로 전체 에피소드(텍스트 + 오디오)를 생성합니다. |
podcast get <episodeId> | 에피소드 상세 정보를 가져옵니다. |
podcast text-content | 오디오 없이 스크립트만 생성합니다. contentStatus가 text-success가 될 때까지 폴링합니다. |
podcast generate-audio <episodeId> | 이미 있는 텍스트 에피소드의 오디오를 생성합니다. contentStatus가 audio-success가 될 때까지 폴링합니다. |
podcast text-stream <episodeId> | 생성되는 텍스트를 SSE로 스트리밍합니다. |
podcast create 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--query <text> | — | 에피소드의 주제 또는 프롬프트. |
--source-url <url> | — | 소스 URL. 반복 지정 가능. |
--source-text <text> | — | 소스 텍스트. 반복 지정 가능. |
--speaker-id <id> | 필수 | 스피커 ID. 반복 지정 가능. 최소 하나 필요. 여러 개를 주면 다중 보이스 에피소드가 됩니다. |
--mode <mode> | — | 생성 모드. |
--lang <lang> | 자동 | 언어 코드. |
--no-wait, --timeout <seconds>(300), --json | — | 표준 비동기 플래그. |
podcast text-content는 동일한 소스·스피커 옵션(--query, --source-url, --source-text, --speaker-id, --mode)과 비동기 플래그를 받습니다. --query, --source-url, --source-text 중 최소 하나는 필요합니다.
podcast text-stream <episodeId>에는 --event <event>가 필요하며, 값은 script 또는 outline입니다.
# One-shot: text + audio
listenhub openapi podcast create \
--query "AI agent trends in 2026" \
--speaker-id <host-id> \
--mode quick
# Two-step: text first, then audio
ID=$(listenhub openapi podcast text-content \
--query "Weekly recap" --speaker-id <host-id> --no-wait -j | jq -r '.episodeId')
listenhub openapi podcast text-stream "$ID" --event script
listenhub openapi podcast generate-audio "$ID"storybook
Storybook은 해설(explainer)과 슬라이드 에피소드를 만들며, 선택적으로 비디오까지 생성합니다. 생성은 processStatus가 success가 될 때까지 폴링하며, --timeout 기본값은 300초입니다.
| 명령 | 설명 |
|---|---|
storybook create | 소스로 에피소드를 생성합니다. |
storybook get <episodeId> | 에피소드 상세 정보를 가져옵니다. |
storybook generate-video <episodeId> | 에피소드의 비디오 생성을 시작합니다. |
storybook create 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--source-url <url> | — | 소스 URL. 반복 지정 가능. |
--source-text <text> | — | 소스 텍스트. 반복 지정 가능. |
--speaker-id <id> | — | 스피커 ID. 반복 지정 가능. 선택. |
--skip-audio | 꺼짐 | 오디오 없이 생성합니다. |
--style <style> | — | Storybook 스타일. |
--mode <mode> | info | info, story, slides 중 하나. |
--lang <lang> | 자동 | 언어 코드. |
--no-wait, --timeout <seconds>(300), --json | — | 표준 비동기 플래그. |
listenhub openapi storybook create \
--source-url "https://example.com/explainer" \
--mode slides --skip-audioimage
프롬프트로 AI 이미지를 생성하며, 참조 이미지를 조건으로 줄 수도 있습니다. --reference는 로컬 파일 경로와 URL을 모두 받습니다. 로컬 파일은 읽어서 인라인으로 전송하고, URL은 참조로 전달합니다.
| 옵션 | 설명 |
|---|---|
--prompt <text> | 이미지 설명(필수). |
--provider <provider> | 프로바이더 이름(필수). |
--model <model> | 모델 이름. |
--size <size> | 1K, 2K, 4K 중 하나. |
--ratio <ratio> | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 중 하나. |
--reference <path-or-url> | 참조 이미지, 로컬 경로 또는 URL. 반복 지정 가능. |
--json, -j | JSON 출력. |
listenhub openapi image create \
--provider <provider> \
--prompt "A neon-lit city skyline at dusk" \
--ratio 16:9 --size 2Kvideo
AI 비디오 생성. 이 그룹에는 두 가지 인터페이스가 있습니다. 범용 video 명령(텍스트/이미지/참조 기반)과 video pixverse 하위 명령(PixVerse capability API)입니다. 둘 다 status가 success가 될 때까지 폴링하고 --timeout 기본값은 1200초이며, 둘 다 24자 16진수 작업 ID를 사용합니다.
| 명령 | 설명 |
|---|---|
video create | 생성 작업을 만듭니다. |
video get <taskId> | 작업 상세 정보를 가져옵니다. |
video list | 작업을 나열합니다. |
video estimate | 생성 전에 크레딧을 추정합니다. |
video pixverse generate | PixVerse 작업을 만듭니다. |
video pixverse estimate | PixVerse 작업의 크레딧을 추정합니다. |
video create
프롬프트는 필수이고, 나머지 옵션은 입력 모드를 고릅니다. 프레임 모드(--first-frame / --last-frame)와 참조 모드(--reference-image / --reference-video / --reference-audio)는 함께 쓸 수 없습니다.
| 옵션 | 기본값 | 설명 |
|---|---|---|
--prompt <text> | 필수 | 비디오 설명 / 프롬프트. |
--first-frame <url> | — | 첫 프레임 이미지 URL. |
--last-frame <url> | — | 마지막 프레임 이미지 URL. --first-frame이 필요합니다. |
--reference-image <url> | — | 참조 이미지 URL. 반복 지정 가능, 최대 9개. |
--reference-video <url> | — | 참조 비디오 URL. 반복 지정 가능, 최대 3개. --input-video-duration이 필요합니다. |
--reference-audio <url> | — | 참조 오디오 URL. 반복 지정 가능, 최대 3개. --reference-image 또는 --reference-video가 필요합니다. |
--input-video-duration <seconds> | — | 입력 비디오 길이, 2–15. --reference-video와 함께 쓸 때는 필수. |
--model <model> | — | 모델 이름, 예: doubao-seedance-2-pro. |
--resolution <res> | — | 480p, 720p, 1080p 중 하나. |
--ratio <ratio> | — | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 중 하나. |
--duration <seconds> | — | 출력 길이, 4–15. |
--no-generate-audio | 오디오 켜짐 | 오디오 생성을 끕니다. |
--seed <number> | — | 랜덤 시드, -1부터 4294967295까지. |
--no-wait, --timeout <seconds>(1200), --json | — | 표준 비동기 플래그. |
# Text to video
listenhub openapi video create \
--prompt "A timelapse of clouds over a mountain range" \
--model doubao-seedance-2-pro \
--resolution 1080p --duration 8
# First/last frame interpolation
listenhub openapi video create \
--prompt "Smooth morph between the two frames" \
--first-frame "https://example.com/a.jpg" \
--last-frame "https://example.com/b.jpg"video list와 estimate
video list 옵션: --page <n>(기본값 1), --page-size <n>(기본값 20), --status <status>(pending, generating, uploading, success, failed 중 하나), --json.
video estimate는 --model, --resolution, --duration이 필요하고, --ratio, --has-video-input, --input-video-duration(--has-video-input을 설정한 경우 필수)을 받습니다.
listenhub openapi video estimate \
--model doubao-seedance-2-pro --resolution 1080p --duration 8video pixverse
PixVerse는 원자적인 생성 capability와 마케팅 에이전트를 제공합니다. --capability로 하나를 고르세요.
| Capability | 하는 일 |
|---|---|
text_to_video | 텍스트 프롬프트로 생성합니다. |
image_to_video | 정지 이미지를 움직이게 합니다. |
transition | 두 에셋 사이를 전환합니다. |
multi_transition | 여러 에셋에 걸쳐 전환합니다. |
fusion | 여러 입력을 하나의 클립으로 합칩니다. |
restyle | 기존 PixVerse 비디오의 스타일을 바꿉니다. |
mimic | 참조 모션/스타일을 모방합니다. |
lip_sync | 오디오나 TTS로 입 모양을 움직입니다. |
agent | 마케팅 에이전트(ad_master, promo_mix). |
공통 enum:
- 모델(
--model):pixverse,v6,v5,v4.5(기본값pixverse). - 언어 / 리전(
--language):zh,en(기본값en). - 품질(
--quality):360p,540p,720p,1080p(기본값720p). - 화면 비율(
--aspect-ratio):9:16,16:9,1:1,4:3,3:4(기본값16:9). - 에이전트 타입(
--agent-type,--capability agent와 함께):ad_master,promo_mix.
video pixverse generate 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--capability <capability> | 필수 | 위 capability 중 하나. |
--model <model> | pixverse | 모델. |
--language <lang> | en | 서비스 리전. |
--prompt <text> | — | 프롬프트, 최대 2048자. |
--quality <quality> | 720p | 출력 품질. |
--aspect-ratio <ratio> | 16:9 | 화면 비율. |
--duration <seconds> | 5 | 정수 1–60. |
--source-task-id <id> | — | 이전에 성공한 PixVerse 작업을 재사용합니다(restyle / lip_sync용). |
--image <url[:duration]> | — | 이미지 에셋, :duration 접미사는 선택. 반복 지정 가능, 최대 10개. |
--video <url[:duration]> | — | 비디오 에셋, :duration 접미사는 선택. 반복 지정 가능, 최대 2개. |
--audio <url[:duration]> | — | 오디오 에셋, :duration 접미사는 선택. 반복 지정 가능, 최대 1개. |
--agent-type <type> | — | ad_master 또는 promo_mix(--capability agent와 함께). |
--source-video-id <id> | — | PixVerse 소스 비디오 id(restyle). |
--restyle-id <id> | — | PixVerse restyle id(restyle). |
--lip-sync-tts | 꺼짐 | 립싱크 TTS를 켭니다(--capability lip_sync). |
--lip-sync-speaker-id <id> | — | 립싱크 TTS 스피커 id. |
--lip-sync-content <text> | — | 립싱크 TTS 내용. |
--pixverse-json <json> | — | 이스케이프 해치: 중첩된 pixverse 객체에 넣을 원시 JSON. 플래그에서 만들어진 필드와 병합되며, 충돌하면 플래그가 이깁니다. |
--no-wait, --timeout <seconds>(1200), --json | — | 표준 비동기 플래그. |
에셋 플래그는 끝에 초 단위 :duration을 선택적으로 받습니다. 예를 들면 https://example.com/clip.mp4:5입니다. 맨 뒤의 :<integer>만 길이로 해석하므로, 콜론이 들어간 URL도 안전합니다.
# Lip-sync from TTS
listenhub openapi video pixverse generate \
--capability lip_sync \
--video "https://example.com/face.mp4" \
--lip-sync-tts \
--lip-sync-speaker-id <speaker-id> \
--lip-sync-content "Hi, here's our product update."
# Marketing agent
listenhub openapi video pixverse generate \
--capability agent \
--agent-type ad_master \
--prompt "30-second ad for a noise-cancelling headset" \
--image "https://example.com/product.jpg"video pixverse estimate는 --capability(필수)와 함께 --model, --language, --quality, --duration, --agent-type을 받습니다.
listenhub openapi video pixverse estimate \
--capability text_to_video --quality 1080p --duration 5music
Mureka 기반 AI 음악 생성. 비동기 명령(generate, remix, instrumental, soundtrack, track)은 status가 success가 될 때까지 폴링하며 --timeout 기본값은 600초입니다. 분석 명령(recognize, describe, stem)은 동기로 실행됩니다.
| 명령 | 설명 |
|---|---|
music generate | 프롬프트와/또는 가사로 생성합니다. |
music remix [audio] | 기존 곡을 새 가사로 리믹스합니다. |
music instrumental | 독립적인 인스트루멘탈을 생성합니다. |
music soundtrack | 이미지나 비디오로 음악을 생성합니다. |
music track [audio] | 단일 악기 또는 보컬 트랙을 생성합니다. |
music recognize | 오디오에서 타임스탬프가 붙은 가사를 인식합니다. |
music describe | 오디오를 분석합니다: 설명, 태그, 장르, 악기. |
music stem | 오디오를 스템으로 분리하고 다운로드 URL을 반환합니다. |
music list | 음악 작업을 나열합니다. |
music get <taskId> | 작업 상세 정보를 가져옵니다. |
생성 명령들에서 공통으로 쓰는 모델 값: auto, mureka-7.6, mureka-8, mureka-9, mureka-o2.
music generate 옵션:
| 옵션 | 설명 |
|---|---|
--prompt <text> | 음악 설명. --prompt와 --lyrics 중 최소 하나는 필요합니다. |
--lyrics <text> | 곡 가사. |
--style <text> | 음악 스타일 / 분위기. |
--title <text> | 트랙 제목. |
--model <model> | 위 모델 값 중 하나. |
--instrumental | 보컬 없이 인스트루멘탈만. |
--vocal-id <id> | 재사용 가능한 보컬 id. |
--no-wait, --timeout <seconds>(600), --json | 표준 비동기 플래그. |
music remix [audio]는 오디오를 위치 인자 파일로 받거나 --audio-url <url> 또는 --provider-song-id <id>로 받으며, 셋 중 정확히 하나만 지정해야 합니다. --lyrics와 --prompt가 필요합니다.
music instrumental은 --prompt와 --reference-audio <file>(mp3/m4a, 최대 10MB) 중 정확히 하나가 필요하며, --model을 받습니다.
music soundtrack은 --image <file>와 --video <file> 중 정확히 하나가 필요하며, --prompt와 --model을 받습니다.
music track [audio]는 오디오를 위치 인자 파일이나 --provider-song-id <id>로 받습니다(정확히 하나). --generate-type(Vocals, Instrumental, Drums, Bass, Guitar, …)과 --prompt가 필요하고, --generate-type이 Vocals이면 --lyrics도 필요합니다. 선택 옵션은 --vocal-gender <male|female>, --generate-start <seconds>, --generate-end <seconds>입니다.
music recognize, music describe, music stem은 각각 --audio <file>(mp3/m4a, 최대 10MB)이 필요합니다. music stem은 --model(audio-separation-1 또는 audio-separation-2)도 받습니다.
music list 옵션: --page <n>(기본값 1), --page-size <n>(기본값 20), --status <status>(pending, generating, uploading, success, failed), --json.
# Generate from a prompt
listenhub openapi music generate \
--prompt "Upbeat synthwave with a driving bassline" --title "Night Drive"
# Separate an mp3 into stems
listenhub openapi music stem --audio track.mp3content
URL에서 읽을 수 있는 콘텐츠를 추출하고, 원하면 요약합니다. 비동기이며 status가 completed가 될 때까지 폴링하고 --timeout 기본값은 300초입니다.
| 명령 | 설명 |
|---|---|
content extract | URL에서 콘텐츠를 추출합니다. |
content get <taskId> | 추출 결과를 가져옵니다. |
content extract 옵션:
| 옵션 | 기본값 | 설명 |
|---|---|---|
--url <url> | 필수 | 추출 대상 URL. |
--summarize | 꺼짐 | 추출한 콘텐츠를 요약합니다. |
--max-length <n> | — | 최대 콘텐츠 길이. |
--no-wait, --timeout <seconds>(300), --json | — | 표준 비동기 플래그. |
listenhub openapi content extract --url "https://example.com/article" --summarizesubscription
구독 요금제와 크레딧 잔액을 표시합니다 — 사용 가능한 총 크레딧, 월 할당량의 사용량/총량, 영구 크레딧, 요금제 이름, 만료일.
| 명령 | 옵션 | 설명 |
|---|---|---|
subscription | --json | 구독과 크레딧 정보를 표시합니다. |
listenhub openapi subscription --json