Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fetch update from upstream #1

Open
wants to merge 82 commits into
base: master
Choose a base branch
from
Open

Conversation

chanstev
Copy link
Owner

No description provided.

tfdahlin and others added 30 commits May 5, 2021 19:10
This should speed up downloads for most users to some extent.
* 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.
* Added channel id and channel url properties to YouTube object.

* Added some metadata to playlist object:
  - owner
  - owner_id
  - owner_url
  - description
  - length
  - views
* HTTP 404 Error fix by adding html5 parameter to get_video_info requests

* Add `www.` to URL to avoid redirect request.
* Implements an actual check for whether a video is a livestream, and raises an exception if it is.
* Fixes channel url matching for channels without canonical names.
* Docstring improvements

* Documentation for the channel object

* Additional metadata available from the channel object, with unit tests
* Adds support for additional channel URL patterns
* Temporary workaround for get_video_info issue by adding more parameters to `get_video_info` call.
* Adds functionality for interacting with certain endpoints of the innertube API.
* JS emulation for calculating n value for stream URLs to fix throttling issue.

* Made parser HTMLParseError more informative.

* Add support for bracket start to parser.

* Helper for auto-generating necessary json files.

* Removed test that no longer seems to work.
* Added search functionality.

* Added repr method to YouTube to make it more useful.

* Added some docstrings + comments for clarity.
* 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.
* Update mock so that stream raises HTTPError, rather than head, and simplified some other mocks.

* pep8-naming updated, adding a new ignore
* 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
* 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.
* Fixes RegexMatchError in n cipher
stark821 and others added 30 commits December 9, 2022 18:56
Adding list data type in addition to the existing str type to the 'res' and 'resolution' parameter of the filter() function of the StreamQuery class. This enables us to get streams with multiple resolutions in a single query.
`caption.json_captions` — Download and parse the "json3" caption tracks
`YouTube.from_id` — YouTube object with just the video id
Adding list data type to 'res' parameter of filter() function.
I managed to figure out why pytube suddenly dumped: The function find_object_from_startpoint in pytube parser.py failed to recognize regular expressions and ignore closing characters contained therein, resulting in incomplete code fragments being passed to downstream functions.
This fix enables find_object_from_startpoint to recognize and treat regular expressions correctly and restores the original cipher.py.
I have tested that the function find_object_from_startpoint works and returns complete functions, but have no idea how I could test if the mechanism to avoid throttling still works.
Integrate fix from last PR
remove 3.6 support (reached end-of-life)
Remove 3.6 support, add 3.10-3.11
add 3.10-3.11 support
Add code of conduct
fixed missing space in --ffmpeg and --audio help sections
Need to import `VideoUnavailable` exception.
remove 3.10 library since it sometimes gets confused for 3.1 by CI tool
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.