@aiozstream/nodejs-client
v1.0.16
Published
AIOZ stream nodejs API client
Maintainers
Readme
AIOZ Stream is the video infrastructure for product builders. Lightning fast video APIs for integrating, scaling, and managing on-demand & low latency live streaming features in your app.
Project description
AIOZ Stream's Node.js is a lightweight client built in TypeScript that streamlines the coding process. Chunking files is handled for you, as is pagination and refreshing your tokens.
Getting started
Installation
With npm:
npm install @aiozstream/nodejs-client...or with yarn:
yarn add @aiozstream/nodejs-clientCode sample
import StreamClient from "@aiozstream/nodejs-client";
(async () => {
try {
const client = new StreamClient({
publicKey: "YOUR_PUBLIC_KEY",
secretKey: "YOUR_SECRET_KEY",
});
const videoCreationPayload = {
title: "First video", // The title of your new video.
description: "A new video.", // A brief description of your video.
};
const video = await client.video.create(videoCreationPayload);
if (!video.data) {
throw new Error("Failed to create video");
}
if (!video.data.id) {
throw new Error("Failed to create video");
}
// Option 1: Use client upload with videoId
// await client.uploadVideo(video.data.id, "./path/to/video.mp4");
// console.log("Upload successfully");
// Option 2: Upload parts yourself
const uploadResult = await client.video.uploadPart(
video.data.id,
"./path/to/video.mp4",
);
console.log(uploadResult);
const checkResult = await client.video.uploadVideoComplete(video.data.id);
// Check if the video upload is complete
console.log(checkResult);
} catch (e) {
console.error(e);
}
})();
Documentation
API endpoints
AnalyticsApi
Method | Description | HTTP request
------------- | ------------- | -------------
GetAggregatedMetrics() | Get aggregated metrics | POST /analytics/metrics/data/{metric}/{aggregation}
GetBreakdownMetrics() | Get breakdown metrics | POST /analytics/metrics/bucket/{metric}/{breakdown}
GetDataUsage() | Get data usage | GET /analytics/data
GetOvertimeMetrics() | Get overtime metrics | POST /analytics/metrics/timeseries/{metric}/{interval}
GetStatisticMedias() | Get statistic media | GET /analytics/media
ApiKeyApi
Method | Description | HTTP request
------------- | ------------- | -------------
create() | Create API key | POST /api_keys
update() | Rename api key | PATCH /api_keys/{id}
delete() | Delete API key | DELETE /api_keys/{id}
list() | Get list API keys | GET /api_keys
LiveStreamApi
Method | Description | HTTP request
------------- | ------------- | -------------
uploadThumbnail() | Upload live stream media thumbnail | POST /live_streams/{id}/thumbnail
deleteThumbnail() | Delete live stream media thumbnail | DELETE /live_streams/{id}/thumbnail
addMulticast() | Add live stream multicast | POST /live_streams/multicast/{stream_key}
createLiveStreamKey() | Create live stream key | POST /live_streams
createStreaming() | Create a new live stream media | POST /live_streams/{id}/streamings
deleteLiveStreamKey() | Delete live stream key | DELETE /live_streams/{id}
deleteLiveStreamMulticast() | Delete live stream multicast | DELETE /live_streams/multicast/{stream_key}
deleteStreaming() | Delete live stream video | DELETE /live_streams/{id}/streamings/{stream_id}
getLiveStreamKey() | Get live stream key | GET /live_streams/{id}
getLiveStreamKeys() | Get live stream key list | GET /live_streams
getLiveStreamMulticastByStreamKey() | Get live stream multicast by stream key | GET /live_streams/multicast/{stream_key}
getLiveStreamPlayerInfo() | Get live stream video public | GET /live_streams/player/{id}/media
getLiveStreamStatisticByStreamMediaId() | Get live stream statistic by stream media id | GET /live_streams/statistic/{stream_media_id}
getLiveStreamVideo() | Get live stream video | GET /live_streams/{id}/video
getMedias() | Get live stream media | POST /live_streams/{id}/media
getStreaming() | Get live stream media streaming | GET /live_streams/{id}/streamings/{stream_id}
getStreamings() | Get live stream media streamings | GET /live_streams/{id}/streamings
updateLiveStreamKey() | Update live stream key | PUT /live_streams/{id}
updateMedia() | Update live stream media | PUT /live_streams/{id}/streamings
MediaApi
Method | Description | HTTP request
------------- | ------------- | -------------
create() | Create media object | POST /media/create
update() | update media info | PATCH /media/{id}
delete() | Delete media | DELETE /media/{id}
uploadThumbnail() | Upload media thumbnail | POST /media/{id}/thumbnail
deleteThumbnail() | Delete media thumbnail | DELETE /media/{id}/thumbnail
createCaption() | Create a new media caption | POST /media/{id}/captions/{lan}
deleteCaption() | Delete a media caption | DELETE /media/{id}/captions/{lan}
getCaptions() | Get media captions | GET /media/{id}/captions
getCost() | get media transcoding cost | GET /media/cost
getDetail() | get media detail | GET /media/{id}
getMediaList() | Get user videos list | POST /media
getMediaPlayerInfo() | Get media object | GET /media/{id}/player.json
setDefaultCaption() | Set default caption | PATCH /media/{id}/captions/{lan}
uploadMediaComplete() | Get upload media when complete | GET /media/{id}/complete
uploadPart() | Upload part of media | POST /media/{id}/part
MediaChapterApi
Method | Description | HTTP request
------------- | ------------- | -------------
create() | Create a media chapter | POST /media/{id}/chapters/{lan}
get() | Get media chapters | GET /media/{id}/chapters
delete() | Delete a video chapter | DELETE /media/{id}/chapters/{lan}
PlayersApi
Method | Description | HTTP request
------------- | ------------- | -------------
create() | Create a player theme | POST /players
get() | Get a player theme by ID | GET /players/{id}
update() | Update a player theme by ID | PATCH /players/{id}
delete() | Delete a player theme by ID | DELETE /players/{id}
list() | List all player themes | GET /players
uploadLogo() | Upload a logo for a player theme by ID | POST /players/{id}/logo
deleteLogo() | Delete a logo for a player theme by ID | DELETE /players/{id}/logo
addPlayer() | Add a player theme to a video | POST /players/add-player
removePlayer() | Remove a player theme from a video | POST /players/remove-player
PlaylistApi
Method | Description | HTTP request
------------- | ------------- | -------------
addVideoToPlaylist() | Add a video to a playlist | POST /playlists/{id}/items
createPlaylist() | Create a playlist | POST /playlists/create
deletePlaylistById() | Delete a playlist by ID | DELETE /playlists/{id}
deletePlaylistThumbnail() | Delete a playlist thumbnail | DELETE /playlists/{id}/thumbnail
getPlaylistById() | Get playlist by ID | GET /playlists/{id}
getPlaylistPublicInfo() | Get a playlist public | GET /playlists/{id}/player.json
getPlaylists() | Get user's playlists | POST /playlists
moveVideoInPlaylist() | Move a video in a playlist | PUT /playlists/{id}/items
removeMediaFromPlaylist() | Remove a media from a playlist | DELETE /playlists/{id}/items/{item_id}
updatePlaylist() | Update a playlist | PATCH /playlists/{id}
UserApi
Method | Description | HTTP request
------------- | ------------- | -------------
GetMe() | Get me | GET /user/me
WebhookApi
Method | Description | HTTP request
------------- | ------------- | -------------
create() | Create webhook | POST /webhooks
get() | Get user's webhook by id | GET /webhooks/{id}
update() | Update event webhook | PATCH /webhooks/{id}
delete() | Delete webhook | DELETE /webhooks/{id}
list() | Get list webhooks | GET /webhooks
check() | Check webhook by id | POST /webhooks/check/{id}
Models
- AddMediaToPlaylistRequest
- AddPlayerThemesToVideoRequest
- ApiKey
- Asset
- AudioConfig
- Controls
- CreateApiKeyData
- CreateApiKeyRequest
- CreateApiKeyResponse
- CreateLiveStreamKeyRequest
- CreateLiveStreamKeyResponse
- CreateMediaCaptionData
- CreateMediaCaptionResponse
- CreateMediaChapterData
- CreateMediaChapterResponse
- CreateMediaRequest
- CreateMediaResponse
- CreatePlayerThemeRequest
- CreatePlayerThemesData
- CreatePlayerThemesResponse
- CreatePlaylistData
- CreatePlaylistRequest
- CreatePlaylistResponse
- CreateStreamingRequest
- CreateStreamingResponse
- CreateWebhookData
- CreateWebhookRequest
- CreateWebhookResponse
- DataUsage
- GetAggregatedMetricsResponse
- GetApiKeysData
- GetApiKeysResponse
- GetBreakdownMetricsRequest
- GetBreakdownMetricsResponse
- GetDataUsageResponse
- GetLiveStreamKeyData
- GetLiveStreamKeyResponse
- GetLiveStreamKeysListData
- GetLiveStreamKeysListResponse
- GetLiveStreamMediasRequest
- GetLiveStreamMediasResponse
- GetLiveStreamMulticastResponse
- GetLiveStreamStatisticResponse
- GetLiveStreamVideoPublicResponse
- GetLiveStreamVideoResponse
- GetMeResponse
- GetMediaCaptionsData
- GetMediaCaptionsResponse
- GetMediaChaptersData
- GetMediaChaptersResponse
- GetMediaDetailResponse
- GetMediaListData
- GetMediaListRequest
- GetMediaListResponse
- GetMediaPlayerInfoResponse
- GetOvertimeMetricsResponse
- GetPlayerThemeByIdData
- GetPlayerThemeByIdResponse
- GetPlayerThemeData
- GetPlayerThemeResponse
- GetPlaylistByIdData
- GetPlaylistByIdResponse
- GetPlaylistListData
- GetPlaylistListRequest
- GetPlaylistListResponse
- GetStatisticMediasResponse
- GetStreamingResponse
- GetStreamingsResponse
- GetTranscodeCostData
- GetTranscodeCostResponse
- GetUserData
- GetUserWebhookData
- GetUserWebhookResponse
- GetWebhooksListData
- GetWebhooksListResponse
- InternalControllersGetAggreatedMetricsMetricsRequest
- LiveStreamAssets
- LiveStreamKeyData
- LiveStreamMediaData
- LiveStreamMediaResponse
- LiveStreamMediasResponse
- LiveStreamMulticast
- LiveStreamStatisticResp
- Media
- MediaAssets
- MediaCaption
- MediaChapter
- Metadata
- MetricFilter
- MetricItem
- MetricsContext
- MoveVideoInPlaylistRequest
- PlayerTheme
- Playlist
- PlaylistItem
- PlaylistItemMedia
- PublicPlaylistObject
- QualityConfig
- QualityObject
- RemoveMediasFromPlaylistRequest
- RemovePlayerThemesFromMediaRequest
- RenameAPIKeyRequest
- RequestCreateCaption
- ResponseError
- ResponseSuccess
- Theme
- TimeFrame
- UpdateLiveStreamKeyData
- UpdateLiveStreamKeyRequest
- UpdateLiveStreamKeyResponse
- UpdateLiveStreamMediaRequest
- UpdateMediaInfoRequest
- UpdatePlayerThemeRequest
- UpdatePlayerThemeResponse
- UpdateWebhookRequest
- UploadLogoByIdResponse
- UpsertLiveStreamMulticastInput
- User
- VideoConfig
- VideoWatermark
- Webhook
Rate Limiting
AIOZ Stream implements rate limiting to ensure fair usage and stability of the service. The API provides the rate limit values in the response headers for any API requests you make.
In this Node.js client, you can access these headers by using the *WithResponseHeaders() versions of the methods. These methods return both the response body and the headers, allowing you to check the X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Retry-After headers to understand your current rate limit status.
Here is an example of how to use these methods:
const client = new StreamClient({
secretKey: "YOUR_SECRET_KEY",
publicKey: "YOUR_PUBLIC_KEY"
});
const { headers, body } = const webhook = await client.webhook.listWithResponseHeaders();Authorization
API key and public key
All endpoints required to be authenticated using the API key and public key mechanism described in our documentation.
All you have to do is provide an API key and public key when instantiating the StreamClient:
const client = new StreamClient({
secretKey: "YOUR_SECRET_KEY",
publicKey: "YOUR_PUBLIC_KEY"
});Have you gotten use from this API client?
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!
