- Adaptation to YouTube API change (#510)
- Adaptation to YouTube API change (#507, #504)
- Adaptation to YouTube API change (#501)
- New
XCDYouTubeErrorUnknownerror code (#484, #491) - New
XCDYouTubeErrorTooManyRequestserror code (comment) - Improve error message for
XCDYouTubeErrorNoStreamAvailablecode - Remove platforms in Swift Package Manager (#496)
- Adaptation to YouTube API change. (#487)
- Add new
XCDYouTubeErrorEmptyResponseerror (#479) - Adaptation to YouTube API change. (a048776eb0d87de869c1636e244d78ffb311adc6)
- Deprecated
-[XCDYouTubeVideo thumbnailURL]use-[XCDYouTubeVideo thumbnailURLs](#477) - Exclude plist files from Swift Package Manager (#478)
- Annotate
languageIdentifierargument asnullableinXCDYouTubeVideoOperation - Add new
author,videoDescriptionandchannelIdentifierproperties toXCDYouTubeVideo(#471)
- Add the ability to specify which
streamURLsto query via-[XCDYouTubeClient queryVideo:video:streamURLsToQuery:options:cookies:completionHandler:]&XCDYouTubeVideoQueryOperationclass.initWithVideo:streamURLsToQuery:options:cookies:is now the designated initializer forXCDYouTubeVideoQueryOperation.
- Correctly annotate the
streamURLs&streamErrorsproperties asnullable.
-[XCDYouTubeClient queryVideo:video:cookies:completionHandler:]completion handler is now correctly called on the main thread.- Improved video querying to handle videos that have incomplete streams. (#456)
- Errors returned in
streamErrorsmay contain theNSLocalizedRecoverySuggestionErrorKeykey in-[NSError userInfo]whenNSURLErrorNetworkConnectionLostis reported, this may indicate the file is incomplete on YouTube's server. - Add logging to
XCDYouTubeVideoQueryOperationclass. - Improved
-[XCDYouTubeVideoQueryOperation description].
- Fixed issue that caused certain videos to return error (#468)
- Add the ability to query
XCDYouTubeVideofor reachable streams via-[XCDYouTubeClient queryVideo:video:cookies:completionHandler:]&XCDYouTubeVideoQueryOperationclass - Add new
videoIdentifiersproperty inXCDYouTubeVideo(#290)
- Add the ability to use custom regular expression patterns via
-[XCDYouTubeClient getVideoWithIdentifier:cookies:customPatterns:completionHandler:]&initWithVideoIdentifier:cookies:languageIdentifier:customPatterns(#463, #199) - Add new
viewCountproperty inXCDYouTubeVideo(#460) - Silence warning about deprecated implementation (#450)
- Adaptation to YouTube API change. (#458)
- Add new
streamURLproperty onXCDYouTubeVideo - Fixed Swift Package Manager (#441)
- Support iOS 13 in Demo Projects
- Support background playback (#427, #442)
- Adaptation to YouTube API change. (#447, #448, #449)
- Adaptation to YouTube API change.
- Deprecated
XCDYouTubeErrorRestrictedPlayback&XCDYouTubeErrorInvalidVideoIdentifieruseXCDYouTubeErrorNoStreamAvailableinstead.
- Deprecated
- Adaptation to YouTube API change. (#443)
- Add another player script regular expression (#438)
- Adaptation to YouTube API change. (#437)
- Adaptation to YouTube API change. (#433)
- Add the ability to fetch certain age-gate videos. (#431)
- Adaptation to YouTube API change. (#419, #422. #421)
- Fix JavaScript exception: ReferenceError (#418, #420)
- Adaptation to YouTube API change. (#417)
- Fixed Xcode project parsing error (#409, #411)
- Add the ability assign cookies via
-[XCDYouTubeClient getVideoWithIdentifier:cookies:completionHandler:]&initWithVideoIdentifier:cookies:languageIdentifier: - Add the ability to fetch videos allowed to be watched on youtube only (#315, #309)
- Deprecated
XCDYouTubeVideoPlayerViewController(#157) - Fixed internal JavaScript exception (#375, #397)
- Adaptation to YouTube API change. (#406)
- Adaptation to YouTube API change. (#383, #388, #385, #382)
- Include DASH formats URLs in
streamURLs. (#354) - Add new
autoGeneratedCaptionURLsandcaptionURLsproperties toXCDYouTubeVideo. (#281) - Fix
Messaging unqualified idwarnings. (#393) - Deprecated
smallThumbnailURL,mediumThumbnailURL,largeThumbnailURL. UsethumbnailURLinstead.
- Xcode 9 compatibility (#345, #347, #349)
- Adaptation to YouTube API change. (#314)
- Adaptation to YouTube API change. (#295, #296, #297)
- Upgrade deployment target to iOS 8.0 (macOS is still 10.9 and tvOS is still 9.0)
- Adaptation to YouTube API change. (#257)
- Ensure that all the streams are downloadable at full speed. (#177)
- Post the video notification after setting the movie player’s contentURL property. (#233)
- Fixed playback of some age restricted videos.
- Adaptation to YouTube API change. (#231)
- Fixed compilation issue with Xcode 7.3 beta. (#228)
- Properly annotated the
preferredVideoQualitiesproperty asnull_resettable.
- Logging is fully configurable with the new
XCDYouTubeLoggerclass. - Added
XCDYouTubeAllowedCountriesUserInfoKeyfor better diagnosis of some unplayable (geoblocked) videos. (#216)
- Fixed XCDYouTubeKit iOS Framework deployment target. (#223)
- Restored iOS deployment target to 7.0. (#220)
- Improved
-[XCDYouTubeVideo debugDescription]by sorting streams by itag. - Improved logging performance.
- Added the CFBundleVersion key in the Info.plist file for iTunes Connect validation. (#214)
- Support for tvOS. (#182)
- Replaced deprecated methods and classes: now using
NSURLSessioninstead ofNSURLConnectioninternally. (#190, #210) - Support for Objective-C generics where applicable.
- The
XCDYouTubeVideoOperationclass has changed back from a synchronous to an asynchronous operation and can be started on the main thread.
- Adaptation to YouTube API change. (#193, #194, #196, #197, #198, #202)
- Adaptation to YouTube API change. (#186)
- Improved Swift 2.0 interoperability. (#178)
- Raised deployment target to iOS 7.0 and OS X 10.9.
- Xcode 7 support.
- Nullability annotations.
- Fixed bitcode issue with CocoaPods integration. (#165, #173)
- Networking and parsing code is executed on a background thread for better performance. The
XCDYouTubeVideoOperationclass has changed from an asynchronous to a synchronous operation and must not be started on the main thread. (#147) - Logging support, see the README for documentation.
- Improved documentation.
- Adaptation to YouTube API change. (#144)
- Fixed playback of some protected videos. (#122)
- Fixed playback of some age restricted videos. (#137)
- Adaptation to YouTube API change. (#116)
- New
expirationDateproperty on theXCDYouTubeVideoclass. (#96) - Create proper (non generic) Xcode archives when integrated manually. (#102)
- Adaptation to YouTube API change. (#105)
- Fixed protected age restricted videos.
- Adaptation to YouTube API change. (#94)
- Support for age restricted videos.
- Project upgraded to Xcode 6.
- Fixed errors on protected videos. (#52)
- Better error reporting if a protected video is not available.
- Updated README about YouTube Terms of Service.
- Fixed crash on protected videos. (#46)
- Ensure that the video doesn’t disappear after locking the device. (#36)
- Demo app: do not crash when going to background very quickly after presenting a video. (#44)
- Project renamed to
XCDYouTubeKit. - Support for protected videos. (#6, #11, #12, #21, #27, #31, #33)
- OS X compatibility thanks to the new
XCDYouTubeClientclass. (#14, #18) - OS X dynamic framework target
- Support for live videos. (#34)
- Unit tested.
- Fully documented.
- Support for iOS 8 beta.
- Improved demo projects.
- New OS X demo project.
- New settings screen on iOS for background playback and audio session category.
- Demonstrates how to use the notifications to fill the Now Playing Info Center.
- Adaptation to YouTube API change. (#19)
- For errors of the
XCDYouTubeVideoErrorDomaindomain,-[NSError localizedDescription]is actually localized and doesn’t contain HTML tags, making it suitable for displaying to the user. - Setting the
preferredVideoQualitiesproperty to nil restores its default values. - Added some documentation in the XCDYouTubeVideoPlayerViewController header file.
- XCDYouTubeVideoPlayerViewController is built as a static library.
- Better demo project with one feature illustrated per view controller.
- iOS 7 compatible demo project.
- Video metadata information (thumbnails and title) is provided through
XCDYouTubeVideoPlayerViewControllerDidReceiveMetadataNotification. (#1) - Workaround a case where the status bar could disappear after the video ends playback. (#3)
- Error reporting is more accurate, especially for VEVO videos. (#6)
prepareToPlayis not automatically called, it’s the programmer responsibility to call it if appropriate.
- Initial version