Actions

Difference between revisions of "Broadcastify-Calls-API"

From The RadioReference Wiki

Line 20: Line 20:
 
This is a RFC1867 multipart/form-data POST request to the API Endpoint.
 
This is a RFC1867 multipart/form-data POST request to the API Endpoint.
  
  curl -s https://api.broadcastify.com/call-upload -F "callDuration=${duration}" -F "filename=${NEWBASE}.m4a"  
+
  curl -s https://api.broadcastify.com/call-upload -F "apiKey=${APIKEY}" -F "systemId=${SYSTEMID}"
  -F "apiKey=${APIKEY}" -F "systemId=${SYSTEMID}" -F "ts=${timestamp}" -F "tg=${tg}" -F "src=${src}" -F "freq=${freq}"
+
  -F "callDuration=${duration}" -F "ts=${timestamp}" -F "tg=${tg}" -F "src=${src}" -F "freq=${freq}"
  
 
  URL for Development: https://api.broadcastify.com/call-upload-dev
 
  URL for Development: https://api.broadcastify.com/call-upload-dev
 
  URL for Production: https://api.broadcastify.com/call-upload  
 
  URL for Production: https://api.broadcastify.com/call-upload  
 
  callDuration = duration of the call in seconds (float number)
 
  callDuration = duration of the call in seconds (float number)
filename = name of the file to be uploaded
 
 
  apiKey = API Key  
 
  apiKey = API Key  
 
  systemId = Unique System ID Assigned to this call ingest system (paired with API Key Assignment)
 
  systemId = Unique System ID Assigned to this call ingest system (paired with API Key Assignment)

Revision as of 16:44, 25 March 2020

Upload API

Apply for an API Key and System ID

An API key and unique system ID identifier is required for every uploaded system. For trunked radio systems, you will need to provide the RadioReference.com Database Unique SID for the trunked system, and the unique siteID. API Keys and System Identifiers will be different between development and production.

Contact support@broadcastify.com to get an API and System ID assigned.

Convert to M4A AAC Audio
ffmpeg -i "${basename}.wav"  -c:a libfdk_aac -b:a 32k -cutoff 18000 "${basename}.m4a


Get the duration of the audio clip
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "${basename}.m4a


Register the Clip and get the Upload URL.

This is a RFC1867 multipart/form-data POST request to the API Endpoint.

curl -s https://api.broadcastify.com/call-upload  -F "apiKey=${APIKEY}" -F "systemId=${SYSTEMID}"
-F "callDuration=${duration}" -F "ts=${timestamp}" -F "tg=${tg}" -F "src=${src}" -F "freq=${freq}"
URL for Development: https://api.broadcastify.com/call-upload-dev
URL for Production: https://api.broadcastify.com/call-upload 
callDuration = duration of the call in seconds (float number)
apiKey = API Key 
systemId = Unique System ID Assigned to this call ingest system (paired with API Key Assignment)
ts = call start timestamp in epoch seconds (unix timestamp)
tg = call talkgroup decimal ID (trunked call upload only). If patch, a comma delimited string of talkgroups with Patch ID listed first
src = call source decimal ID (unit ID)
freq = call frequency (trunked and conventional call upload)


Successful return is a single line with a return code followed by a one time use upload URL.

Example: 0 https://upload.hostname.com/uploadPath/oneTimeUseKey

Error return is an error code followed by an error message

Example: 100 NO-API-KEY-SPECIFIED


Upload the Audio File
curl --write-out %{http_code} --silent --output /dev/null -X PUT -H "Content-Type: audio/aac" 
-T ${basename}.m4a "${uploadURL}"