NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2681 most downloaded on PyPI
Python 3 library for downloading YouTube Videos.
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 7 months
Some releases are documented
notes for 27 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
86 releases · first in 2014
Bump version: 14.0.0 → 15.0.0
Bump version: 14.0.0 → 15.0.0
Bump version: 12.1.2 → 12.1.3
Bump version: 12.1.2 → 12.1.3
Bump version: 12.1.1 → 12.1.2
Bump version: 12.1.1 → 12.1.2
One column per quarter.
Bump version: 12.1.0 → 12.1.1
Bump version: 12.1.0 → 12.1.1
Bump version: 12.0.0 → 12.1.0
Bump version: 12.0.0 → 12.1.0
Bump version: 11.0.2 → 12.0.0
Bump version: 11.0.2 → 12.0.0
Bump version: 11.0.1 → 11.0.2
Bump version: 11.0.1 → 11.0.2
Fixes RegexMatchError in n cipher
last_updated will now return the raw text if it can't parse a datetime (e.g. "X days ago")Search objects to WEB…attributes no longer exist, which could cause breaking changes in code bases that rely on those attributes, hence the major version release.
User InnerTube in place of get_video_info url
Added some additional base parameters for innertube requests.
Added Oauth support for innertube client
Add exception for age-restricted videos which can no longer be accessed without using auth.
Carved out and simplified code where possible due to API changes.
Added renderer catch -- fixes #1068
Additional channel name support for URL-encoded names.
Updated test mocks, removed region-locked test because that functionality no longer works.
Due to significant changes in how video info is accessed, certain YouTube object attributes no longer exist, which could cause breaking changes in code bases that rely on those attributes, hence the major version release.
Add catch for suggested search results; accounts for edge case of no views on result.
Add catch for suggested search results; accounts for edge case of no views on result.
Added exception handling for incorrect cached js files.
Now allows you to actually set filenames, instead of doing partial overrides to create safe filenames.
Innertube improvements, and skeleton code for future innertube work
Update mock so that stream raises HTTPError, rather than head, and simplified some other mocks.
Update mock so that stream raises HTTPError, rather than head, and simplified some other mocks.
pep8-naming updated, adding a new ignore
Removed special character from __author__ attribute.
Removed special character from author attribute.
Changed -v CLI arg to have a single setting, rather than multiple.
Add retry functionality for IncompleteRead errors.
Extract contentLength from info where possible.
Mock open in final streams test to prevent file from being written.
Exception handling for accessing titles of private videos.
Emulates the js player to calulate the value of n to prevent download slowdowns
Emulates the js player to calulate the value of n to prevent download slowdowns
Adds some additional debugging to HTMLParseErrors
Adds a helper for generating new html json files
Parser improvement
Improved support for additional channel URLs
get_video_info call to fix 404 issueFixes an issue where playlist lengths were not being cast to ints correctly for large playlists.
Implements an actual check for whether a video is a livestream, and raises an exception if it is.
Fixes the 404 issue by adding html5=1 as an additional query parameter to the get_video_info endpoint
Fixes the 404 issue by adding html5=1 as an additional query parameter to the get_video_info endpoint
Prepends the URL used with www. to avoid the redirect that occurs.
Added channel id and channel url properties to YouTube object.
Added channel id and channel url properties to YouTube object.
Added some metadata to playlist object:
Removes file write chunk size to improve performance.
Removes file write chunk size to improve performance.
Implements a Channel object for downloading videos from a YouTube channel.
Minor changes to the playlist class to make it more compatible to be subclassed.
.videos and .video_urls now behave just like iterable lists, but defer web requests.
Implements DeferredGeneratorList which converts generators to lazy list-like objects.
Now correctly raises non-timeout URLErrors instead of MaxRetriesExceeded
Defaults to a duration of 0.0s when 'dur' key is missing from XML subtitles.
Defaults to a duration of 0.0s when 'dur' key is missing from XML subtitles.
Consolidates some import lines to reduce clutter at top of files.
Adds network timeout and retries to stream.download() method
Removes the typing_extensions install requirement from setup.py, which was missed when it was previously "removed".
Defers web requests until they're actually necessary to fetch information
Defers web requests until they're actually necessary to fetch information
Adjusts tests to reflect changes to how web requests are made
Removes "defer_prefetch_init" arg from YouTube object initialization
Converted most attributes into caching properties to facilitate request deferring.
Added some documentation to uniqueify to explain its purpose.
Prefetching added to conftest to improve test speed
Added some setters for YouTube properties.
Some cosmetic README changes
Nothing published for this version
Fixes the issue where the transform_plan wasn't parsing correctly
Nothing published for this version
This release removes a number of functions that were previously part of the Playlist object, but were considered deprecated, and brought some of the c…
This release removes a number of functions that were previously part of the Playlist object, but were considered deprecated, and brought some of the components built for interacting with playlists in line with the coding style of the rest of the library.
Nothing published for this version
Improved unavailable video handling
Enhancements:
Bugfixes:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →