import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
views_heatmap = client.streaming.statistics.get_views_heatmap(
date_from="date_from",
date_to="date_to",
stream_id="stream_id",
type="live",
)
print(views_heatmap.data)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/option"
"github.com/G-Core/gcore-go/streaming"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
viewsHeatmap, err := client.Streaming.Statistics.GetViewsHeatmap(context.TODO(), streaming.StatisticGetViewsHeatmapParams{
DateFrom: "date_from",
DateTo: "date_to",
StreamID: "stream_id",
Type: streaming.StatisticGetViewsHeatmapParamsTypeLive,
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", viewsHeatmap.Data)
}
curl --request GET \
--url https://api.gcore.com/streaming/statistics/heatmap \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.gcore.com/streaming/statistics/heatmap', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/streaming/statistics/heatmap",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.gcore.com/streaming/statistics/heatmap")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/streaming/statistics/heatmap")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"viewers": 100500,
"seconds": 500
},
{
"viewers": 3000,
"seconds": 1000
}
]
}{
"data": [],
"errors": [
"from: query param is not set"
]
}{
"data": [],
"errors": [
"internal server error"
]
}Get heatmap in built-in player
Shows information about what part of the video your viewers watched in the built-in player.
This way you can find out how many viewers started watching the video, and where they stopped watching instead of watching the entire video to the end.
Has different format of response depends on query param “type”.
Note. This method operates only on data collected by the built-in HTML player. It will not show statistics if you are using another player or viewing in native OS players through direct .m3u8/.mpd/.mp4 links. For such cases, use calculations through CDN (look at method /statistics/cdn/uniqs) or statistics of the players you have chosen.
import os
from gcore import Gcore
client = Gcore(
api_key=os.environ.get("GCORE_API_KEY"), # This is the default and can be omitted
)
views_heatmap = client.streaming.statistics.get_views_heatmap(
date_from="date_from",
date_to="date_to",
stream_id="stream_id",
type="live",
)
print(views_heatmap.data)package main
import (
"context"
"fmt"
"github.com/G-Core/gcore-go"
"github.com/G-Core/gcore-go/option"
"github.com/G-Core/gcore-go/streaming"
)
func main() {
client := gcore.NewClient(
option.WithAPIKey("My API Key"),
)
viewsHeatmap, err := client.Streaming.Statistics.GetViewsHeatmap(context.TODO(), streaming.StatisticGetViewsHeatmapParams{
DateFrom: "date_from",
DateTo: "date_to",
StreamID: "stream_id",
Type: streaming.StatisticGetViewsHeatmapParamsTypeLive,
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", viewsHeatmap.Data)
}
curl --request GET \
--url https://api.gcore.com/streaming/statistics/heatmap \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.gcore.com/streaming/statistics/heatmap', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gcore.com/streaming/statistics/heatmap",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.get("https://api.gcore.com/streaming/statistics/heatmap")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/streaming/statistics/heatmap")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"viewers": 100500,
"seconds": 500
},
{
"viewers": 3000,
"seconds": 1000
}
]
}{
"data": [],
"errors": [
"from: query param is not set"
]
}{
"data": [],
"errors": [
"internal server error"
]
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234_abcdef
Query Parameters
Start of time frame. Datetime in ISO 8601 format.
End of time frame. Datetime in ISO 8601 format.
entity's type
live, vod, playlist video streaming ID
Response
OK
Show child attributes
Show child attributes
Was this page helpful?