REST API examples
Here are some handy examples that you can consume on REST API. Please replace curly braces with your configuration. Typical values for {domain}
is either your server's accessible IP address or fully qualified domain name, port
is 5080 for HTTP and 5443 for HTTPS. {application}
can be either LiveApp
or any other one.
Note:
This guide assumes that you included your IP in the IP-Filter as mentioned here so that you can do REST API calls.
Create
The following command creates a stream on the Ant Media Server
curl -X POST -H "Content-Type: application/json" "https://{domain:port}/{application}/rest/v2/broadcasts/create"
For quick testing when we run the following command in terminal curl -X POST -H "Content-Type: application/json" "http://localhost:5080/LiveApp/rest/v2/broadcasts/create"
It returns a Broadcast Object in the response like this
{"streamId":"247807894779015096249123","status":"created","type":"liveStream","name":null,"description":null,"publish":true,"date":1605776243606,"plannedStartDate":0,"plannedEndDate":0,"duration":0,"endPointList":null,"publicStream":true,"is360":false,"listenerHookURL":null,"category":null,"ipAddr":null,"username":null,"password":null,"quality":null,"speed":0.0,"streamUrl":null,"originAdress":"127.0.0.1","mp4Enabled":0,"webMEnabled":0,"expireDurationMS":0,"rtmpURL":"rtmp://127.0.0.1/LiveApp/247807894779015096249123","zombi":false,"pendingPacketSize":0,"hlsViewerCount":0,"webRTCViewerCount":0,"rtmpViewerCount":0,"startTime":0,"receivedBytes":0,"bitrate":0,"userAgent":"N/A","latitude":null,"longitude":null,"altitude":null,"mainTrackStreamId":null,"subTrackStreamIds":null,"absoluteStartTimeMs":0,"webRTCViewerLimit":-1,"hlsViewerLimit":-1}
You can take a look at the Broadcast object in the REST Reference
Create Broadcast with pre-defined streamId
You can determine your streamId
in advance and make request with that streamId
as follows
curl -X POST -H "Content-Type: application/json" "https://{domain:port}/{application}/rest/v2/broadcasts/create" -d '{"streamId":"{YOUR_STREAM_ID}"}'
Running sample command in my localhost curl -X POST -H "Content-Type: application/json" "http://localhost:5080/LiveApp/rest/v2/broadcasts/create" -d '{"streamId":"1234567", "name":"Test Stream"}'
. It returns following response.
{"streamId":"1234567","status":"created","type":"liveStream","name":"Test Stream","description":null,"publish":true,"date":1605776884508,"plannedStartDate":0,"plannedEndDate":0,"duration":0,"endPointList":null,"publicStream":true,"is360":false,"listenerHookURL":null,"category":null,"ipAddr":null,"username":null,"password":null,"quality":null,"speed":0.0,"streamUrl":null,"originAdress":"127.0.0.1","mp4Enabled":0,"webMEnabled":0,"expireDurationMS":0,"rtmpURL":"rtmp://127.0.0.1/LiveApp/1234567","zombi":false,"pendingPacketSize":0,"hlsViewerCount":0,"webRTCViewerCount":0,"rtmpViewerCount":0,"startTime":0,"receivedBytes":0,"bitrate":0,"userAgent":"N/A","latitude":null,"longitude":null,"altitude":null,"mainTrackStreamId":null,"subTrackStreamIds":null,"absoluteStartTimeMs":0,"webRTCViewerLimit":-1,"hlsViewerLimit":-1}
Create Stream Source Broadcasts
Stream Sources are external and you can make Ant Media Server pull RTSP, IP Camera or any other Stream Sources. Here is the sample command for that.
curl -X POST -H "Content-Type: application/json" "https://{domain:port}/{application}/rest/v2/broadcasts/create?autoStart=false" -d '{ "type":"streamSource", "streamUrl":"YOUR_STREAM_SOURCE_URL"}'
If you want it to start pulling stream immediately, you can set autoStart
value to true
in the query above. You can also start/stop stream sources with following commands.
Starting Stream Source
curl -X POST -H "Content-Type: application/json" "https://{domain:port}/{application}/rest/v2/broadcasts/{streamId}/start"
Read
You can query Broadcasts with GET methods. Check this out
curl -X GET "https://{domain:port}/{application}/rest/v2/broadcasts/{streamid}"
It returns the Broadcast object or 404 if there is no streamId specified in the URL.
Read Broadcast Statistics
The following methods return Broadcast Statistics for the specified stream Id
curl -X GET "https://{domain:port}/{application}/rest/v2/broadcasts/{streamid}/broadcast-statistics"
Broadcast Statistics contains the number of viewers for the broadcast.
Update
The following method changes the name of the Broadcast.
curl -X PUT -H "Content-Type: application/json" "https://{domain:port}/{application}/rest/v2/broadcasts/{streamid}" -d '{"name":"
{streamname}"}'
The method above returns the result object that shows if the operation is successful or not
Delete
Delete requests are straight-forward which means these methods aim to delete from the database
curl -X DELETE https://{domain:port}/{application}/rest/v2/broadcasts/{streamId}
The command above deletes the broadcast with the specified streamId
REST API Reference
In this doc, we just provide some sample commands for consuming REST methods. For all methods in the REST API, please visit https://antmedia.io/rest/
Note:
On Windows Command Prompt, the body part of the requests should be like the following: -d "{""name"":""{streamname}""}"
.