- Update types for Rev 7.61
- bump build dependencies
- Bugfix for multipart uploads with remote http resources - use
transfer-encoding: chunked
if incoming stream is compressed. - Transcription Uploads - extra checks to be sure that uploads have valid filenames/mimetypes
- Uploads now support more input types (see README.md)
- Upload options includes a
disableExternalResources
flag to avoid loading URLs or filepaths.
- Rev 7.60 features, including Webcast Banner endpoints
- Added
util.setPolyfills
to allow overriding thefetch
implementation used by this library. - Added
@vbrick/rev-client/node-fetch
entry point to explicly use thenode-fetch
polyfill (which is still used by default)
- Require Node.js 18 or above
- Changed how node.js polyfills are injected into the code. There's a slight chance this could change treeshaking behavior, particularly if still using commonjs
require
instead of ESMimport
. - Major version bump of
node-fetch
andfetch-blob
. RemovedAbortController
and FormData polyfills - The parsing/streaming behavior of multipart upload inputs (like
video.upload()
) has changed slightly, to avoid fully-loading large files into memory when possible. This only applies with non-Blob
inputs (filepath strings orReadableStream
inputs).
- fix
upload.presentationChapters
to point to correct entrypoint - minor typescript types updates
- Optimize downloading thumbnail when selecting by Video Id (
rev.video.downloadThumbnail({ videoId })
) - Add optional request options
options
parameter towebcast.list()
,webcast.details()
andwebcast.status()
- Add Rev 7.59 APIs
- typescript - Add missing Video Search
SortField
enum values
- fixed
Webcast.Status
type - (status
instead ofeventStatus
) - handle parsing of 400 error response on
webcast.attendees
endpoint
- Added rate limiting on Video View Report endpoint (default: 120/min)
- Change default keep alive interval to 10 minutes instead of 5 minutes. This value can be customized when setting the rev config:
const rev = new RevClient({
...
keepAliveInterval: 5 * 60 * 1000 // set keep alive interval to 5 minutes (in milliseconds)
})
- Add Rev 7.58 APIs
- added Video Replace method
upload.replaceVideo
- added Video Translate/Transcribe APIs
- added
video.setAudioLanguage
helper to set the language for the default audio track
- Fix bug when uploading files when using node.js and native fetch
user.details(usernameOrEmail, type)
has changed to pass in an object as second parameter (old method is still supported). Useuser.details(username, {lookupType: 'username'})
oruser.details(email, {lookupType: 'email'})
instead.
- Types only -
Video.Transcription
namespace moved to own namespaceTranscription
- Require node v18 or higher.
- Add Rev 7.56 + 7.57 APIs
- Add dynamic playlist API support
- Node.js - Add ability to set preference for a Web Stream
ReadableStream
or the NodeJSReadable
stream when usingresponseType: 'stream'
-- usually only used for video downloads. This is for future compatibility changes when shifting fromnode-fetch
to native nodejsfetch
as the default.
- Don't block transcription uploads if language isn't recognized
- webcast.pollResults: return array instead of {polls: array}
- Minify IIFE version for ~50Kb size savings
- Hardcode
RevError
classname to avoid mangling by build process
- Removed
RateLimitEnum
from main exports, which was only partially added in v0.16 - Make session rate limit queues non-enumerable
- Clean up top level exports
- In an upcoming major release this library will remove the
node-fetch
dependency in favor of node's built-in fetch functionality. The native fetch functionality is available now by using the@vbrick/rev-client/native-fetch
export.
- Added Video External Access endpoints
- Added User Details
status
property to TS types - Updated Video types with latest changes in Rev 7.56
- Bugfix in audit parsing of date ranges
- Add
entityId
into Audit response entries
- fix how audit endpoints pass parameters
-
Add rate limiting option. This feature is disabled by default - add by including
rateLimits: true
when initializingRevClient
. -
Add Get Users by Login API endpoint
rateLimit
now correctly handles limit options (perSecond
,perMinute
) that are less than 1. For example,{ perSecond: 0.5 }
will be interpreted as "once every 2 seconds". Previously it was interpreted as "2 every second". This only impacts code if you used theutils.rateLimit
function and specified a value less than 1.
accessToken
-based sessions now return correct response when callingverifySession()
- Add additional environment api.
- Add additional
publicOnly
option toRev.Credentials
- Add additional Guest Registration login option
- Add
webcast.playbackUrls()
to matchvideo.playbackUrls()
shape
- Deprecate
webcast.playbackUrl()
(usewebcast.playbackUrls()
instead)
- Correct
Video.Transcription
type definition
- Add optional
options
parameter to authentication API calls, to allow passing a customUser-Agent
/Authorization
headers. This may be needed if generating tokens server-side for use in the browser, where user agent mismatches can cause video playback issues. Also note that you can pass{ headers: { Authorization: '' } }
to not pass any existing authentication token. - Added
video.playbackUrls
endpoint (Get Video Playback URLS)
- Add
video.waitTranscode(videoId, options)
helper - this function simplifies the process of querying the [https://revdocs.vbrick.com/reference/getvideostatus](Get Video Status) API to check if a video has finished processing after upload. - Added
admin.featureSettings()
wrapper for the [https://revdocs.vbrick.com/reference/getvideofeatures-1](Get Video Feature Settings API) - Added
video.patch()
for calling the Video Patch API - export
Rev.FileUploadType
andRev.UploadFileOptions
to make typing uploads easier
admin.getRoleByName()
now prefers comparing against theroleType
value in the Get Roles API response, falling back to the Role Name (which is translated depending on user's language settings).- Role type's
name
field values changed to better reflect the actual response. The underlying typestring
did not change. utils.rateLimit()
's.abort()
helper in response now includes optionalmessage
anddispose
parameters.
- Fixed Chapter upload
- Avoid memory leaks when adding AbortSignal listeners.
- added
vtt
to mimetypes - fixed bug in setting content-type for non-video uploads
- Add user notification/subscription endpoints
- Add admin user location service and get expiration rules endpoints
- Other 7.51 / 7.52 endpoints and updates
- Stop a search request pager early if a page has zero results. This is a bugfix for the Get Guest Registration List API endpoint, but may impact other search results.
- bugs in new oauth2 endpoint support
- Add IIFE compiled version -
/dist/rev-client.iife.js
. Global name isrevClientLib
. Filename / global subject to change in future releases
- Added JWT, OAuth2 and Access Token (no credentials, just existing access token) credentials options
- Added
video.setCustomFied
to only update a single custom field value for a video - Added a
native-fetch
nodejs version that doesn't use polyfills (node-fetch / form-data). NOTE: There may be a negative performance impact for using node's built-infetch
implementation pre-node v20, especially on downloading video files. - Switched to tsup instead of rollup for bundling
- Bump dependencies
- Require node v16 or above
- some typescript types were corrected (for example video search date options like
fromUploadDate
only supportstring
, notDate | string
).
- Channel search results correction
- get video chapters was returning empty results
- minor typescript bugfixes
- Exports
utils.rateLimit
,utils.getExtensionForMime
andutils.getMimeForExtension
functions weren't exposed for the commonjs exports
- The Legacy OAuth API endpoints - which use API Key / Client ID plus Secret are deprecated in favor of the new OAuth2-compliant API endpoints, which use a PKCE login flow.
- Added more missing upload functions (i.e.
upload.thumbnail
,upload.chapters
) - Support passing
signal
to upload/download functions to abort early. - Added additional
utils
export.
- Namespaced some Typescript types, for example
Video.CommentRequest
becameVideo.Comment.Request
- Minor Typescript types cleanup
- Future releases will likely remove
commonjs
support for legacy node.js environments and move to ESM only. rev.webcasts
is deprecated. Userev.webcast
instead.
- Added
session
parameter to constructor to pass in token/expiration at initialization, as well assessionState
getter/setter onRevClient
to make re-using sessions easier - Added webcast -> GuestRegistration and admin -> WebcastField API methods
- Added webcast event summary fields introduced in Rev 7.45
- Added webcast registration fields endpoints
- Changed signature of OAuth functions to reduce chance of OAuth secret accidentally being exposed
- Changed
type
tomodule
for better webpack/browser support. - Changed the
session
parameter in the constructor to specify sessiontoken
/expiration
rather than undocumented method of settingIRevSession
implementation. rev.webcasts
was renamed torev.webcast
to match other api namespaces
- fix for OAuth
buildOAuthAuthenticateURL
in node.js. - fix for audit
audit.accountUsers
andaudit.user
methods
- Updated typescript for latest Rev (7.45) payloads.
- Upgraded to typescript 4.5
- Added
rev.video.migrate
,rev.video.chapters
,rev.video.comments
,rev.video.transcriptions
andrev.video.supplementalFiles
API endpoints - Added additional download APIs
- Updated typescript types to reflect latest Rev (7.44) request/response payloads
- Added video report API wrapper (
rev.video.report
) - Added
throwHttpErrors
options toRevClient.request()
to control if http error codes are treated as errors - Video Search option
onScrollExpired
deprecated in favor ofonError
rev.user.details
now accepts atype
parameter, replacingrev.user.getByUsername
andrev.user.getByEmail
- Added
rev.user.exists
helper to check if user exists
AbortError
no longer exported (intended as node.js-only polyfill)- Some typescript types re-arranged.
- some minor typescript type fixes
- refactor search request wrappers
Initial public release