{{ $t('Create a video task') }}
{{ $t('Describe your idea and let AI generate a video') }}
- {{ $t('Estimated settlement is for reference. After completion, use the actual cost shown in task details.') }}
- {{ $t('The pre-authorization cap is the maximum amount held at submission to ensure sufficient balance. It is not the final charge.') }}
- {{ $t('After a task completes, the difference is refunded or charged as needed. Failed, cancelled, and expired tasks release the held amount.') }}
- {{ $t('Text-to-video, first-and-last-frame animation, and multi-reference creation cost the same for the same model, resolution, and duration. Video references, audio generation, resolution, duration, and model choice can change the price.') }}
{{ $t('My videos') }}
{{ $t('Your recent generation tasks. Select a video to play it.') }}
{{ $t('No tasks yet. Create one to get started.') }}
{{ $t('My assets') }}
{{ $t('Assets uploaded with the current API key are visible only to you.') }}
{{ $t('Generate an image asset from text. When complete, it appears in My assets and can be used as a video reference image.') }}
image {{ $t('field.') }}
optimize_prompt_options.mode {{ $t('to') }} standard{{ $t(', which usually improves interpretation but may add a few seconds.') }}
{{ $t('If you already have an HTTPS image URL, pre-register it to get asset://. This is useful for reusable portraits, references, and batch tasks; it is neither official identity verification nor a review bypass.') }}
{{ $t('No assets yet. Upload a reference image or video first.') }}
JojoKey Video CN Beta
{{ $t('JojoKey Video CN uses independent APIs, CNY balance, and task ledger. Only test accounts enabled by an administrator can use it.') }}
{{ $t('JojoKey Video CN Beta is for test customers who need domestic Seedance / Jimeng video capabilities. It uses independent CNY balance, CN task ledger, and CN asset registration. It does not mix with the overseas USD ledger or write CN tasks into the overseas Seedance workspace.') }}
{{ $t('The administrator enables JojoKey Video CN Beta for the account and tops up the CNY balance. The user side then shows ¥ balance, CN tasks, and CN asset registration.') }}
{{ $t('Use stable, publicly reachable image and video asset URLs to reduce fetch timeouts.') }}
{{ $t('In Create CN video, fill in the prompt, mode, resolution, ratio, and duration. The system pre-authorizes CNY first.') }}
{{ $t('After submission, the task appears in My tasks. Click a task to view details, play the result, and copy the video or last-frame link. Failed tasks show a customer-safe error message.') }}
{{ $t('CN tasks settle against the CNY ledger. Contact an administrator to top up when balance is insufficient. Overseas USD balance cannot offset CN tasks.') }}
| {{ $t('Asset type') }} | {{ $t('Current recommendation') }} | {{ $t('Notes') }} |
|---|---|---|
| {{ $t('Image asset') }} | {{ $t('For people, products, and scene references. JPG / PNG / WebP are recommended.') }} | {{ $t('Prefer domestic HTTPS URLs. Register faces and complex assets before using them for generation.') }} |
| {{ $t('Video asset') }} | {{ $t('For motion, camera, pose, or style references. The frontend supports MP4 / MOV.') }} | {{ $t('Use short clips from stable, publicly reachable URLs to reduce fetch timeouts.') }} |
| {{ $t('Audio asset') }} | {{ $t('Audio asset registration is not open during Beta.') }} | {{ $t('The API returns video_cn_audio_asset_not_supported. Use image or video assets for now.') }} |
{{ $t('Review the estimated amount before submission. After completion, use the actual cost shown in task details; failed tasks are handled according to the service rules.') }}
- {{ $t('generate_audio=false currently cannot guarantee forced silence. If no music is required, state in the prompt: no background music, keep only ambient sound.') }}
- {{ $t('Professional super-resolution is not available during Beta.') }}
- {{ $t('asset_type=3 audio assets are not open yet.') }}
- {{ $t('duration=-1 smart duration can be sent; the actual output duration may vary.') }}
- {{ $t('Use stable, publicly reachable asset URLs to reduce fetch timeouts.') }}
{{ $t('Start with a small CNY balance for test users and verify the asset registration -> create video -> my tasks -> reconciliation loop. Increase concurrency and duration only after asset sources are stable.') }}
{{ $t('This page only describes the domestic JojoKey Video CN Beta APIs. Overseas Seedance still uses overseas APIs such as /v1/videos and /v1/uploads. The two systems do not share balances, assets, or tasks.') }}
{{ cnApiHost() }}. {{ $t('All requests use the Authorization header.') }}
| {{ $t('Endpoint') }} | {{ $t('Purpose') }} |
|---|---|
| GET /v1/video-cn/me | {{ $t('View enablement status, CNY balance, and held amount.') }} |
| POST /v1/video-cn/videos | {{ $t('Submit a CN video task.') }} |
| GET /v1/video-cn/videos | {{ $t('View the current account CN task list.') }} |
| GET /v1/video-cn/videos/{id} | {{ $t('Query one task status and trigger refresh.') }} |
| POST /v1/video-cn/assets | {{ $t('Upload a local asset and pre-register it as a CN asset://.') }} |
| POST /v1/video-cn/assets/from-url | {{ $t('Register a public asset URL into the CN asset ledger.') }} |
| GET /v1/video-cn/assets | {{ $t('View the current account CN asset list.') }} |
| GET /v1/video-cn/assets/{asset_id} | {{ $t('Query the latest status of one CN asset.') }} |
{{ $t('Use the CN Relay API Key shown on the account page. The request header format is:') }}
{{ $t('Register an asset URL or upload a local asset first, then put the returned asset address into content[] as a reference. CN asset sync status should reach sync_status=2 before generation.') }}
{{ $t('First/last-frame animation uses first_frame and last_frame, suitable for specifying the starting and ending frames.') }}
{{ $t('Reference video uses reference_video and is suitable for referencing motion rhythm, camera movement, or pose changes. Image references still use reference_image.') }}
| {{ $t('Parameter') }} | {{ $t('Description') }} |
|---|---|
| prompt | {{ $t('Prompt shorthand. If content[] is provided, prompt can be omitted.') }} |
| content[] | {{ $t('Full content array, supporting references such as text, image_url, and video_url.') }} |
| images / videos | {{ $t('Shorthand arrays for lightweight integration. Use content[] when exact roles are required.') }} |
| audios | {{ $t('Reserved field. Audio references are not available during Beta.') }} |
| mode | {{ $t('fast, pro, or mini.') }} |
| resolution | {{ $t('480p, 720p, 1080p, or 4k. Higher resolution usually increases the estimate.') }} |
| ratio | {{ $t('Common values are 9:16, 16:9, 1:1, and 3:4.') }} |
| duration | {{ $t('Usually 4-15 seconds. -1 means smart duration.') }} |
| generate_audio | {{ $t('Whether to attempt audio generation. false cannot guarantee forced silence. If no music is required, state that in the prompt.') }} |
| watermark | {{ $t('Whether to request a watermark. Availability depends on the selected product capability.') }} |
| return_last_frame | {{ $t('Requests a last-frame image URL. Task details show last_frame_url when available.') }} |
| bitrate_mode | {{ $t('Can be normal or high. High bitrate is better for tasks that need to preserve details.') }} |
| seed | {{ $t('Seed for making similar requests easier to reproduce. If omitted, the service chooses a value.') }} |
| super_resolution_config | {{ $t('Reserved super-resolution field. Professional super-resolution is not available during Beta.') }} |
| ips | {{ $t('Reserved copyright allowlist ID field. Current handling is offline filing, not frontend self-service validation.') }} |
| {{ $t('Field') }} | {{ $t('Description') }} |
|---|---|
| asset_type=1 | {{ $t('Image asset. Supports JPG / PNG / WebP and is used for first_frame, last_frame, and reference_image.') }} |
| asset_type=2 | {{ $t('Video asset. Supports MP4 / MOV and is used for reference_video. Short clips and domestic URLs are recommended.') }} |
| asset_type=3 | {{ $t('Audio assets are not open yet. Requests return video_cn_audio_asset_not_supported.') }} |
| asset_url | {{ $t('Returned asset:// URI. Put it into content[] for video generation; do not write it into the prompt body.') }} |
| sync_status=2 | {{ $t('Treat as synced and usable. If it is not 2, query asset details first or retry later.') }} |
| source_url | {{ $t('Source asset URL. Use domestic object storage or a domestic CDN to avoid overseas URL fetch timeouts.') }} |
{{ $t('Task statuses include queued, running, succeeded, and failed. Poll GET /v1/video-cn/videos/{id} every 5-8 seconds; do not send high-frequency requests every second.') }}
| {{ $t('Field') }} | {{ $t('Description') }} |
|---|---|
| held_cny | {{ $t('CNY amount held at submission to ensure sufficient balance. It is not necessarily the final charge.') }} |
| estimated_cost_cny | {{ $t('Customer-side price estimated from current parameters, for reference before and after submission.') }} |
| actual_cost_cny | {{ $t('Customer-side actual settlement after task completion. Failed tasks are usually 0.') }} |
- {{ $t('professional super-resolution is not available during Beta.') }}
- {{ $t('asset_type=3 audio assets: documented as reserved, but self-service registration is not open yet.') }}
- {{ $t('generate_audio=false can be sent but cannot guarantee forced silence. To reduce music risk, state no background music in the prompt.') }}
- {{ $t('duration=-1 smart duration can be sent; the actual output duration may vary.') }}
- {{ $t('resolution_limit custom short-side super-resolution and ips copyright allowlist ID are not exposed as regular customer self-service parameters.') }}
| {{ $t('Error code') }} | {{ $t('Meaning and handling') }} |
|---|---|
| video_cn_beta_not_enabled | {{ $t('The current account is not enabled for CN Beta. Contact an administrator to enable it.') }} |
| insufficient_video_cn_balance | {{ $t('CNY balance is insufficient. Top up and retry.') }} |
| video_cn_professional_super_resolution_disabled | {{ $t('professional super-resolution is not open yet.') }} |
| video_cn_audio_asset_not_supported | {{ $t('Audio asset registration is not open yet. Use image or video assets first.') }} |
| invalid_video_cn_request | {{ $t('The request body is invalid, usually due to content[] structure, role, or parameter range.') }} |
| invalid_video_cn_asset_url | {{ $t('The asset URL is not an http/https public URL.') }} |
| invalid_video_cn_upload_type | {{ $t('The local upload file type is not supported. Only image and video assets are open currently.') }} |
| video_cn_asset_type_mismatch | {{ $t('The uploaded file type does not match asset_type.') }} |
| task_failed | {{ $t('The task failed. Check the input assets and prompt, then retry or contact support.') }} |
{{ $t('Under the same account, the CN line uses independent CNY balance and CN task ledger. The frontend currently shows the CN entry and CN Relay API Key. If fully separate keys are needed later, they can be issued separately in the admin backend.') }}
{{ $t('Guide') }}
{{ $t('Assets are managed by the platform. Video generation supports hosted relay and native_direct access.') }}
{{ $t('The shortest path: set your Relay API key, submit a task, poll its status, then open the official link within 23 hours after success. Image-to-video can use a direct first-frame upload or an asset:// returned from image pre-registration.') }}
{{ $t('Put the sk- key provided by the platform in the Authorization header. The web app does not ask you for an Ark API key.') }}
{{ $t('For text-to-video, send a prompt. For image-to-video, upload a first frame directly or pre-register an image and put its asset:// in content[].') }}
{{ $t('The task flow is submit → poll → download. Download within 23 hours after success; expired results show “This content has expired”.') }}
{{ $t('Use the Fast or Mini product for everyday testing. Use the Pro product when quality, portrait consistency, or multimodal references matter.') }}
| {{ $t('Model') }} | {{ $t('Best for') }} | {{ $t('Capabilities') }} |
|---|---|---|
| Seedance 2.0 Pro | {{ $t('Quality first, portrait and product consistency, and multi-reference assets') }} | {{ $t('Text-to-video, image-to-video, video/audio references, and generated synchronized audio') }} |
| Seedance 2.0 Fast | {{ $t('Batch testing, speed first, and cost-sensitive work') }} | {{ $t('Text-to-video, image-to-video, multi-reference, and generated synchronized audio') }} |
| Seedance 2.0 Mini | {{ $t('binbin-sd-mini, lightweight, fast, and low-cost 480p/720p testing') }} | {{ $t('Text-to-video, image-to-video, multi-reference, and generated synchronized audio; 1080p is not supported') }} |
| Seedance 1.5 Pro | {{ $t('Seedance 1.5 audiovisual model') }} | {{ $t('Text-to-video, image-to-video, and generated synchronized audio') }} |
| Seedance 1.0 / Lite | {{ $t('Lightweight tasks or a specified legacy model') }} | {{ $t('Text-to-video or image-to-video depending on the model; no generated synchronized audio') }} |
{{ $t('After the sexy reasoning API is enabled, you can keep using the standard /v1/videos request shape. Set enterprise_interface=sexy_reasoning in metadata to explicitly submit one to eight reference images through the dedicated generation chain. Accounts with auto-routing enabled may still route single-image tasks automatically. The task is returned as a normal video task, and status, result links, and settlement are queried through the standard flow.') }}
{{ $t('Supports HTTPS image URLs or registered asset:// assets. The recommended image role is reference_image.') }}
{{ $t('The platform combines the reference image and prompt to improve visual quality, identity consistency, and motion expression, making the final video better suited for demanding commercial or entertainment scenarios.') }}
{{ $t('After creation, keep querying the same vid_ task. On success you receive the official result link; on failure, check the error reason in task details.') }}
{{ $t('Use the lower-body reasoning API when the video direction clearly needs lower-body visual expression. Keep enterprise_interface=lower_body_reasoning in metadata. The standard submission accepts exactly one face image and lets you bind it to Person 1 or Person 2. The dedicated studio accepts one or two identity groups and does not support reference videos.') }}
{{ $t('Use the celebrity reasoning API when the uploaded image clearly contains a public figure or celebrity. This API requires exactly one face image reference. It first generates a black-and-white sketch reference and a realistic text-to-image result, then registers them as assets and submits the video. The task is still returned as a standard video task. Customer systems can also add enterprise_interface=celebrity_reasoning in metadata for call marking.') }}
{{ $t('Submit, poll, and download: after submission you receive vid_xxx; check about every 5 to 8 seconds. On success, open the official video_url; downloads remain available for 23 hours.') }}
{{ $t('With hosted access, submit through the JojoKey API and query the standard task endpoint for status and results. Preview and download use the video_url returned in task details.') }}
{{ $t('Upload or register assets') }}
{{ $t('Use /v1/uploads for local files and /v1/uploads/from-url for public images or videos. A first frame without a clear face can be uploaded directly; for a clear face or portrait, use image pre-registration. Returned assets belong only to the account for the current API key.') }}
{{ guideUploadCurl }}
{{ $t('Pre-register an image as asset://') }}
{{ $t('For a reusable portrait or reference image, call /v1/image-audits first and reuse the returned asset://. This is image pre-registration only: it is not official real-person KYC, does not bypass review, and does not guarantee upstream approval.') }}
{{ guideImageAuditCurl }}
{{ $t('Automatically register an asset during generation') }}
{{ $t('For a one-off first-frame task, send prompt, images, and metadata.audit_image=true to /v1/videos. This is a service-side switch and is not forwarded to overseas BytePlus ARK. The image is registered as asset:// before it is sent upstream. One top-level image becomes first_frame; multiple images become reference_image entries. For complex multi-reference work, use the full content[] array with one image_url.url per image.') }}
{{ guideAuditImageVideoCurl }}
{{ $t('Generate with the native BytePlus structure') }}
{{ $t('Generation uses fields such as model, content, resolution, ratio, and duration. The web app maps assets to roles: first-and-last-frame animation uses first_frame / last_frame, while multi-reference creation uses reference_image. Each image_url.url accepts only one image URL; do not join multiple references with commas.') }}
{{ guideNativeCurl }}
{{ $t('Native direct configuration') }}
{{ $t('A native_direct account generates video with an overseas BytePlus ARK API key and endpoint. A hybrid account can also call this service through /v1/videos with a Relay API Key. Asset upload and image pre-registration still use this service.') }}
{{ guideDirectTaskCurl }}
{{ $t('All examples below use the native /v1/videos request-body shape. Customers can copy the JSON directly into a command line, SDK, or their own backend.') }}
{{ $t(item.title) }}
{{ $t(item.note) }}
{{ item.code }}
{{ $t('Creators only use the Relay API Key. Hosted generation uses the platform fallback key or the Ark key bound in the admin backend; asset registration only uses AK/SK stored on the server.') }}
{{ $t('The asset list is queried by the current API key. asset:// IDs uploaded or generated by another account cannot be used by the current account; the server returns asset_not_owned.') }}
{{ $t('API integration documentation') }}
{{ $t('Complete endpoint reference, parameters, error codes, and Python / JavaScript / Shell examples') }}
{{ $t('Sexy reasoning API') }}
{{ $t('Authorized accounts can create video tasks through a dedicated quality flow after uploading a reference image.') }}
{{ $t('Upload a local image, paste an HTTPS image URL, or choose an image from My assets. This page is for internal integration testing; customer production systems should use the standard /v1/videos API.') }}
{{ $t('Only redacted request and response bodies are shown here. Authorization headers and full keys are not displayed. You can copy this area for engineering diagnosis.') }}
{{ referenceWorkflowRequestLogText }}
{{ referenceWorkflowResponseLogText }}
{{ $t('Lower body image test bench') }}
{{ $t('Internal authorized test: enter a visual description, generate one realistic portrait image, and save it to the current account asset library.') }}
{{ lowerBodyImageLabRequestText }}
{{ $t('Celebrity interface test bench') }}
{{ $t('Internal authorized test: upload a person reference image and generate a short video that preserves identity recognition and camera expressiveness.') }}
{{ $t('Account settings') }}
{{ $t('Upload a reference image or choose one from the asset library. The platform completes dedicated processing and submits the video task automatically. Authorized accounts only.') }}
{{ $t('Enter a visual description and choose an aspect ratio to test realistic portrait image generation. This entry is shown only to authorized test accounts.') }}
{{ $t('Upload one person reference image and enter a creative description to test celebrity video generation with identity preservation.') }}
{{ $t('For video tasks that explicitly need lower-body visual expression. The API shape follows standard video tasks, and authorized accounts can choose dedicated submission on the Create video page.') }}
{{ $t('For authorized video tasks containing a public figure or celebrity reference image. Exactly one clear face reference image is required; the platform automatically prepares the task, and results are viewed under My videos.') }}
{{ $t('Used to sign in to this platform, upload assets, and make hosted relay calls.') }}
{{ $t('Under the same account, the domestic line uses an independent CNY balance and domestic task ledger. The domestic host and domestic Relay API Key are only used for /v1/video-cn/*.') }}