Sample code for 30+ languages & platforms
Tcl

VoiceBase -- Retrieve JSON Transcript

See more VoiceBase Examples

Retrieves a JSON transcript for a media file.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

# 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]

# 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
CkHttp_SetRequestHeader $http "Authorization" [CkStringBuilder_getAsString $sbAuth]

set sbUrl [new_CkStringBuilder]

CkStringBuilder_Append $sbUrl "https://apis.voicebase.com/v2-beta/media/$MEDIA_ID/transcripts/latest"
set replaceCount [CkStringBuilder_Replace $sbUrl "$MEDIA_ID" "f9b9bb88-d52c-4960-bcef-d516a9f85594"]

set strJson [CkHttp_quickGetStr $http [CkStringBuilder_getAsString $sbUrl]]
if {[CkHttp_get_LastMethodSuccess $http] != 1} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkStringBuilder $sbAuth
    delete_CkStringBuilder $sbUrl
    exit
}

# The response should be JSON, even if an error.
set json [new_CkJsonObject]

CkJsonObject_Load $json $strJson
CkJsonObject_put_EmitCompact $json 0

puts "Response status code = [CkHttp_get_LastStatus $http]"

if {[CkHttp_get_LastStatus $http] != 200} then {
    puts [CkJsonObject_emit $json]
    puts "Failed"
    delete_CkHttp $http
    delete_CkStringBuilder $sbAuth
    delete_CkStringBuilder $sbUrl
    delete_CkJsonObject $json
    exit
}

# See the sample JSON response below..

# Iterate over the words..
set numWords [CkJsonObject_SizeOfArray $json "transcripts.latest.words"]
set i 0
while {$i < $numWords} {
    CkJsonObject_put_I $json $i
    puts [CkJsonObject_stringOf $json {transcripts.latest.words[i].w}]
    set i [expr $i + 1]
}
puts "Success."

# A sample JSON response:

# { 
#   "_links": { 
#     "self": { 
#       "href": "/v2-beta/media/f9b9bb88-d52c-4960-bcef-d516a9f85594/transcripts/latest"
#     }
#   },
#   "transcripts": { 
#     "latest": { 
#       "revision": "b25e81dc-ae3e-4f9d-8008-1d56a283c17f",
#       "engine": "standard",
#       "confidence": 2.196210728898151,
#       "words": [
#         { 
#           "p": 0,
#           "s": 830,
#           "c": 0.14,
#           "e": 870,
#           "w": "You"
#         },
#         { 
#           "p": 1,
#           "s": 1860,
#           "c": 0.432,
#           "e": 1920,
#           "w": "know"
#         },
#         { 
#           "p": 2,
#           "s": 1930,
#           "c": 0.288,
#           "e": 2250,
#           "w": "that's"
#         },
#         { 
#           "p": 3,
#           "s": 2250,
#           "c": 0.923,
#           "e": 2300,
#           "w": "a"
#         },
# ...

delete_CkHttp $http
delete_CkStringBuilder $sbAuth
delete_CkStringBuilder $sbUrl
delete_CkJsonObject $json