분석과 편집 목록
MCP 도구로 동영상을 장면별로 분석하고 검수하며, 무음을 감지하고 여러 녹화본을 동기화하고, 편집 결정 목록을 계획하고 렌더링합니다.
분석과 편집 목록 도구는 기존 녹화본을 읽어 구조화된 데이터나 완성된 편집본으로 바꿉니다. video_analysis와 video_audit은 동영상을 다시 만들 수 있도록 장면별로 분석합니다. silence_detect와 audio_sync는 녹화본을 측정하고, plan_edit과 apply_edl은 녹취록으로 컷을 계획하고 렌더링합니다. switch_cameras는 누가 말하는지에 따라 컷마다 카메라를 고르고, tighten_episode는 팟캐스트 편집 전체를 한 번의 호출로 실행합니다. 모든 도구에는 workflows:execute 권한이 필요하며, 작업 ID를 반환합니다.
video_analysis
동영상을 AI로 다시 만들 수 있도록 장면별로 분석합니다. 동영상 분석 노드와 같은 방식으로 작동합니다.
- 장면은 자연스러운 경계에서 나뉘며 최대 8초입니다. 장면마다 이미지나 동영상을 하나씩 생성합니다.
visualResolved는 각 장면을 그것만으로 이해할 수 있게 쓴, 프롬프트로 바로 쓸 수 있는 설명입니다. 이후 단계가 읽는 필드입니다.- 각 장면에는 샷 유형, 카메라 움직임, 오디오 레이어 목록도 있습니다. 대사는 말한 그대로 인용하고, 음악과 효과음은 생성할 수 있도록 묘사합니다. 목록이 비어 있으면 무음입니다.
- 슬롯은 반복해서 나오는 인물, 사물, 장소입니다. 내 캐릭터로 바꿔 캐스팅할 수 있습니다.
권한: workflows:execute. 크레딧: 동영상 길이에 따라 정해지며, 아래 표에 나와 있습니다.
| 매개변수 | 타입 | 설명 |
|---|---|---|
video_asset_id, video_url 또는 youtube_url | string | 필수, 정확히 하나. Nodaro 동영상 작업이나 업로드의 id, 직접 동영상 URL, 또는 YouTube 링크입니다. 최대 10분이며, 라이브 스트림은 안 됩니다. 소스가 없거나 2개이면 오류를 반환합니다. |
variations | boolean | 옷 갈아입기, 꿈, 변장처럼 각 인물이나 사물의 다른 모습도 찾아내고, 모습마다 해당 장면에 연결합니다. 기본값은 false입니다. |
music_video | boolean | 클립을 뮤직비디오로 다룹니다. 노래한 가사를 모두 대사로 받아 적습니다. 기본값은 false이며, 이때 화면 속 누구도 부르지 않는 노래의 보컬은 음악 레이어에 포함됩니다. |
translate_speech_to_english | boolean | 말하거나 노래한 단어를 영어로 반환합니다. 기본값은 false로, 원래 언어를 유지합니다. |
translate_on_screen_text_to_english | boolean | 간판, 자막, 제목을 영어로 반환합니다. 이 텍스트는 시각 프롬프트의 일부이므로, 다시 생성한 장면에는 영어 문구가 나옵니다. 이름은 원래 형태를 유지합니다. 기본값은 false입니다. |
analysis_focus | string | 분석의 방향으로, 최대 2,000자입니다. 예: “제품 샷과 화면 속 텍스트에 집중”. |
반환값: 작업 ID입니다. 분석 결과인 meta, slots, scenes는 작업의 output_data에 있습니다.
이 도구는 항상 가장 정확한 등급인 스마트 분석을 실행하며, 등급이나 결과 전략 매개변수를 받지 않습니다. 아직 llm_model이나 selection_mode를 보내는 클라이언트도 스마트 분석을 받으며, 그 매개변수는 무시됩니다. 다른 등급은 동영상 분석 노드와, MCP로 실행하는 워크플로, REST 경로에서 계속 사용할 수 있습니다.
가격은 길이 구간으로 정해집니다. 길이 구간은 60초, 180초, 360초, 600초 중 동영상이 들어가는 가장 작은 구간입니다. 60초, 180초, 360초 구간에는 각각 3초의 여유가 있으므로, 1:03 이하의 동영상에는 60초 구간 가격이 적용됩니다.
| 분석 | 60초 이하 | 180초 이하 | 360초 이하 | 600초 이하 |
|---|---|---|---|---|
| 스마트 | 455 | 554 | 1,394 | 2,284 |
list_models는 현재 가격을 반환합니다.
video_audit
동영상을 분석 결과와 대조하며 다시 보고, 잘못된 부분을 고칩니다. 모든 수정은 검사를 거쳐 적용되고 보고되며, 고칠 수 없는 부분은 바꾸지 않고 표시만 합니다. AI 검수 노드와 같은 방식으로 작동합니다.
권한: workflows:execute. 크레딧: 길이에 따라 정해지며, 분석 결과를 전달하면 더 저렴합니다.
| 매개변수 | 타입 | 설명 |
|---|---|---|
video_url | string | 필수. 검수할 동영상입니다. |
analysis | object | 이전 video_analysis 또는 video_audit 호출에서 받은 분석 결과로, 그대로 전달합니다. 없으면 도구가 먼저 빠른 분석을 실행하므로 비용이 더 듭니다. |
반환값: 작업 ID입니다. 작업의 output_data에 보고서가 들어 있습니다. 확인한 항목, 바뀐 내용, 해결되지 않고 남은 항목입니다.
| 실행 | 60초 이하 | 180초 이하 | 360초 이하 | 600초 이하 |
|---|---|---|---|---|
analysis 있음 | 237 | 319 | 730 | 1,181 |
analysis 없음 | 436 | 523 | 1,296 | 2,114 |
silence_detect
녹화본의 무음 구간을 오디오만으로 찾습니다. 녹취록도 화면도 쓰지 않습니다. 무음 감지 노드와 같은 방식으로 작동합니다.
권한: workflows:execute. 크레딧: 11크레딧입니다.
| 매개변수 | 타입 | 설명 |
|---|---|---|
audio_url | string | 필수. 오디오 또는 동영상 URL입니다. 어느 쪽이든 오디오 트랙을 읽습니다. |
threshold_db | number | 무음으로 볼 수준(dBFS)으로, -90~0입니다. 기본값은 -35로, 음성에 알맞은 하한입니다. |
min_silence_ms | integer | 보고할 가장 짧은 무음으로, 1~600,000ms입니다. 기본값은 700입니다. |
pad_ms | integer | 각 구간 앞뒤로 남겨 두는 음성으로, 0~60,000ms입니다. 기본값은 120입니다. |
반환값: 작업 ID입니다. 결과는 output_data.json의 { ranges, durationMs }입니다. output_data 전체가 아니라 이 객체를 plan_edit의 silence로 전달하거나, ranges로 편집 목록을 직접 작성하세요.
audio_sync
카메라 파일과 메인 마이크처럼 한 대화를 담은 녹화본 2~6개의 시계가 얼마나 어긋나 있는지, 오디오를 비교해 측정합니다. 오디오 동기화 노드와 같은 방식으로 작동합니다.
권한: workflows:execute. 크레딧: 기준에 맞춰 정렬하는 녹화본 수에 따라, 소스 2개일 때 11크레딧부터 6개일 때 55크레딧까지입니다.
| 매개변수 | 타입 | 설명 |
|---|---|---|
sources | array | 필수. 녹화본 2~6개이며, 각각 고유한 id를 가진 { id, url }입니다. 오디오 또는 동영상 URL입니다. |
reference | string | 모든 오프셋의 기준이 되는 녹화본의 id입니다. 기본값은 첫 번째 녹화본입니다. |
반환값: 작업 ID입니다. 결과는 output_data.json의 { reference, offsets, notes }이며, 각 오프셋에는 sourceId, offsetMs, confidence, driftMsPerHour가 있습니다. 기준 시계의 시간은 소스의 시간에 offsetMs를 더한 값입니다. 낮은 신뢰도와 시계 드리프트는 notes에 보고되며, 보정되지 않습니다.
plan_edit
타이밍이 있는 녹취록을 녹화본의 편집 결정 목록으로 바꿉니다. 녹취록만 읽고 화면은 읽지 않습니다. 편집 계획 노드와 같은 방식으로 작동합니다.
권한: workflows:execute. 크레딧: 3~1,664크레딧이며, 녹화본 길이, 모드, 등급에 따라 다릅니다. Nodaro Cloud 전용.
| 매개변수 | 타입 | 설명 |
|---|---|---|
mode | string | 필수. tighten은 무음, 군말, 잘못 시작한 말을 컷 하나로 제거합니다. clips는 공유할 짧은 클립을 찾아 클립마다 편집 목록을 하나씩 만듭니다. chapters는 제목과 함께 챕터를 표시합니다. trailer는 가장 인상적인 순간으로 20~40초짜리 티저를 하나 만듭니다. |
transcript | object | 필수. transcribe에서 받은 단어 단위 녹취록입니다. |
sources | array | 필수. 녹화본 1~6개로, 각각 url이 있습니다. 선택 사항으로 id, kind(video 또는 audio), role(master-audio, camera, wide 또는 screen), speakers, 마스터 시계 기준의 offset_ms를 넣을 수 있습니다. id는 audio_sync에서 녹화본에 붙인 id로, 최대 200자입니다. offsets를 쓸 때는 필수입니다. |
offsets | object 또는 string | audio_sync 작업의 output_data.json입니다. 도구는 측정된 각 오프셋을 같은 id의 소스에 마스터 시계 기준으로 기록합니다. 소스에 직접 넣은 offset_ms가 우선합니다. |
transcript_source_id | string | 녹취록을 만든 소스의 id로, 알고 있을 때 넣으세요. 그러면 도구가 이 소스가 마스터 시계에 맞는지 확인합니다. |
silence | object | silence_detect의 결과입니다. |
plan_tier | string | economy, standard(기본값), premium 중 하나입니다. |
count | integer | clips용: 클립 수로, 1~50입니다. |
target_duration_sec | integer | clips용: 각 클립의 길이로, 5~180초입니다. |
target_aspect | string | 16:9, 9:16, 1:1, 4:5 중 하나입니다. |
platform, instructions, style_guide | string | 클립을 게시할 곳과 자유 형식 안내입니다. |
마스터는 master-audio 역할을 가진 소스이며, 없으면 첫 번째 소스입니다. 오프셋 때문에 컷의 싱크가 어긋나게 되면, 도구는 요금을 청구하기 전에 호출을 거부합니다.
- 소스에
offset_ms가 없고,audio_sync가 그 소스를 측정하지 않았거나 신뢰도 0.5 미만으로 약하게 맞췄습니다. 그 소스의offset_ms를 설정하세요. - 마스터의
offset_ms가 0이 아닙니다. - 다른 소스는 측정된 오프셋을 쓰지만,
audio_sync가 마스터를 측정하지 않았거나 약하게 맞췄습니다. offsets가audio_sync의 결과가 아니거나, 짝지을id가 없는 소스가 있습니다.- 녹취록을 만든 소스가 마스터 시계에 맞지 않습니다. 마스터로 녹취록을 만들거나, 그 소스에
master-audio역할을 주세요.
반환값: 작업 ID입니다. 플랜은 작업의 output_data에 있으며, 바로 apply_edl에 쓸 수 있습니다.
switch_cameras
멀티캠 편집의 각 컷에 어느 카메라를 보여 줄지, 누가 말하는지에 따라 고릅니다. 카메라 전환 노드와 같은 방식으로 작동합니다. 소리는 절대 바뀌지 않습니다.
권한: workflows:execute. 크레딧: 녹화본 길이나 카메라 수와 관계없이 실행마다 정해진 가격입니다. Nodaro Cloud 전용.
| 매개변수 | 타입 | 설명 |
|---|---|---|
edl | object 또는 string | 필수. plan_edit에서 받은 편집 목록 하나입니다. 클립 세트라면 호출마다 클립 하나의 편집 목록을 넘기세요. |
transcript | object 또는 string | 필수. 화자 라벨이 있는 단어 단위 녹취록으로, 화자 감지를 켠 transcribe에서 받습니다. |
speaker_map | object | 각 화자 라벨을 그 화자의 카메라에 해당하는 EDL 소스 id에 대응시킵니다. ""는 그 화자에게 자기 카메라가 없다는 뜻입니다. |
speaker_names | object | 각 화자 라벨을 표시 이름에 대응시킵니다. |
min_shot_ms, lead_ms, max_shot_ms, wide_every, layout_hints | 카메라 전환 노드의 샷 설정입니다. |
speaker_map에 없는 화자는 speakers 목록에 그 화자를 적은 소스로 가고, 없으면 wide 소스로, 그것도 없으면 화면이 있는 아무 카메라로 갑니다. ""로 설정한 화자는 speakers 목록을 건너뜁니다. 같은 카메라에 새 화자가 나와도 그 화자만의 이름 붙은 세그먼트가 생깁니다.
다음 두 경우에는 요금을 청구하기 전에 호출이 거부됩니다. 첫째는 화자 라벨이 없는 녹취록입니다. 둘째는 클립 세트, 챕터 플랜, 렌더링된 출력의 편집 목록처럼, 마스터 시계 기준의 편집 하나가 아닌 edl입니다.
반환값: 작업 ID입니다. output_data.json은 apply_edl에 쓸, 카메라가 전환된 편집 목록이고, output_data.transcript는 화자 이름이 들어간 녹취록입니다.
apply_edl
편집 결정 목록을 완성된 편집본으로 렌더링합니다. EDL 적용 노드와 같은 방식으로 작동하며, 분당 가격도 그 노드 페이지에 나와 있습니다.
권한: workflows:execute. 크레딧: 렌더링된 출력 1분당 가격이 quality의 요율로 매겨집니다. 동영상이든 오디오든 proxy 미리 보기에는 별도의 더 낮은 요율이 적용됩니다.
| 매개변수 | 타입 | 설명 |
|---|---|---|
edl | object 또는 string | 필수. plan_edit의 플랜, 또는 직접 작성한 목록입니다. segments는 master 시계 기준의 정수 밀리초이며, 각 세그먼트는 EDL의 sources 중 하나를 id로 지정합니다. 동영상 렌더링에는 모든 세그먼트에 동영상 소스가 필요합니다. |
sources | array | EDL의 소스 URL을 같은 순서로 대체하는 URL입니다. |
output | string | video(기본값) 또는 audio입니다. |
quality | string | final(기본값), 또는 빠른 720p 미리 보기용 proxy입니다. 미리 보기는 항상 비공개이며 미리 보기로 표시됩니다. |
clip_key | string | clips 플랜의 클립용입니다. 그 클립의 "<first inMs>-<last outMs>"입니다. 결과에 output_data.clipKey로 돌아오므로, 클립 묶음의 각 렌더를 해당 클립과 짝지을 수 있습니다. |
crossfade_ms | number | 자체 전환이 없는 경계에 넣는 크로스페이드로, 최대 5,000ms입니다. 기본값은 0으로, 하드 컷입니다. |
transcript | object | 결과와 맞도록 컷에 맞춰 다시 매핑할 녹취록입니다. |
렌더링 한 번으로 최대 180분까지 만들 수 있습니다. 형식이 잘못되었거나 너무 긴 목록은 아무것도 실행되기 전에 거부되며, 문제가 된 세그먼트와 어긴 규칙을 알려 줍니다.
반환값: 작업 ID입니다. 렌더링된 파일이 작업의 결과이며, output_data.quality가 미리 보기인지 최종본인지 알려 줍니다.
tighten_episode
팟캐스트나 인터뷰 녹화본을 한 번의 호출로 다듬습니다. 화자 레이블과 함께 녹화본의 녹취록을 만들고, 무음을 찾고, 다듬은 편집본을 계획하고 렌더링합니다. 자막과, 목소리 아래로 볼륨이 낮아지는 배경 음악도 추가할 수 있습니다. 에피소드 다듬기 노드처럼 동작합니다.
권한: workflows:execute. 크레딧: 각 단계의 가격에 실행마다 고정 수수료가 더해집니다.
| 매개변수 | 타입 | 설명 |
|---|---|---|
media_url | string | 필수. 녹화본으로, 최대 3시간의 동영상 또는 오디오 URL입니다. |
output | string | video(기본값) 또는 audio입니다. 오디오 녹화본은 항상 오디오 에피소드가 됩니다. |
framing_aspect | string | 화자 뷰로 동영상 에피소드를 이 형태에 맞게 프레이밍합니다. 화자 뷰는 화면의 화자 위에 자동 박스를 배치합니다. 16:9, 9:16, 1:1 또는 4:5입니다. 프레이밍하지 않으려면 생략하세요. |
framing_layout | string | framing_aspect를 지정했을 때의 레이아웃입니다. auto(기본값), single, side-by-side, stacked, grid 또는 pip입니다. 그 형태에서 그릴 수 없는 레이아웃은 가장 가까운 레이아웃으로 바뀝니다. |
captions | boolean | 동영상 에피소드에 자막을 입힙니다. 기본값은 true입니다. |
caption_style | string | subtitle, word-highlight(기본값), karaoke, tiktok-words, word-pop 또는 bouncy입니다. |
review_before_render | boolean | 검토용 빠른 미리 보기에서 멈춥니다. 기본값은 false입니다. |
plan_tier | string | 편집 품질로, economy, standard(기본값) 또는 premium입니다. |
instructions | string | 플랜에 대한 편집 지시로, 최대 4,000자입니다. |
style_guide | string | 플랜에 대한 스타일 가이드로, 최대 4,000자입니다. |
music_url | string | 배경 음악입니다. 목소리 아래로 볼륨이 낮아지고 에피소드와 함께 끝납니다. |
music_duck_amount | number | 말하는 동안 음악 볼륨을 얼마나 낮출지로, 0~100입니다. 기본값은 75입니다. |
client_request_id | string | 재시도 토큰으로, 문자, 숫자, _ - . :로 된 8~128자입니다. 시간 초과 뒤 다시 시도할 때 재사용하면 실행이 두 번 시작되거나 청구되지 않습니다. |
반환값: 작업 ID입니다. 에피소드는 output_data.videoUrl 또는 output_data.audioUrl에, 편집 내용은 output_data.json에 있습니다. 셀프 호스팅 설치에서는 이 도구에 Nodaro Cloud 연결이 필요하며, 연결이 없으면 바로 거부됩니다.
continue_use_case
tighten_episode 실행을 새 작업으로 이어서 진행합니다.
권한: workflows:execute. 크레딧: 아래 모드에 따라 다릅니다.
| 매개변수 | 타입 | 설명 |
|---|---|---|
job_id | string | 필수. 이전 실행의 작업 ID입니다. |
mode | string | 필수. from-failed 또는 render-final입니다. |
edited_edl | object | render-final에서만 씁니다. 내가 검토한 편집 목록입니다. |
client_request_id | string | tighten_episode와 같은 재시도 토큰입니다. |
from-failed는 실패한 실행에서 끝나지 않은 단계만 다시 실행합니다. 끝난 단계는 유지되며 다시 청구되지 않습니다. 실패한 실행의 수수료가 환불되었으므로 수수료는 다시 청구되며, 전체적으로 한 번만 적용됩니다.render-final은review_before_render로 만든 미리 보기 뒤에 최고 품질 에피소드를 렌더링합니다. 미리 보기의 설정과,edited_edl을 넘겼다면 그것을 사용합니다. 수수료는 청구되지 않습니다.
반환값: 새 작업 ID입니다. 거부되면 이어서 진행 코드와 함께 도구 오류로 반환됩니다. already_running과 continuation_superseded는 따라갈 작업이나 대신 이어서 진행할 작업을 알려 줍니다. continuation_settling은 잠시 뒤에 다시 시도하라는 뜻입니다.
녹취록으로 녹화본 편집
녹취록 만들기
녹화본에 transcribe를 호출하세요. 단어 타이밍은 작업의 output_data.json.words에 있습니다.
무음 찾기
silence_detect를 호출하세요. 이 단계는 선택 사항이지만 tighten에 도움이 됩니다.
컷 계획
녹취록, 무음 구간, 녹화본을 넣어 tighten, clips, chapters, trailer 모드 중 하나로 plan_edit을 호출하세요. 플랜을 확인하고 필요하면 수정하세요.
렌더링
플랜으로 apply_edl을 호출하세요. 먼저 quality: "proxy"로 빠르게 미리 보세요.
팟캐스트나 인터뷰라면 tighten_episode가 이 단계를 한 번의 호출로 실행합니다. podcast-editing 레시피는 어시스턴트에게 같은 단계를 안내합니다. 콘텐츠 레시피를 참조하세요. 카메라 여러 대와 별도의 마이크로 녹화했다면 먼저 audio_sync를 실행하고, 각 소스의 offset_ms를 plan_edit에 전달하세요.
자주 묻는 질문
video_analysis는 무엇을 반환하나요?
동영상을 장면별로 나눈 분석입니다. 각 장면은 최대 8초이며, 프롬프트로 바로 쓸 수 있는 시각 설명, 샷 유형, 카메라 움직임, 오디오 레이어를 담습니다. 반복해서 나오는 인물, 사물, 장소는 다른 캐릭터로 캐스팅할 수 있는 슬롯으로 정리됩니다.
video_analysis로 분석할 수 있는 동영상 길이는 어느 정도인가요?
Nodaro id, 직접 URL, YouTube 링크로 최대 10분까지입니다. YouTube 라이브 스트림은 거부됩니다. 가격은 동영상이 네 가지 길이 구간 중 어디에 속하는지에 따라 다릅니다.
MCP로 팟캐스트 녹화본을 다듬으려면 어떻게 하나요?
녹화본으로 tighten_episode를 호출하세요. 녹취록 생성, 무음 감지, 컷 계획, 렌더링을 작업 하나로 처리합니다. 각 단계를 직접 제어하려면 transcribe, silence_detect, tighten 모드의 plan_edit, apply_edl을 직접 실행하세요.
EDL은 무엇인가요?
편집 결정 목록입니다. 재생 순서대로 나열한 세그먼트 목록이며, 각 세그먼트는 소스 녹화본의 시간 구간을 지정합니다. apply_edl은 이 목록을 완성된 편집본으로 렌더링합니다.
관련 문서
동영상 분석
EDL 적용
에피소드 다듬기
오디오
콘텐츠 레시피
최종 업데이트