@aiozstream/nodejs-client
v1.0.11
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
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
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
removeVideoFromPlaylist() | Remove a video from a playlist | DELETE /playlists/{id}/items/{item_id}
updatePlaylist() | Update a playlist | PATCH /playlists/{id}
VideoApi
Method | Description | HTTP request
------------- | ------------- | -------------
create() | Create video object | POST /videos/create
update() | update video info | PATCH /videos/{id}
delete() | Delete video | DELETE /videos/{id}
uploadThumbnail() | Upload video thumbnail | POST /videos/{id}/thumbnail
deleteThumbnail() | Delete video thumbnail | DELETE /videos/{id}/thumbnail
createCaption() | Create a new video caption | POST /videos/{id}/captions/{lan}
deleteCaption() | Delete a video caption | DELETE /videos/{id}/captions/{lan}
getCaptions() | Get video captions | GET /videos/{id}/captions
getCost() | get video transcoding cost | GET /videos/cost
getDetail() | get video detail | GET /videos/{id}
getVideoList() | Get user videos list | POST /videos
getVideoPlayerInfo() | Get video object | GET /videos/{id}/player.json
setDefaultCaption() | Set default caption | PATCH /videos/{id}/captions/{lan}
uploadPart() | Upload part of video | POST /videos/{id}/part
uploadVideoComplete() | Get upload video when complete | GET /videos/{id}/complete
VideoChapterApi
Method | Description | HTTP request
------------- | ------------- | -------------
create() | Create a video chapter | POST /videos/{id}/chapters/{lan}
get() | Get video chapters | GET /videos/{id}/chapters
delete() | Delete a video chapter | DELETE /videos/{id}/chapters/{lan}
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
- AddPlayerThemesToVideoRequest
- AddVideoToPlaylistRequest
- ApiKey
- Asset
- AudioConfig
- Controls
- CreateApiKeyData
- CreateApiKeyRequest
- CreateApiKeyResponse
- CreateMediaRequest
- CreateMediaResponse
- CreatePlayerThemeRequest
- CreatePlayerThemesData
- CreatePlayerThemesResponse
- CreatePlaylistData
- CreatePlaylistRequest
- CreatePlaylistResponse
- CreateVideoCaptionData
- CreateVideoCaptionResponse
- CreateVideoChapterData
- CreateVideoChapterResponse
- CreateWebhookData
- CreateWebhookRequest
- CreateWebhookResponse
- GetApiKeysData
- GetApiKeysResponse
- GetPlayerThemeByIdData
- GetPlayerThemeByIdResponse
- GetPlayerThemeData
- GetPlayerThemeResponse
- GetPlaylistByIdData
- GetPlaylistByIdResponse
- GetPlaylistListData
- GetPlaylistListRequest
- GetPlaylistListResponse
- GetTranscodeCostData
- GetTranscodeCostResponse
- GetUserWebhookData
- GetUserWebhookResponse
- GetVideoCaptionsData
- GetVideoCaptionsResponse
- GetVideoChaptersData
- GetVideoChaptersResponse
- GetVideoDetailResponse
- GetVideoListData
- GetVideoListRequest
- GetVideoListResponse
- GetVideoPlayerInfoResponse
- GetWebhooksListData
- GetWebhooksListResponse
- Media
- Metadata
- MoveVideoInPlaylistRequest
- PlayerTheme
- Playlist
- PlaylistItem
- PlaylistItemMedia
- PublicPlaylistObject
- QualityConfig
- QualityObject
- RemovePlayerThemesFromMediaRequest
- RenameAPIKeyRequest
- RequestCreateCaption
- ResponseError
- ResponseSuccess
- Theme
- UpdatePlayerThemeRequest
- UpdatePlayerThemeResponse
- UpdateVideoInfoRequest
- UpdateWebhookRequest
- UploadLogoByIdResponse
- User
- VideoAssets
- VideoCaption
- VideoChapter
- 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!
