- Update search playlists parsing due to yt changes.
- Implement >,<,== operators for
VideoResolution
.
- Deprecated
YoutubeApiClient.tvSimpleEmbedded
. - Improve JSEngine
- Better HLS support
- Re-implement sig deciphering.
- Implement HLS streams parsing.
- Add safari, tv, and androidVr yt clients.
- Implement small JSEngine to decipher stream signatures.
- Add channel thumbnails in search results. Thanks to BinaryQuantumSoul. #289
- Add
requireWatchPage
parameter togetManifest
to fetch streams without having to get the watchpage.
- Updated changelog.
- Implement
YoutubeApiClient
interface. - Add
ytClient
parameter toStreamClient.getManifest
. - Implement more youtube api clients, see
StreamClient.getManifest
documentation oryoutube_api_client.dart
for more information.
- Impersonate ios client to extract manifest.
- Fix video extraction. Thanks to @bigzhu #287.
- Implement
VideoClient.get
to fetch a list of related videos given another Video.
- Implement shorts filter. Thanks to @igormidev #269.
- Implement
AudioTrack
s inStreamInfo
to find the language of an audio track. - Added
fullManifest
optional parameter forStreamClient.getManifest
to fetch a manifest with more streams, including all the languages provided by YouTube. - Fix issue where 1440p videos would be detected as 144p.
- Fix endless loop with fetching some playlists.
- BREAKING CHANGE:
- In
getUploadsFromPage
: thevideoSorting
parameter is now a named parameter
- In
- Shorts filter possibility added in
getUploadsFromPage
.
- Fix issue when parsing dates formatted as "Streamed
ago" due to a leading whitespace. #265
- Better performance for iterating through closed captions elements. #251
- Add publishDate and viewCount for playlists. #240
- Fix fetching of YT music playlists. #261
- Fix like count extraction.
- Implement YT Handles.
- Deprecated ChannelLink icon's uri, they are no longer provided by YT.
- Remove unused left-over code.
- Linter fixes.
- BREAKING CHANGE: Required at least dart 3.00
- Fixes for dart3
- Deprecated:
BaseSearchContent
; now the search apis return a freezed union type instead of a common class. - Deprecated: Renamed methods of the
SearchPlaylist
class:playlistId
,playlistTitle
andplaylistVideoCount
are own namedid
,title
, andvideoCount
. - Fixes for violence age restricted videos.
- Replaced deprecated
XmlElement.text
toinnerText
. - Implemented common super class
BasePagedList
forCommentsList
,VideoSearchList
,ChannelUploadsList
andSearchList
. - Fix for some streams returning 403 status code.
- Fix fetching of restricted videos.
- Fix #231: Slow download speed.
- Fix #229: error when getting comments from a video with comments disabled. Not it returns null.
- Fix error when getting comments of a with no comments. Now it returns an empty list.
- Fix #228: error when getting videos from the uploads page.
- Fix #216 comments api.
- Export
BaseSearchContent
, thanks to @RubinRaithel. - Updated tests.
- Fix #207: Allow every character to be present in a username.
- Fix shorts. Thanks to @prateekmedia.
- Add raw upload date on Video model. Thanks to @Nikos Portolos.
- Fix null values for selected fields when parsing chanel uploads. Thanks to @Nikos Portolos.
- BREAKING CHANGE: Removed
SearchClient.getVideosFromPage
, useSearchClient.search
orSearchClient.search.search
. - BREAKING CHANGE:
SearchClient.search
now returnsVideoSearchList
(List - BREAKING CHANGE: Remove the
filter
variable, now useSearchFilter
. - To get the filters use static access on
FeatureFilters
,UploadDateFilter
,TypesFilter
,DurationFilters
,SortFilters
. - Introduced
SearchClient.searchContent
to search for videos, channels and playlists. - Introduced
SearchClient.searchRaw
to manually parse the content and also get related videos and estimated results. - Fix #197: Fixed
withHighestBitrate()
. - Introduced:
List<VideoStreamInfo>.bestQuality
.
- Fix #194: Now closed-captions allow malformed utf8 as well.
- Deprecated
withHighestBitrate()
in favour ofbestQuality
.
- Fix issue #136: Add
bannerUrl
getter forChannel
. - Fix
ChannelClient.getByUsername
foryoutube.com/c/XXXX
channels. - Fix issue #192: Make nullable ChannelAboutPage's properties.
- Fix issue #180: YouTube throttling videos. - Thanks to @itssidhere.
- Added the following aliases: yt.videos.streams (instead of yt.videos.streamsClient) and yt.videos.comments (instead of yt.videos.commentsClient)
- Re-add more test cases.
- Implement
.describe()
on List which prints a formatted list likeyoutube-dl -F
option. T - Fix muxed video extraction ( #172 )
- Better dis/likes video extraction.
- Fix tests.
- Remove debug leftovers.
- Fix the error of incomplete data loading on the Android emulator.
- Fix error when the http-client is closed and the request is still running.
- Fix extraction for DASH streams.
- Implement
Playlist.videoCount
.
- Export
CommentsList
class.
- Implement:
CommentsList.totalLength
(#150),Comment.isHearted
(#151).
- Fix infinite loop when getting channel uploads.
- Implement Embedded client. Thanks to @89z
- Better comments API: Implemented API to fetch more comments & replies.
- Fix issue #146: Closed Captions couldn't be extracted anymore.
- Code cleanup.
- Fix issue #144: get_video_info was removed from yt.
- Min sdk version now is 2.13.0
- BREAKING CHANGE: New comments API implementation.
- Close #139: Implement Channel.subscribersCount.
- Fix issue #134 (Error when getting the hls manifest from a livestream)
- Fix example
- Fix issue #131 (Cannot get publishDate or uploadDate)
- Fix issue #135 (Cannot use getUploadsFromPage on a channel with no uploads).
- Fix comment client.
- Fix issue #130 (ClosedCaptions)
- Temporary for issue #130
- Fix issue #126
- Fix
ChannelUploadsList
.
- Export
ChannelUploadsList
.
getUploadsFromPage
now returns an instance ofChannelUploadsList
.
- Fix
videoThumbnail
inChannelVideo
.
- Implement
videoThumbnail
inChannelVideo
.
- Implement
videoDuration
inChannelVideo
.
- Bug fixes (due to YouTube changes)
- Support nnbd (dart 1.12)
- New api:
getQuerySuggestions
: Returns the suggestions youtube provides while making a video search. - Now playlists with more than 100 videos return all the videos. Thanks to @ATiltedTree.
- Implemented
ChannelAboutPage
, check the tests their usage. - Implement filters for
search.getVideos
. Seefilter
getter. - Now video's from search queries return the channel id.
- Implemented publishDate for videos. Thanks to @mymikemiller , PR: #115.I t
- Fixed playlist client.
- Fixed search client.
search.getVideos
now returns aVideo
instance.- Implemented
SearchList
.
- Removed debug message
- Fixed playlists
search.getVideos
now returns aVideo
instance.
- Removed deprecation of
Video
. - Exported
SearchList
.
- Fix video search:
Now
getVideos
returnsSearchList
holding 20 videos.SearchList.nextPage()
can be called to get the next batch of videos.
- Fix auto translated closed captions ( #50 )
- Deprecated
autoGenerated
fromgetManifest
. - Added
autoGenerated
parameter tomanifest.getByLanguage(...)
- Fix slow download ( #92 )
- Fix stream retrieving on some videos ( #90 )
- Updates tests
- Fix exceptions on some videos.
- Closes #89, #88
- Export Closed Captions Members.
- Fix #86
ClosedCaptionTrackInfo
and it's members are now json serializable.
- BREAKING CHANGES:
ClosedCaptionManifest.getByLanguage
now returns a List. - New Enum-Like class:
ClosedCaptionFormat
, which holds all the available YouTube subtiles format. ClosedCaptionManifest.getByLanguage
now has a parameter namedformat
.ClosedCaptionClient.getManifest
now has a parameter namedautoGenerated
- Fix: #82, #83
- Bug fixes: #80
- Add thumbnail to
SearchVideo
thanks to @shinyford !
- BREAKING CHANGE: Renamed
getVideosAsync
togetVideos
. - Implemented
getVideosFromPage
which supersedesqueryFromPage
. - Implemented JSON Classes for reverse engineer.
- Added
forceWatchPage
to the video client to assure the fetching of the video page. (ATM useful only if using the comments api) - Remove adaptive streams. These are not used anymore.
- Implement
channelClient.getAboutPage
andgetAboutPageByUsername
to fetch data from a channel's about page.
- Fix extraction for same videos (#76)
- Fix Video Search: Tyrrrz/YoutubeExplode#438
- BREAKING CHANGE: Renamed
Container
class toStreamContainer
to avoid conflicting with FlutterContainer
. See #66
- Expose HttpClient in APIs
- Fix #55: Typo in README.md
- Fix #61: DartVM when the YouTube explode client is closed.
- Fix #59
- Implement for tests #47
- Better performance for VideoClient.get
- Fix Decipher error #53
- Fix decipherer
- Implement Container.toString()
- Bug fixes
- Implement
getUploadsFromPage
to a channel uploaded videos directly from the YouTube page.
- Add ChannelId property to Video class.
- Implement
thumbnails
for playlists. The playlist's thumbnail is the same as the thumbnail of its first video. If the playlist is empty, then this property isnull
. - Update for age restricted videos.
- Error handling when using
getStream
if the connection fails. If it fails more than 5 times on the same request the exception will be thrown anyways. - Caching of player source for 10 minutes.
- Minor caching changes.
- Implement caching of some results.
- Added api get youtube comments of a video.
- Fix duplicated bytes when downloading a stream. See #41
- Momentarily ignore
isRateLimited()
when getting streams.
- Fixed
SearchPage.nextPage
. - Added more tests.
- Improved documentation.
- Deprecated
StreamInfoExt.getHighestBitrate
, use list.sortByBitrate
. - Implemented
withHighestBitrate
andsortByBitrate
forStreamInfo
iterables. - Implemented
withHighestBitrate
forVideoStreamInfo
iterables. - Now
sortByVideoQuality
returns a List ofT
. SearchQuery.nextPage
now returns null if there is no next page.
- Implement parsing of the search page to retrieve information from youtube searches. See
SearchQuery
.
- Stable release
- Updated to v5 of YouTube Explode for C#
- Implement
SearchClient
. - Implement
VideoStreamInfoExtension
for Iterables. - Update
xml
dependency. - Fixed closed caption api.
- Fix video likes and dislikes count. #30
- Initial version, created by Stagehand
- Implement channel api
- Remove
dart:io
dependency.
- Fix #3 : Head request to ge the content length
- Fix error when getting videos without any keyword.
- Implement Search Api (
SearchExtension
)
- Implement Caption Api ('CaptionExtension`)
- Add Custom Exceptions
- Implement Video Purchase error
- Implement Equatable for models
- Downgrade xml to
^3.5.0
- Bug Fix(PR 11): Use url when retrieving the video's content length.
- Bug fix: Don't throw when captions are not present.
- New extension: CaptionListExtension adding
getByTime
function.
- New extension: DownloadExtension adding
downloadStream
function.
- Bug fix(#15): Fix invalid upload date.
- Bug fix(#15): Fix valid channel expression
- getChannelWatchPage and getVideoWatchPage methods are now public
- New method: getChannelIdFromVideo
- Workaround (#15): Now when a video is not available a
VideoUnavailable
exception is thrown - Removed disable_polymer parameter when requests ( Tyrrrz/YoutubeExplode#341 )
- Removed
dart:io
dependency
- When a video is not available(403) a
VideoStreamUnavailableException
- Fixed bug in #23