Go from Text to Video in minutes!
Unleash the power of AI Avatars to elevate your content game
Unleash the power of AI Avatars to elevate your content game
Impactful for reaching prospects quickly and we can make it very personalized!
Our reps will get in touch soon Meanwhile, you can access a Hippo Video free trial by clicking here.
Get video API’s - From standalone video recording or video player API to a complete next-gen video SDK ready to embed in your platform
Experience Hippo Video SDK extensionless demo.
Record Video
Record Screen
Record Short Video
Record Audio
Upload Video
Analytics Report
Loading
Click to expand and view sample code, documentation, and easy developer guides for each component used in our Video APIs
The Record Widget can be made use of to create Screen/Webcam/Mic recordings. Below is a simple implementation of the Recorder Widget.
// Refer to 'Getting Started' section to add the cdn links to the website
let initializeOptions = {
token:
};
const onVideoSdkInitialize = (success, error) => {
/*
* error will be undefined in case of successfull initialization
* success will be undefined in case there is any error
*/
if (success) {
let recorderWidgetConfig = {
record_config: {
screen: false,
webcam: true,
mic: true
}
}
HVRecorder.RecorderWidget.create(success.key, recorderWidgetConfig)
.then((recorder) => {
recorder.on("record_details", (data) => {
console.info('Recording Data : ', data);
});
recorder.on("video_submitted", (data) => {
console.info('Recording Submitted : ', data);
});
})
.catch((error) => {
//Error details if there is an error during widget creation
})
}
if (error) {
/*
* Will contain the error details when there is an error in sdk initialization
*/
}
};
HVRecorder.initialize(initializeOptions, onVideoSdkInitialize);
The Import Widget can used to import local video or audio file. Below is a simple implementation of the Import Widget.
// Refer to 'Getting Started' section to add the cdn links to the website
let initializeOptions = {
token:
};
const onVideoSdkInitialize = (success, error) => {
/*
* error will be undefined in case of successfull initialization
* success will be undefined in case there is any error
*/
if (success) {
let importWidgetConfig = {
show_video_title: true
}
HVRecorder.ImportWidget.create(success.key, importWidgetConfig)
.then((importer) => {
importer.on("import_complete", (data) => {
console.info('Import Data : ', data);
});
importer.on("video_submitted", (data) => {
console.info('Import Submitted : ', data);
});
})
.catch((error) => {
//Error details if there is an error during widget creation
})
}
if (error) {
/*
* Will contain the error details when there is an error in sdk initialization
*/
}
};
HVRecorder.initialize(initializeOptions, onVideoSdkInitialize);
For detailed documentation, refer this postman link.
This API provides two types of reports:
{
"status": 200,
id": 988,
"total_plays": 13,
"total_page_loads": 15,
"unique_users": 10,
"avg_watch_rate": 85,
"actions": {
"no_of_actions": 111,
"annotations": 4,
"call_to_actions": 19,
"forms": 6,
"end_screens": 3,
"questions": 5,
"comments": 8,
"reactions": 63,
"replies": 3
}
"watch_rate": {
"0": 0,
"25": 3,
"50a
"75": 1,
"100": 5
},
"popular_region": "Houston, Texas",
"plays_in_popular_region": "1 plays from Houston, Texas"
}
This report offers all the details of a video such as the number of views, watch rate, viewer location, and the viewer's engagement on a particular video. To get the reports, you must call the link below.
Note: You can either provide user_email or video_id. They are mutually exclusive. If you'd like to know how a particular video is performing, then enter video_id.
{
"status": 200,
"viewer_profile": [
{
"video_id": "988",
"email": 'michael.clark@icc.com',
"viewer_name": 'Michael Clark',
"ip": "188.XXX.29.XXX",
"last_viewed_time": "31/12/2018 02:23 AM",
"location": "Sydney, Australia",
"device": "DESKTOP"
"os": Macintosh,
"browser": Chrome,
"referer_url": '<https://www.google.co.in/>',
"precentage_played": 95,
"views": 2
}
],
"load_more": false,
"page": 1,
"next_page": 2
}
This report offers all the details for a particular lead’s email address such as the number of videos watched, watch rate, lead's location, and their engagement on the videos.
Note: This API is the same as the report based on the video, except the ‘user_email’ param should be passed instead of 'video_id.'
{
"status": 200,
"viewer_profile": [
{
"video_id": "999",
"email": "joebrown@google.com",
"viewer_name": "Joe Brown",
"ip": "188.XXX.29.XXX",
"last_viewed_time": "09/01/2019 12:27PM",
"location": " NA ",
"device": "DESKTOP",
"os": Macintosh,
"browser": "Chrome",
"referer_url": "https://mail.google.com/mail/u/#sent/16831654c41cc10a",
"precentage_played": 36,
"views": 1
},
{
"video_id": "937",
"email": "joebrown@google.com",
"viewer_name": "Joe Brown",
"ip": "188.XXX.29.XXX",
"last_viewed_time": "19/10/2018 12:25PM",
"location": "Naples, ITALY",
"device": "DESKTOP",
"os": "Macintosh",
"browser": "Chrome",
"referer_url": " NA ",
"precentage_played": 100,
"views": 1
}
],
"load_more": false,
"page": 1,
"next_page": 2
}
The above responses are success cases. In case, any errors occur you’ll see an error response.
Webhook helps you to get notified as soon as someone takes a desired action on your platform. A Webhook enables an application to send automated messages or information to another application, whenever an event takes place, in real-time. Basically, a Webhook is a medium that enables apps to communicate with each other and share data.
Available events in Webhook
Any change that occurs on an application or a system is considered an event. Here are some default events that we provide:
Find out who watched your video. When someone clicks on your video, we’ll notify you of the watch rate along with other user details (only if the viewer has logged in before watching your video).
{
"hook": {
"uuid": "fb9f6d19-921f-48c5-9a10-69c39e5fa13c"
}
"VideoPlayedSessions": {
"media": {
"videoId": 444076,
"thumbnail": "https://hippolms-storage.s3-accelerate.amazonaws.com/wiz/videos/thumbnails/21594/da2f955a-5410-489b-a10c-43b7d0a192af_play.jpg",
"name": "Pro edit full flow",
"shareUrl": "https://www.hippovideo.io/video/play/mp1lhvzM9gyOY1mg19Fl2Q",
"embedUrl": "https://www.hippovideo.io/video/embed/mp1lhvzM9gyOY1mg19Fl2Q",
"duration": 171.689
},
"percentagePlayed": 100,
"email": "support@hippovideo.io"
},
"metadata": {
"account_id": "24880"
}
}
We notify you whenever someone creates a video on your platform.
{
"hook": {
"uuid": "598210b8-e373-48eb-ac3f-4b8f08fa8066"
}
"eventName": "VideoCreated",
"eventTimestamp": "1542032461018",
"VideoCreated": {
"media": {
"videoId": 834871,
"thumbnail": "https://hippolms-storage.s3-accelerate.amazonaws.com/wiz/videos/thumbnails/v2/FCNN4s7tKjCOaecmg6hjzw_play.jpg",
"name": "Hey Ashley",
"shareUrl": "https://www.hippovideo.io/video/play/FCNN4s7tKjCOaecmg6hjzw",
"embedUrl": "https://www.hippovideo.io/video/embed/FCNN4s7tKjCOaecmg6hjzw",
"duration": 13.76
},
},
"metadata": {
"account_id": "60753",
"created_by": "support@hippovideo.io"
}
}
Get notified whenever your viewers click on a Call to Action (CTA) in your video.
{
"hook": {
"uuid": "ffc5bf89-16e8-428d-92e8-a94016b5e8f2"
}
"eventName": "VideoCTA",
"eventTimestamp": "1542191371256",
"VideoCTA": {
"media": {
"videoId": 809864,
"thumbnail": "https://hippolms-storage.s3-accelerate.amazonaws.com/wiz/videos/thumbnails/v2/c9ryLBsotAVJITn12NZIKg_play.jpg",
"name": "A",
"shareUrl": "https://www.hippovideo.io/video/play/FCNN4s7tKjCOaecmg6hjzw",
"embedUrl": "https://www.hippovideo.io/video/embed/c9ryLBsotAVJITn12NZIKg",
"duration": 146.912
},
"ctaUrl": "https://www.hippovideo.io/video/cta/809864",
"email": "support@hippovideo.io"
}
"metadata": {
"account_id": "60753"
}
}
Get notified with your lead's information. Whenever someone fills a form that you have embedded in your video, you’ll receive an instant notification, with their details. You can also choose to update your lead's information straight away into your CRM platform.
{
"hook": {
"uuid": "681dc0a4-1baa-497e-b9c4-674a66924f88"
}
"VideoLeadGenaration": {
"media": {
"videoId": 826784,
"thumbnail": "https://hippolms-storage.s3-accelerate.amazonaws.com/wiz/videos/thumbnails/v2/U4GZz3AFN8vHcplqEYl7Fg_play.jpg",
"name": "Sales demo",
"shareUrl": "https://www.hippovideo.io/video/play/U4GZz3AFN8vHcplqEYl7Fg",
"embedUrl": "https://www.hippovideo.io/video/embed/U4GZz3AFN8vHcplqEYl7Fg",
"duration": 139.203
},
"firstName": "Varun",
"lastName": "Ch",
"email": "support@hippovideo.io",
"phone": "2132121"
}
"metadata": {
"account_id": "24880"
}
}
Do you have an annotation that directs your viewers to your website? How do you track who clicked on your annotation? Don’t worry. We notify who’s clicking on your annotation along with the viewer’s information.
{
"hook": {
"uuid": "e72c91f5-9c7a-4419-bd1e-c1d3d17ae3ef"
}
"eventName": "VideoAnnotation",
"eventTimestamp": "1541759939981",
"payload": {
"VideoAnnotation": {
"videoId": 814440,
"thumbnail": "https://hippolms-storage.s3-accelerate.amazonaws.com/wiz/videos/thumbnails/v2/cS-qeih4T7LkWzhQnYbzVA_play.jpg",
"name": "Hey, How are you?",
"shareUrl": "https://www.hippovideo.io/video/play/cS-qeih4T7LkWzhQnYbzVAhttps://www.hippovideo.io/video/play/cS-qeih4T7LkWzhQnYbzVA",
"embedUrl": "https://www.hippovideo.io/video/embed/cS-qeih4T7LkWzhQnYbzVA",
},
"annotationText": "Google",
"annotationUrl": "https://www.google.co.in/",
"annotationClickedTime": 0,
"email": "support@hippovideo.io"
}
"metadata": {
"account_id": "60753"
}
}
On the other hand, anyone with your server URL can send you data. To verify the data source, we suggest you create a secret key of your choice. So that whenever you receive information from Hippo Video, you can verify whether the data is from us.
It works this way - Every time you receive data from our side, we also provide Hippo Video signature in the request. Using the signature, you can verify the data authenticity by checking it at your end. We’ll generate an HMAC hexdigest of the POST body, using the secret_key that you created, while configuring your webhook. The generated hexdigest will be shared with you along with the event data. If you have any questions, contact us at support@hippovideo.io
The following events are available which can be listened to with the on
API of respective Widgets.
Recorder | Import | Edit |
---|---|---|
sdk_loaded countdown_timer countdown_complete record_started recording_timer record_stopped record_details record_started record_paused record_resumed record_stopped record_aborted record_error source_uploaded video_cancelled video_submitted | sdk_loaded import_progress import_complete import_error video_cancelled video_submitted | sdk_loaded editor_loaded editor_error |
For more details refer New API documentation
EVENT | DESCRIPTION | DATA |
---|---|---|
record_initiated | When recording is initiated | preview_url: URL to preview video. (preview will be available at any point of time for the recorded user. For others, it will be the same as ‘recorded_url’ Show Morerecorded_url: Video delivery URL. URL to share/mail/message others. embed_url: Similar to recorded_url. Optimized for embedding as an iframe in a website. thumbnail_url: Thumbnail URL of the video. thumbnail_play_url: Similar to ‘thumbnail_url’, except the play icon is displayed at the center token: Video token for the recorded video. asset_id: Hippo internal recording identifier. |
record_started | When recording is started. (After user accept the permissions, etc.) | - |
record_paused | When user pauses the recording | - |
record_resumed | When user pauses the recording | - |
record_stopped | When user stops the recording | - |
record_aborted | Same as ‘video_cancelled’. Additionally, this event will also be triggered when a user aborts the recording while recording itself(future) | - |
record_error | When there is some issue with recording | reason: Contains the error subtype. Will be one of the following,
|
video_cancelled | When the user cancels submitting the recorded video | - |
video_submitted | When the recorded video is submitted by the user | media_duration: duration of recorded/imported media in seconds. |
import_progress | When import is in progress | operation: “started”/“uploading”progress : percentage of file uploaded from client (when operation = “uploading”) |
import_complete | When import is successful | preview_url: URL to preview video. (preview will be available at any point of time for the recorded user. For others, it will be the same as ‘recorded_url’) Show Moreshare_url: video delivery URL. URL to share/mail/message others. embed_url: same as recorded_url. optimized for embedding as an iframe in website. thumbnail_url: thumbnail URL of the video. thumbnail_play_url: same as ‘thumbnail_url’, but with play icon at the middle. token: video token for the recorded video. asset_id: Hippo internal recording identifier. media_duration: duration of imported media in seconds. |
import_failed | When import fails due to some error | reason: reason for error |
source_uploaded | when the source media file(s) have been uploaded successfully to hippovideo servers.Once this event is triggered, it is guaranteed that there will be no data loss of the recorded or imported video. | - |
Check video on how-to embed developer friendly video APIs in your platform.
Yes, the transcript can be downloaded as SRT or VTT.
Hippo Video uses HLS for adaptive bitrate.
Videos are currently transcoded in,
3 different resolutions - 1080p, 720p and 480p and
2-bit rates in each of the above resolution
This can be configured by our Customer.
Yes, the staging environment will be for developer testing only.
Yes, we have options to choose color and set primary colors also. The Logo can be changed.
Impactful for reaching prospects quickly and we can make it very personalized!
Our team will soon get in touch with you. Meanwhile, you can watch all the demo videos here.
Our team will soon get in touch with you. Meanwhile, you can watch all the demo videos here.