api.video is an API that encodes on the go to facilitate immediate playback, enhancing viewer streaming experiences across multiple devices and platforms. You can stream live or on-demand online videos within minutes.
This API client is still in beta. Please feel free to report any issue you may encounter.
go get github.com/apivideo/go-api-client
For a more advanced usage you can checkout the rest of the documentation in the docs directory
package main
import (
"fmt"
"os"
apivideosdk "github.com/apivideo/go-api-client"
)
func main() {
//Connect to production environment
client := apivideosdk.ClientBuilder("YOUR_API_TOKEN").Build()
// if you rather like to use the sandbox environment:
// client := apivideosdk.SandboxClientBuilder("YOU_SANDBOX_API_TOKEN").Build()
//List Videos
//First create the url options for searching
opts := apivideosdk.VideosApiListRequest{}.
CurrentPage(1).
PageSize(25).
SortBy("publishedAt").
SortOrder("desc")
//Then call the List endpoint with the options
result, err := client.Videos.List(opts)
if err != nil {
fmt.Println(err)
}
for _, video := range result.Data {
fmt.Printf("%s\n", *video.VideoId)
fmt.Printf("%s\n", *video.Title)
}
//Upload a video
//First create a container
create, err := client.Videos.Create(apivideosdk.VideoCreationPayload{Title: "My video title"})
if err != nil {
fmt.Println(err)
}
//Then open the video file
videoFile, err := os.Open("path/to/video.mp4")
if err != nil {
fmt.Println(err)
}
//Finally upload your video to the container with the videoId
uploadedVideo, err := client.Videos.UploadFile(*create.VideoId, videoFile)
if err != nil {
fmt.Println(err)
}
//And get the assets
fmt.Printf("%s\n", *uploadedVideo.Assets.Hls)
fmt.Printf("%s\n", *uploadedVideo.Assets.Iframe)
}
All URIs are relative to https://ws.api.video
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
captionsApi := client.Captions
Method | HTTP request | Description |
---|---|---|
Delete | Delete /videos/{videoId}/captions/{language} | Delete a caption |
List | Get /videos/{videoId}/captions | List video captions |
Get | Get /videos/{videoId}/captions/{language} | Show a caption |
Update | Patch /videos/{videoId}/captions/{language} | Update caption |
Upload | Post /videos/{videoId}/captions/{language} | Upload a caption |
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
chaptersApi := client.Chapters
Method | HTTP request | Description |
---|---|---|
Delete | Delete /videos/{videoId}/chapters/{language} | Delete a chapter |
List | Get /videos/{videoId}/chapters | List video chapters |
Get | Get /videos/{videoId}/chapters/{language} | Show a chapter |
Upload | Post /videos/{videoId}/chapters/{language} | Upload a chapter |
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
liveStreamsApi := client.LiveStreams
Method | HTTP request | Description |
---|---|---|
Delete | Delete /live-streams/{liveStreamId} | Delete a live stream |
DeleteThumbnail | Delete /live-streams/{liveStreamId}/thumbnail | Delete a thumbnail |
List | Get /live-streams | List all live streams |
Get | Get /live-streams/{liveStreamId} | Show live stream |
Update | Patch /live-streams/{liveStreamId} | Update a live stream |
Create | Post /live-streams | Create live stream |
UploadThumbnail | Post /live-streams/{liveStreamId}/thumbnail | Upload a thumbnail |
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
playerThemesApi := client.PlayerThemes
Method | HTTP request | Description |
---|---|---|
Delete | Delete /players/{playerId} | Delete a player |
DeleteLogo | Delete /players/{playerId}/logo | Delete logo |
List | Get /players | List all players |
Get | Get /players/{playerId} | Show a player |
Update | Patch /players/{playerId} | Update a player |
Create | Post /players | Create a player |
UploadLogo | Post /players/{playerId}/logo | Upload a logo |
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
rawStatisticsApi := client.RawStatistics
Method | HTTP request | Description |
---|---|---|
ListLiveStreamSessions | Get /analytics/live-streams/{liveStreamId} | List live stream player sessions |
ListSessionEvents | Get /analytics/sessions/{sessionId}/events | List player session events |
ListVideoSessions | Get /analytics/videos/{videoId} | List video player sessions |
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
uploadTokensApi := client.UploadTokens
Method | HTTP request | Description |
---|---|---|
DeleteToken | Delete /upload-tokens/{uploadToken} | Delete an upload token |
List | Get /upload-tokens | List all active upload tokens. |
GetToken | Get /upload-tokens/{uploadToken} | Show upload token |
CreateToken | Post /upload-tokens | Generate an upload token |
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
videosApi := client.Videos
Method | HTTP request | Description |
---|---|---|
Delete | Delete /videos/{videoId} | Delete a video |
Get | Get /videos/{videoId} | Show a video |
GetStatus | Get /videos/{videoId}/status | Show video status |
List | Get /videos | List all videos |
Update | Patch /videos/{videoId} | Update a video |
PickThumbnail | Patch /videos/{videoId}/thumbnail | Pick a thumbnail |
UploadWithUploadToken | Post /upload | Upload with an upload token |
Create | Post /videos | Create a video |
Upload | Post /videos/{videoId}/source | Upload a video |
UploadThumbnail | Post /videos/{videoId}/thumbnail | Upload a thumbnail |
client := apivideosdk.ClientBuilder("API_VIDEO_KEY").Build()
webhooksApi := client.Webhooks
Method | HTTP request | Description |
---|---|---|
Delete | Delete /webhooks/{webhookId} | Delete a Webhook |
Get | Get /webhooks/{webhookId} | Show Webhook details |
List | Get /webhooks | List all webhooks |
Create | Post /webhooks | Create Webhook |
- AccessToken
- Account
- AccountQuota
- AuthenticatePayload
- BadRequest
- BytesRange
- Caption
- CaptionsListResponse
- CaptionsUpdatePayload
- Chapter
- ChaptersListResponse
- Link
- LiveStream
- LiveStreamAssets
- LiveStreamCreationPayload
- LiveStreamListResponse
- LiveStreamSession
- LiveStreamSessionClient
- LiveStreamSessionDevice
- LiveStreamSessionLocation
- LiveStreamSessionReferrer
- LiveStreamSessionSession
- LiveStreamUpdatePayload
- Metadata
- NotFound
- Pagination
- PaginationLink
- PlayerSessionEvent
- PlayerTheme
- PlayerThemeAssets
- PlayerThemeCreationPayload
- PlayerThemeUpdatePayload
- PlayerThemesListResponse
- Quality
- RawStatisticsListLiveStreamAnalyticsResponse
- RawStatisticsListPlayerSessionEventsResponse
- RawStatisticsListSessionsResponse
- RefreshTokenPayload
- TokenCreationPayload
- TokenListResponse
- UploadToken
- Video
- VideoAssets
- VideoCreationPayload
- VideoSession
- VideoSessionClient
- VideoSessionDevice
- VideoSessionLocation
- VideoSessionOs
- VideoSessionReferrer
- VideoSessionSession
- VideoSource
- VideoSourceLiveStream
- VideoSourceLiveStreamLink
- VideoStatus
- VideoStatusEncoding
- VideoStatusEncodingMetadata
- VideoStatusIngest
- VideoThumbnailPickPayload
- VideoUpdatePayload
- VideosListResponse
- Webhook
- WebhooksCreationPayload
- WebhooksListResponse
Please take a moment to leave a star on the client ⭐
This helps other users to find the clients and also helps us understand which clients are most popular. Thank you!