Utilities

Utilities

copy

{
  "tags": [
    "itest",
    "utils",
    "copy"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "storage:get",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/IN/",
        "files": [
          "tos_5s_audio_44100Hz_64k_HE_2chan_eng.mp4",
          "tos_5s_audio_44100Hz_64k_HE_2chan_ita.mp4"
        ]
      }
    },
    {
      "tool": "utils:copy",
      "parameters": {
        "pattern": "2chan_(?P<lang>\\w+).mp4$",
        "to": "out/audio-{lang}.mp4"
      }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-copy_{job_id}",
        "files": [
          "out/*.mp4"
        ]
      }
    }
  ]
}

env

{
  "tags": [
    "itest",
    "utils",
    "env"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "utils:env",
      "parameters": {
        "input": "@com.castlabs.vtk.itest/IN/",
        "output": "@com.castlabs.vtk.itest/OUT/utils-env_"
      }
    },
    {
      "tool": "storage:get",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}{input}",
        "files": [
          "tos_10s_deu.dfxp"
        ]
      }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}{output}{job_id}",
        "files": [
          "*.dfxp"
        ]
      }
    }
  ]
}

envjq

{
  "tags": [
    "itest",
    "utils",
    "envjq"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "storage:get",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/IN/",
        "files": [
          "utils-envjq-itest.json"
        ]
      }
    },
    {
      "tool": "utils:env_jq",
      "parameters": {
        "input_json": "utils-envjq-itest.json",
        "jq": ".token",
        "var_name": "MY_AUTH_TOKEN"
      }
    },
    {
      "tool": "utils:echo",
      "parameters": {
        "text": "token: {MY_AUTH_TOKEN}"
      }
    }
  ]
}

file_checksum

{
  "tags": [
    "itest",
    "utils",
    "file_checksum"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "storage:get",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/IN",
        "files": [
          "tos-per.srt"
        ]
      }
    },
    {
      "tool": "utils:file_checksum",
      "parameters": {
        "algorithm": "md5",
        "input_file": "tos-per.srt",
        "env_name": "TEST_MD5SUM",
        "output_file": "tos-per.srt.md5"
      }
    },
    {
      "tool": "utils:file_checksum",
      "parameters": {
        "algorithm": "sha1",
        "input_file": "tos-per.srt",
        "env_name": "TEST_SHA1SUM",
        "output_file": "tos-per.srt.sha1"
      }
    },
    {
      "tool": "utils:file_checksum",
      "parameters": {
        "algorithm": "sha256",
        "input_file": "tos-per.srt",
        "env_name": "TEST_SHA256SUM",
        "output_file": "tos-per.srt.sha256"
      }
    },
    {
      "tool": "utils:file_checksum",
      "parameters": {
        "algorithm": "sha512",
        "input_file": "tos-per.srt",
        "env_name": "TEST_SHA512SUM",
        "output_file": "tos-per.srt.sha512"
      }
    },
    {
      "tool": "utils:echo",
      "parameters": {
        "text": "MD5: {TEST_MD5SUM}\n"
      }
    },
    {
      "tool": "utils:echo",
      "parameters": {
        "text": "SHA1: {TEST_SHA1SUM}\n"
      }
    },
    {
      "tool": "utils:echo",
      "parameters": {
        "text": "SHA256: {TEST_SHA256SUM}\n"
      }
    },
    {
      "tool": "utils:echo",
      "parameters": {
        "text": "SHA512: {TEST_SHA512SUM}\n"
      }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-file_checksum_{job_id}",
        "files": [
          "tos-per.srt.md5",
          "tos-per.srt.sha1",
          "tos-per.srt.sha256",
          "tos-per.srt.sha512"
        ]
      }
    }
  ]
}

http_request

{
  "tags": [
    "itest",
    "utils",
    "http_request"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "utils:http_request",
      "parameters": {
        "url": "https://vtk.castlabs.com",
        "method": "GET",
        "params": {"id": "1"},
        "ignore_errors": true,
        "save_as": "response.html"
      }
    }
  ]
}

md5sum

{
  "tags": [
    "itest",
    "utils",
    "md5sum"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "utils:md5sum",
      "parameters": {
        "input_string": "stringtohash",
        "env_name": "key-id",
        "uuid_format": true
      }
    },
   {
      "tool": "utils:echo",
      "parameters" : {
        "text": "key-id: {key-id}\n"
      }
    }
  ]
}

mkdir

{
  "tags": [
    "itest",
    "utils",
    "mkdir"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "utils:mkdir",
      "parameters": {
        "dir": "subtitles"
      }
    },
    {
      "parameters": {
        "hexvalue": "aabbccddeeff0011223344556677889900",
        "outputfile": "subtitles/file"
      },
      "tool": "utils:write_bytes"
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-mkdir_{job_id}",
        "files": [
          "subtitles/file"
        ]
      }
    }
  ]
}

mkfifo

{
  "tags": [
    "itest",
    "utils",
    "mkfifo"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "storage:get",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/IN",
        "files": [
          "tos_5s_video_1920x1080_2mbps.mp4"
        ]
      }
    },
    {
      "tool": "utils:mkfifo",
      "parameters": {
        "pipe_name": "PIPE"
      }
    },
    {
      "tool": "ffmpeg:cmd",
      "parameters": {
        "arguments": [
          "-y",
          "-i",
          "tos_5s_video_1920x1080_2mbps.mp4",
          "-c:v",
          "copy",
          "-f",
          "h264",
          "PIPE"
        ]
      }
    },
    {
      "tool": "ffmpeg:cmd|p",
      "parameters": {
        "arguments": [
          "-y",
          "-f",
          "h264",
          "-i",
          "PIPE",
          "-c:v",
          "copy",
          "piped.mp4"
        ]
      }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils_mkfifo_{job_id}",
        "files": [
          "piped.mp4"
        ]
      }
    }
  ]
}

modjson

{
  "tags": [
    "itest",
    "utils",
    "modjson"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "utils:modjson",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-modjson_{job_id}/test.json",
        "jq": "del(.)"
      }
    },
    {
      "tool": "utils:modjson",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-modjson_{job_id}/test.json",
        "jq": ".assetId = \"DRMtoday_Asset_ID\" | .jobId = \"{job_id}\" | .status = [\"Started\"]"
      }
    }
  ]
}

notify_email

{
  "tags": [
    "itest",
    "utils",
    "notify_email"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "utils:notify_email",
      "parameters": {
        "recipients": ["dev.server.vtk+itest@castlabs.com", "dev.server.vtk+itest2@castlabs.com"],
        "infojson": {
          "key1": "value1",
          "key2": "value2"
        }
      }
    }
  ]
}

rename

{
  "tags": [
    "itest",
    "utils",
    "rename"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "tool": "storage:get",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/IN/",
        "files": [
          "tos_5s_audio_44100Hz_64k_HE_2chan_eng.mp4",
          "tos_5s_audio_44100Hz_64k_HE_2chan_ita.mp4"
        ]
      }
    },
    {
      "tool": "utils:rename",
      "parameters": {
        "pattern": "2chan_(?P<lang>\\w+).mp4$",
        "to": "out/audio-{lang}.mp4"
      }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-rename_{job_id}",
        "files": [
          "out/*.mp4"
        ]
      }
    }
  ]
}

tar

{
  "tags": [
    "itest",
    "utils",
    "tar"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "parameters": {
        "hexvalue": "aabbccddeeff0011223344556677889900",
        "outputfile": "subtitles/file"
      },
      "tool": "utils:write_bytes"
    },
    {
      "tool": "utils:tar",
      "parameters": {
        "archive": "test.tar.bz2",
        "compress": true,
        "bzip2": true,
        "verbose": true,
        "files": "subtitles/*"
      }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-tar_{job_id}",
        "files": [
          "test.tar.bz2"
        ]
      }
    }
  ]
}

write_bytes

{
  "tags": [
    "itest",
    "utils",
    "write_bytes"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
     {
       "tool": "utils:write_bytes",
       "parameters": {
            "hexvalue": "aabbccddeeff0011223344556677889900",
            "outputfile": "subtitles/file"
       }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-write_bytes_{job_id}",
        "files": [
          "subtitles/file"
        ]
      }
    }
  ]
}

write_text

{
  "tags": [
    "itest",
    "utils",
    "write_text"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
     {
       "tool": "utils:write_text",
       "parameters": {
            "base64value": "YWFiYmNjZGRlZWZmMDAxMTIyMzM0NDU1NjY3Nzg4OTkwMA==",
            "outputfile": "subtitles/file-base64.txt"
       }
    },
     {
       "tool": "utils:write_text",
       "parameters": {
            "textvalue": "00:00:00 -> 00:00:10\nHello {job_id}!",
            "outputfile": "subtitles/file-text.txt"
       }
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-write_text_{job_id}",
        "files": [
          "subtitles/file-base64.txt",
          "subtitles/file-text.txt"
        ]
      }
    }
  ]
}

zip

{
  "tags": [
    "itest",
    "utils",
    "zip"
  ],
  "region": "aws:eu-west-1",
  "tasks": [
    {
      "parameters": {
        "hexvalue": "aabbccddeeff0011223344556677889900",
        "outputfile": "subtitles/file"
      },
      "tool": "utils:write_bytes"
    },
    {
      "parameters": {
        "input_patterns": [
          "subtitles/*"
        ],
        "outputfile": "subtitles.zip"
      },
      "tool": "utils:zip"
    },
    {
      "tool": "storage:put",
      "parameters": {
        "location": "s3://{com-castlabs-vtk-itest-access-keys}@com.castlabs.vtk.itest/OUT/utils-zip_{job_id}",
        "files": [
          "subtitles.zip"
        ]
      }
    }
  ]
}
Previous topic: Packaging