All notable changes to this project will be documented in this file.
- Fix API response parsing when token expires
- Add
isPublic
attribute on LiveStreams
- Add
isPublic
attribute on LiveStreams
- Fix null/missing values deserialization in player sessions
- Add User-Agent header in API requests
- Quick fix on video analytics
- Fix error on get video detail from liveStream record
- Quick fix to re-auth with API key when access token has expired
- Bump Unirest to minor version 3.11.03
- Replaced JSONObject.has() with !JSONObject.isNull()
- Allow objects in metadata values
- Changed CaptionClient.list() return value to Iterable to match other clients
- Changed Caption language type to Locale
- Fixed missing panoramic attribute in video serializer
- Fixed missing source attribute in video serializer
- Fixed bad caption list deserialization
- Upgraded to Unirest v3. Dependencies on JSONObject and JSONArray have been updated. More info here
- Large file upload (> 128MB) no longer creates temporary files. Reads a custom FileInputStream instead.
- QueryParams
liveStreamId
filter
- Video
mp4Support
property defaulting to true
- Missing
source.uri
in video response throws exception
- Valid
QueryParams.sortBy
parameter is not in query string (publishedAt
) QueryParams.sortOrder
parameter is not in query string
Player.language
unsupported API property
Client.account.get()
method (https://docs.api.video/5.1/account)
Client.players.deleteLogo()
method (https://docs.api.video/5.1/players/delete-logo)Client.chapters(videoId)
subclient (https://docs.api.video/5.1/chapters)
Video.updatedAt
property
Video.publishedAt
property type fromString
toCalendar
Info.loadedAt
property type fromString
toCalendar
Info.endedAt
property type fromString
toCalendar
PlayerSessionEvent.emittedAt
property type fromString
toCalendar
Client.videos.upload(String sourceInfo)
->Client.videos.upload(File file)
Client.videos.uploadThumbnail(Video video, String thumbnailSource)
->Client.videos.uploadThumbnail(Video video, File file)
Client.videos.uploadThumbnailWithTimecode(Video video, String timecode)
->Client.videos.uploadThumbnail(Video video, String timecode)
Client.liveStreams.uploadThumbnail(String liveStreamId, String thumbnailSource)
->Client.liveStreams.uploadThumbnail(String liveStreamId, File file)
Client.liveStreams.create(LiveStream liveStream)
->Client.liveStreams.create(LiveStreamInput liveStreamInput)
Client.players.uploadLogo(String playerId, String logoSource, String link)
->Client.players.uploadLogo(String playerId, File file, String link)
Client.captions.upload(String VideoId, String captionSource, String lang)
->Client.captions.upload(String VideoId, File file, String lang)
Client.videos.uploadThumbnail(Video video, File file)
->Client.videos.uploadThumbnail(Identifier videoId, File file)
Client.videos.updateThumbnail(Video video, String timecode)
->Client.videos.updateThumbnail(Identifier videoId, String timecode)
Client.videos.delete(Video video)
->Client.videos.delete(Identifier videoId)
Client.captions.updateDefault(String VideoId, String lang, boolean isDefault)
->Client.captions.update(String videoId, CaptionInput captionInput)
Client.captions.getAll(String VideoId)
->Client.captions.list(String videoId)
- Move UploadProgressListener to domain
- Rename sub-client interfaces to match implementations
- Use interfaces in Client
- Replace PageIterator references with Iterator in domain
- Replace Iterator with Iterable in domain interfaces