Changelog¶
All notable changes are kept track of in this file for use in creating release notes.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
Added¶
Official Python 3.14 Support. (9dfabc6)
Removed¶
Deprecated¶
Fixed¶
Changed¶
0.4.0 - 2025-01-06¶
BREAKING CHANGES. See Changed and Removed for details.
This Version Drops Python 3.8 Support
Added¶
API call
fetch_channel_from_handlethat fetches channel information using a channel handle instead of a channel id. (40470a9#diff-cbbc953-R394)API util
resolve_handlethat gets a channel id from a channel’s handle. (40470a9#diff-cbbc953-R581)Parameter
oauth_tokentoAsyncYoutubeAPIto authenticate using an OAuth2 token. (b7a188d#diff-cbbc953-R33)Parameter
authorisedtofetch_video()which prompts the return ofAuthorisedYoutubeVideoover aYoutubeVideo. (032e817)Exception
NoAuthwhich raises when neither an API key nor OAuth token is passed toAsyncYoutubeAPI. (b7a188d#diff-3f857ff)Exception
NoSessionwhich raises when performing an operation that needs anOAuth2Sessioninstance when there isn’t one. (9cf6422)Base Exception
AuthExceptionwhich is the base for authorisation related errors. (fedeb89#diff-3f857ff-R16)Base Exception
OAuth2Exceptionwhich is the base for OAuth2 related errors. (fedeb89#diff-3f857ff-R21)Parameter
max_itemsto all playlist item API calls. (90e1ad1)Parameter
use_oauthtoAsyncYoutubeAPIto prefer authenticating with OAuth2 over using an API key. (7ae3f3e#diff-cbbc953-R32)API call
fetch_subscriptionsand associated types that fetches the subscriptions a channel has. (53674e6, 48b0dd3)Video categories (api call and associated types). (9d60ec3, 455ec21)
Exception
InvalidTokenwhich raises when the OAuth token is invalid. (9190f66)AsyncYoutubeAPIclass-methodwith_authorisation_codewhich allows initialising using an OAuth2 authorisation code. (079797a)AsyncYoutubeAPIclass-methodwith_oauth_flow_generatorwhich automates the OAuth2 authorisation flow. (6aede33#diff-cbbc953-R69)Util
basic_html_page()that creates a html page forwith_oauth_flow_generator()to display. (80857bb)AsyncYoutubeAPIclass-methodgenerate_url_and_socketwhich returns an OAuth2 consent url and socket to be used withwith_authcode_receiverafter giving the user the consent url. (774a185#diff-cbbc953-R72)AsyncYoutubeAPIclass-methodwith_authcode_receiverwhich listens for an OAuth2 authentication code on the socket provided. (774a185#diff-cbbc953-R97)API call
fetch_youtube_regionsthat fetches regions listed by YouTube. (f39b0a5#diff-cbbc953-R951)API call
fetch_youtube_languagesthat fetches languages listed by YouTube. (f39b0a5#diff-cbbc953-R974)Enums for class
AuthorisedYoutubeVideo. (19944de)Class
OAuth2Sessionfor managing the current OAuth2 session. (baa7b9d)Function
refresh_sessionwhich refreshes the OAuth2 token for a session. (4e210fd)Checker function
is_expiredto classOAuth2Session. (3ce06f7)podcast_statusattribute toYoutubePlaylistand enum. (5c85d35)Enum
OAuth2Scopeand implementations intoAsyncYoutubeAPI.generate_url_and_socket(). (3bd435a)Attribute
has_paid_product_placementto classYoutubeVideo. (e012a58)Attribute
contains_synthetic_mediatoYoutubeVideoas a settable value when updating the instance. (10881c0#diff-7363042-R745)API call
update_videowhich can update metadata for a video. (4bfb5d1#cbbc953-R1250)Class
UseExistingand constantEXISTINGfor new update methods as an indicator to use the existing values. (4bfb5d1#diff-7363042-R2209)Util
use_existingwhich is used in update methods to determine if the existing value should be used. (4bfb5d1#diff-920c31e)Update method to
YoutubeVideo. (c2bbd8d)Quota usage is now kept track of per session and is accessible via
AsyncYoutubeAPI.quota_usage. (e8c42c8)Enum
CaptionFormatas a list of caption track formats supported by YouTube. (7e912bc)API method
download_caption()to download captions if you are the owner of the captions. (af49fe6)API method
save_caption()to download and save captions if you are the owner of the captions. (482ff7c)download()andsave()API methods toVideoCaption. (0e3c0ea)API method
set_video_thumbnail()which uploads and sets thumbnails for a video. (ce864de)set_thumbnnail()API method toAuthorisedYoutubeVideo. (b292720)Util
ensure_missing_keys(). See documentation for details. (088166f)API call
update_channel()which can update some metadata for a channel. (41c37d3)Update method to
YoutubeChannel. (2a4eb75)Methods to set the banner image of a channel. (15d2e26)
Options to set the width of a YouTube channel banner. (58856d7)
Methods, classes and exceptions for watermarks. (9c9126b)
Alias of
YoutubeChannel.custom_url:handle. (a5bcc67)Methods and classes for metadata on custom playlist cover images. (554ec4d)
Parameter
ignore_not_foundto methods that can take multiple items. (4ae024c)Methods to add items to playlists. (a307789)
Attribute
resource_idtoPlaylistItem. (a6becbd)Update method for
PlaylistItems. (99c854f)Update method for
Playlists. (ea250b6)Method to specify OAuth token type. (5f53155)
Method to fetch playlists created by a channel. (f38d271)
Method to fetch playlists owned by an authenticated user. (ba2b44c)
Method to fetch the channel owned by an authenticated user. (0f34669)
Documentation: New homepage added to pypi links. (601e763)
Documentation: Changelog added to pypi links. (2f9663c)
Documentation: Added readthedocs documentation. (too many commits to list)
Documentation: Added OAuth2 examples. (5dcbf3f, 890d8c7, ffdd5f1)
Documentation: Examples for setting video thumbnails, channel banners and watermarks. (62f6879)
Removed¶
Breaking: Python 3.8 support. (53c66cd)
Deprecated¶
Fixed¶
Outdated use of old attribute
banner_external_urlin channel example. (2a0c7bd)API keys in urls passed when after calling the api are always censored. (cbc1514)
Broken attributes of
AuthorisedYoutubeVideo. (b7a188d#diff-7363042)YoutubeChannel.likes_idreturning an invalid ID. (90e1ad1#diff-7363042-L1420)VideoStreamandAudioStreamraising errors when certain values weren’t set. (10881c0)HTTPExceptionraising its own error whenerror_dataisNone. (2b3b18a)Getting
file_nameinAuthorisedYoutubeVideofailing as it is sometimes not set. (eacf5cb)Documentation: Updated old instances of class names still in documentation. (e41fd3b)
Documentation: Formatting error in docstring for
exceptions.APITimeout. (9ac4776)Documentation: wrong term used in
YoutubeBanner. (e4ca4c3)
Changed¶
Breaking: Renamed attribute
_typetokindinfilters.SearchFilter. (7a60e71)Breaking:
PlaylistItem.idis now the actual item ID and the video ID is nowPlaylistItem.video_id. (d50d852)AsyncYoutubeAPIcan now raiseNoAuthif no API key or OAuth token is provided. (b7a188d#diff-cbbc953-R47)fetch_video()can now return a superclass ofYoutubeVideo:AuthorisedYoutubeVideo. (b7a188d#diff-cbbc953-R334)OAuth token is used if no API key is provided. (90e1ad1#diff-cbbc953-R92)
InvalidKeynow inherits from the new classAuthException. (fedeb89#diff-3f857ff-R174)YoutubeVideoattributemade_for_kidscan now beNone. (4bfb5d1#diff-7363042-L744)extract_video_idsupports all*.ytimg.comurls. (5cda291)Documentation:
__init__docstring included inAsyncYoutubeAPIclass. (3af95cd)
0.3.0 - 2024-10-12¶
BREAKING CHANGES. See Changed and Removed for details.
This Version Drops Python 3.7 Support
Added¶
Alias of
YoutubeThumbnail.resolution:YoutubeThumbnail.size. (7e10db5#diff-7363042-R35)Method to get the name of the highest resolution available. (7e10db5#diff-7363042-R65)
Property that returns the highest quality available thumbnail. (7e10db5#diff-7363042-R79)
Methods to download thumbnails. (31ed8ab)
Python 3.13 Support. (7b8f9ed#diff-50c86b7-R23)
Alias of the
highlight_urlattribute for bothYoutubeCommentandYoutubeComment:url. (c3baa03)3 Aliases of
YoutubeChannel.thumbnails:icon,pfpandavatar. (eb331c0)New ‘banner’ classes and methods simular to thumbnails, but for YouTube channel banners. (6f8ec58)
This changelog. (42e5289)
Alias of
utils.censor_key:censor_token. (1874580#diff-920c31e-R197)Basic Unit Tests. (689c84f)
Search Example. (e0678f0)
Documentation: Add additional badges to README.md. (fb06062)
Documentation: Documented the limitations of
YoutubeCommentattributes. (9eb2919)
Changed¶
Breaking: The equivalent of
YoutubeChannel.banner_external_urlis nowYoutubeChannel.banner_external.url. (6f8ec58#diff-7363042-L1408)Updated the description of this project. (2d0d274, 6d4bac0, 8caf94d)
Replaced instances of if-pass statements for simplified statements. (bff7763)
YoutubeThumbnailMetadata.availableis atuple. (7e10db5#diff-7363042-R56)Permit any http code returned from the API under 400. (5bb8a23)
Renamed
utils.censor_tokentocensor_key(1874580#diff-920c31e-L180)
Fixed¶
Documentation: Missing closing square bracket. (85678be)
Removed¶
Breaking: Python 3.7 support (7b8f9ed)
0.2.1 - 2024-02-13¶
BREAKING CHANGES. See Changed for details.
Added¶
Fixed¶
Changed¶
Breaking: Renamed
AsyncYoutubeApiback toAsyncYoutubeAPI. I will try not to change it again to keep things consistant (2806395)
0.2.0.post2 - 2023-11-26¶
BREAKING CHANGES. See Changed for details.
Added¶
Added call functions, classes and exceptions for channels, comments and captions. (d0111a0, 3a183ed, 186dcf8)
Added API search function. (b6e4f92#diff-cbbc953-R305)
Added new utils to extract comment and channel IDs from URLs. (3a183ed#diff-920c31e, 3a183ed#diff-0b0befd, 18973f6)
Added util to convert YouTube ids to integers. (83e6b9f, 28605f0)
Added utils to convert between camel case and snake case conventions. (2f5888c#diff-920c31e-R66, 85f8324)
Added util to convert keys in dictionary from camel case to snake case. (2f5888c#diff-920c31e-R76)
Added util to censor token in call URLs. (dbde429)
Added enums for multi-return type attributes. (c2330d7#diff-bb27b51)
Added special
SearchFilterclass for the new search function. (e6e17d2)Added enums for multi-arg type attributes for
SearchFilter. (c2330d7#diff-43ae858)
Changed¶
Breaking: Renamed
AsyncYoutubeAPItoAsyncYoutubeApi. (c2330d7#diff-cbbc953)Breaking: Renamed
get_playlist_metadata()tofetch_playlist(). (873c5a3#diff-cbbc953-L38, 192eceb#diff-cbbc953-L38)Breaking: Split
get_videos_from_playlist()intofetch_playlist_items()andfetch_playlist_videos(). (192eceb#diff-cbbc953-L85, 192eceb#diff-cbbc953-R164)Breaking: Renamed
get_video_metadata()tofetch_video(). (873c5a3#diff-cbbc953-L141)Breaking: Renamed
YoutubeVideoMetadatatoYoutubeVideo(873c5a3#diff-7363042-L415)Breaking: Renamed
PlaylistVideoMetadatatoPlaylistItem(873c5a3#diff-7363042-L713, 192eceb#diff-7363042-R713)Breaking: Renamed
YoutubePlaylistMetadatatoYoutubePlaylist(192eceb#diff-7363042-L855)All call functions use a single function to prevent duplicate code. (192eceb#diff-cbbc953-R39)
Some call functions support multiple IDs as arguments. (192eceb)
The api token query in the call_url is now censored. (b6e4f92#diff-cbbc953-R105)
Fixed¶
0.1.6 - 2023-09-13¶
Fixed¶
Chapter names no longer have a trailing set of brackets if they surrounded the timestamp (b22dcbe)
0.1.5 - 2023-08-07¶
Fixed¶
Fixed a bug where trailing spaces followed by trailing hyphens would not be stripped (c95fa11)
0.1.4 - 2023-07-20¶
Fixed¶
0.1.3 - 2023-07-18¶
Added¶
Added a list of test playlist urls to parse (417719c)
Added playlist id parsing (e5965da#diff-920c31e-R28)
Added chapter parsing with new
VideoChapterclass and other related helper functions (875c82d)
Changed¶
Reworked video id parsing with
urllib.parselibrary (e5965da#diff-920c31e-L1)Converted Some classes to dataclasses (875c82d)
Updated internal documentation (875c82d)
0.1.2 - 2023-06-17¶
Too old to list changes
0.1.1 - 2022-10-28¶
Too old to list changes
0.1.0 - 2022-05-26¶
Too old to list changes