Tcl
Tcl
VoiceBase -- Upload a media file for transcription and analysis
See more VoiceBase Examples
This example demonstrates how to upload a media file for transcription and analysis. It duplicates the following curl command:
curl https://apis.voicebase.com/v2-beta/media \
--form media=@msg_123_abc.wav \
--header "Authorization: Bearer ${TOKEN}"
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes the Chilkat HTTP API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# Insert your Bearer token here:
set accessToken "VOICEBASE_TOKEN"
set http [new_CkHttp]
set req [new_CkHttpRequest]
CkHttpRequest_put_HttpVerb $req "POST"
CkHttpRequest_put_Path $req "/v2-beta/media"
CkHttpRequest_put_ContentType $req "multipart/form-data"
# Add the access (bearer) token to the request, which is a header
# having the following format:
# Authorization: Bearer <userAccessToken>
set sbAuth [new_CkStringBuilder]
CkStringBuilder_Append $sbAuth "Bearer "
CkStringBuilder_Append $sbAuth $accessToken
CkHttpRequest_AddHeader $req "Authorization" [CkStringBuilder_getAsString $sbAuth]
set success [CkHttpRequest_AddFileForUpload2 $req "media" "qa_data/wav/msg_123_abc.wav" "audio/x-wav"]
if {$success == 0} then {
puts [CkHttpRequest_lastErrorText $req]
delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkStringBuilder $sbAuth
exit
}
set resp [new_CkHttpResponse]
set success [CkHttp_HttpSReq $http "apis.voicebase.com" 443 1 $req $resp]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkStringBuilder $sbAuth
delete_CkHttpResponse $resp
exit
}
# Examine the response status code and body.
puts "Response status code = [CkHttpResponse_get_StatusCode $resp]"
# The response should be JSON, even if an error.
set json [new_CkJsonObject]
CkJsonObject_Load $json [CkHttpResponse_bodyStr $resp]
CkJsonObject_put_EmitCompact $json 0
puts [CkJsonObject_emit $json]
# A successful response will have a status code = 200
if {[CkHttpResponse_get_StatusCode $resp] != 200} then {
puts "Failed."
} else {
puts "mediaId: [CkJsonObject_stringOf $json mediaId]"
puts "href: [CkJsonObject_stringOf $json _links.self.href]"
puts "status: [CkJsonObject_stringOf $json status]"
puts "Success."
}
# Here is an example of a successful response:
# {
# "_links": {
# "self": {
# "href": "/v2-beta/media/856a1e85-c847-4c3c-b7a4-6cf15cd51db4"
# }
# },
# "mediaId": "856a1e85-c847-4c3c-b7a4-6cf15cd51db4",
# "status": "accepted",
# "metadata": {}
#
delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkStringBuilder $sbAuth
delete_CkHttpResponse $resp
delete_CkJsonObject $json