ASMR Crushing Frozen Fruits App API

Use asmr-crushing-frozen-fruits to create an 8-second text-to-video ASMR scene of frozen fruit being crushed in a glass tumbler.

App id

asmr-crushing-frozen-fruits

Use this id with /api/v1/apps/{app} and /api/v1/apps/{app}/generations.

Inputs

Parameter Type Required Default Values Description
fruit string Yes None Any text Fruit to place into the preset ASMR prompt.
video_ratio string No 16:9 16:9, 9:16 Output aspect ratio.
video_resolution string No 720p 720p, 1080p, 4k Output resolution.

This app has a fixed 8-second duration. The app builds the final prompt from the configured template, so you do not send a prompt field.

Billing

The current configuration charges by generated video duration and resolution:

Resolution Cost
720p 40 credits
1080p 40 credits
4k 120 credits

The cost is based on the configured 8-second duration.

Get app parameters

curl https://img2vid.net/api/v1/apps/asmr-crushing-frozen-fruits \
  -H "Authorization: Bearer $BUBLE_API_KEY"

Example response:

{
  "data": {
    "id": "asmr-crushing-frozen-fruits",
    "input_parameters": [
      {
        "name": "fruit",
        "type": "string"
      },
      {
        "name": "video_ratio",
        "type": "string",
        "values": ["16:9", "9:16"]
      },
      {
        "name": "video_resolution",
        "type": "string",
        "values": ["720p", "1080p", "4k"]
      }
    ]
  }
}

Create a generation

curl https://img2vid.net/api/v1/apps/asmr-crushing-frozen-fruits/generations \
  -H "Authorization: Bearer $BUBLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fruit": "Strawberries",
    "video_ratio": "16:9",
    "video_resolution": "720p"
  }'

Example response:

{
  "data": {
    "id": "task_id",
    "status": "pending"
  }
}

Query the result

curl https://img2vid.net/api/v1/apps/asmr-crushing-frozen-fruits/generations/task_id \
  -H "Authorization: Bearer $BUBLE_API_KEY"

Success response shape:

{
  "data": {
    "id": "task_id",
    "status": "success",
    "result": {
      "videos": [
        {
          "url": "https://..."
        }
      ]
    }
  }
}

SDK examples

The examples below use this page's app id and public input parameters. They assume you have already initialized the SDK client as shown in the Quickstart and imported the required language SDK types. Send only parameter names returned by /api/v1/apps/{app}; media parameters must receive URLs.

JavaScript / TypeScript

const task = await buble.apps.generations.create(
  'asmr-crushing-frozen-fruits',
  {
    fruit: 'Strawberries',
    video_ratio: '16:9',
    video_resolution: '720p',
  }
);

const result = await buble.apps.generations.wait(
  'asmr-crushing-frozen-fruits',
  task.data.id
);
console.log(result.data.result?.videos?.[0]?.url);

Python

task = client.apps.generations.create(
    "asmr-crushing-frozen-fruits",
    fruit="Strawberries",
    video_ratio="16:9",
    video_resolution="720p",
)

result = client.apps.generations.wait("asmr-crushing-frozen-fruits", task["data"]["id"])
print(result["data"]["result"]["videos"][0]["url"])

Go

task, err := client.Apps.Generations.Create(ctx, "asmr-crushing-frozen-fruits", map[string]any{
	"fruit": "Strawberries",
	"video_ratio": "16:9",
	"video_resolution": "720p",
})
if err != nil {
	return err
}

result, err := client.Apps.Generations.Wait(ctx, "asmr-crushing-frozen-fruits", task.Data.ID)

Rust

let mut body = serde_json::Map::new();
body.insert("fruit".to_string(), serde_json::json!("Strawberries"));
body.insert("video_ratio".to_string(), serde_json::json!("16:9"));
body.insert("video_resolution".to_string(), serde_json::json!("720p"));

let task = client.apps().generations().create("asmr-crushing-frozen-fruits", body).await?;
let result = client
    .apps()
    .generations()
    .wait("asmr-crushing-frozen-fruits", &task.data.id, WaitOptions::default())
    .await?;

Swift

let task = try await client.apps.generations.create(
    "asmr-crushing-frozen-fruits",
    body: [
        "fruit": "Strawberries",
        "video_ratio": "16:9",
        "video_resolution": "720p"
    ]
)

let result = try await client.apps.generations.wait("asmr-crushing-frozen-fruits", task.data.id)

Dart / Flutter

final task = await client.apps.generations.create('asmr-crushing-frozen-fruits', {
  'fruit': 'Strawberries',
  'video_ratio': '16:9',
  'video_resolution': '720p',
});

final result = await client.apps.generations.wait('asmr-crushing-frozen-fruits', task.data.id);

Elixir

{:ok, task} =
  Buble.Apps.Generations.create(client, "asmr-crushing-frozen-fruits", %{
    fruit: "Strawberries",
    video_ratio: "16:9",
    video_resolution: "720p"
  })

{:ok, result} = Buble.Apps.Generations.wait(client, "asmr-crushing-frozen-fruits", task["data"]["id"])

Java

Envelope<AppGenerationTask> task = client.apps().generations().create(
        "asmr-crushing-frozen-fruits",
        Map.of(
                "fruit", "Strawberries",
                "video_ratio", "16:9",
                "video_resolution", "720p"));

Envelope<AppGenerationTask> result = client.apps().generations().wait(
        "asmr-crushing-frozen-fruits",
        task.getData().getId());

.NET

var task = await client.Apps.Generations.CreateAsync(
    "asmr-crushing-frozen-fruits",
    new Dictionary<string, object?>
    {
        ["fruit"] = "Strawberries",
        ["video_ratio"] = "16:9",
        ["video_resolution"] = "720p"
    });

var result = await client.Apps.Generations.WaitAsync(
    "asmr-crushing-frozen-fruits",
    task!.Data!.Id!);

PHP

$task = $client->apps()->generations()->create('asmr-crushing-frozen-fruits', [
    'fruit' => 'Strawberries',
    'video_ratio' => '16:9',
    'video_resolution' => '720p',
]);

$result = $client->apps()->generations()->wait('asmr-crushing-frozen-fruits', $task['data']['id']);

Ruby

task = client.apps.generations.create("asmr-crushing-frozen-fruits", {
  "fruit" => "Strawberries",
  "video_ratio" => "16:9",
  "video_resolution" => "720p"
})

result = client.apps.generations.wait("asmr-crushing-frozen-fruits", task.dig("data", "id"))
puts result.dig("data", "result", "videos", 0, "url")