--- title: Hybrid Command Runner emoji: πŸš€ colorFrom: indigo colorTo: blue sdk: docker pinned: false --- # API для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π­Ρ‚ΠΎ API позволяСт ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ°, Π½ΠΎ основной β€” это **ΡƒΠΌΠ½Ρ‹ΠΉ стриминг**. --- ## Π Π΅ΠΆΠΈΠΌ 1: "Π£ΠΌΠ½Ρ‹ΠΉ" стриминг (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ) Π­Ρ‚ΠΎΡ‚ эндпоинт β€” ваш основной инструмСнт. Он автоматичСски опрСдСляСт Π»ΡƒΡ‡ΡˆΠΈΠΉ способ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. **Π­Π½Π΄ΠΏΠΎΠΈΠ½Ρ‚:** `POST /api/run/stream` ### ИспользованиС с FFmpeg (НадСТный Ρ€Π΅ΠΆΠΈΠΌ) Если Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ `ffmpeg`, API автоматичСски сохранит ваш Ρ„Π°ΠΉΠ» Π½Π° сСрвСрС, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Π°ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. **Запрос Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π»ΠΈΡ‚ΡŒΡΡ Ρ€ΠΎΠ²Π½ΠΎ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, сколько ΠΈΠ΄Π΅Ρ‚ конвСртация.** **ΠŸΡ€ΠΈΠΌΠ΅Ρ€ `curl` для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎ:** ```bash # Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· /api/run/stream curl -X POST 'https:///api/run/stream' \ -F 'command=ffmpeg' \ -F 'args=["-i", "{INPUT_FILE}", "-vcodec", "libx264", "-acodec", "aac", "{OUTPUT_FILE}"]' \ -F 'file=@"/path/to/your/video.mov"' \ --output "converted_video.mp4" ИспользованиС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ (Π Π΅ΠΆΠΈΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ стриминга) Для ΠΊΠΎΠΌΠ°Π½Π΄ Π²Ρ€ΠΎΠ΄Π΅ magick (ImageMagick) API Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, обрабатывая Π΄Π°Π½Π½Ρ‹Π΅ "Π½Π° Π»Π΅Ρ‚Ρƒ". ΠŸΡ€ΠΈΠΌΠ΅Ρ€ curl для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния: curl -X POST 'https:///api/run/stream' \ -F 'file=@/path/to/your/image.jpg' \ -F 'command=magick' \ -F 'args=["-", "-resize", "50%", "jpg:-"]' \ --output "resized_image.jpg" Π Π΅ΠΆΠΈΠΌ 2: АсинхронныС Π·Π°Π΄Π°Ρ‡ΠΈ (для UI ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ссли Π²Ρ‹ создаСтС UI ΠΈ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ запрос "висСл", ΠΈΠ»ΠΈ Ссли конвСртация Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, часы). Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ (POST /api/task/create) МгновСнно ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ID Π·Π°Π΄Π°Ρ‡ΠΈ. Π¨Π°Π³ 2: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса (GET /api/task/status/:taskId) ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ провСряСтС, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°. Π¨Π°Π³ 3: Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ (GET /api/download/:fileId) Когда Π·Π°Π΄Π°Ρ‡Π° Π³ΠΎΡ‚ΠΎΠ²Π°, скачиваСтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.