Releases: Athlon1600/youtube-downloader
v4.0.0
Refactored entire project to use type declarations everywhere. Because of that, the minimum supported PHP version is now
PHP 7.4.
Complete list of changes: 3.x...v4
High Impact Changes
- Removed
VideoDetails
class. We useVideoInfo
class in its place DownloadOptions::getVideoInfo()
will now returnVideoInfo
classAbstractModel
class has been renamed toJsonObject
PlayerResponseParser
class has been renamed toSignatureLinkParser
, and itsparseLinks
method has a different signature
Low Impact Changes
- removed
SplitStream
class - removed
DownloadOptions::getSplitFormats
method SignatureDecoder::parseFunctionName
andSignatureDecoder::parseFunctionCode
are protected methods now
v3.1.2
v3.1.1
v3.1.0
v3.0.2
v3.0.1
v2.1.2
v3.0.0 - New major release!
Lots of code refactoring with many breaking changes, but everything now is much easier to read and understand.
Some of the major changes:
-
Added a new php-curl-file-downloader dependency. Previous
Browser
class just duplicated a bunch of the same HTTP logic that I wrote for that library anyways. -
We're no longer passing arrays back and forth everywhere. That's just a bad programming practice in general. Most of those arrays are now objects. For example:
getDownloadLinks
method which used to return an array of links, now returns aDownloadOptions
object where each "option" is also an object (StreamFormat
). -
getDownloadLinks
now throws aYouTubeException
if something unexpected happens. Previously it just returned an empty array.
We will be using Exceptions a lot more instead of just returningfalse
ornull
as we were doing before. -
Youtube was renamed to YouTube (capitalized twice) everywhere, because that is just how YouTube itself does it:
https://developers.google.com/youtube/v3/code_samples/php
v2.1.1
- fixed a critical bug where video links were not returned due to improper parsing of
player_response
JS code that usually appears on/watch?v=XXX
page itself. - added an alternative way to parse such details for special cases. Solution provided by @julitroalves: #73 (comment)