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

[feature request] QUIC (http/3) and Brotli #1817

Closed
4 tasks done
ghost opened this issue Nov 27, 2021 · 3 comments
Closed
4 tasks done

[feature request] QUIC (http/3) and Brotli #1817

ghost opened this issue Nov 27, 2021 · 3 comments
Labels
enhancement New feature or request

Comments

@ghost
Copy link

ghost commented Nov 27, 2021

Checklist

Description

it seems that CURL has builds with QUIC support,
which could smooth out quirks and boost downloads stability (for YouTube and dozens more websites).

https://everything.curl.dev/http/http3
https://daniel.haxx.se/blog/2019/08/05/first-http-3-with-curl/

for now, it can be employed into yt-dlp with external downloader arguments such as
--http3-direct or --alt-svc altcache

wget has some early builds: https://github.com/MoofMonkey/quic-wget

aria2c not so much: rust-lang/rustup#2212

as for python (for the native downloader)
https://github.com/aiortc/aioquic
wraps around the newest openssl dev and provide a very convenient handling. it is pretty stable too.


you may opt-in to use QUIC and brotli by default, and it will make connections and downloads (especially when downloading a huge video)

product stability wise, integrating this into the product can really attract users, as the "next gen." file downloader. and I know I've mentioned it before, but multi-part downloading from YouTube with QUIC is extremely stable and provide proper 'range' in the response.

it is extremely safe and falls back to normal http/2 if it isn't possible. it is all high-level..

@ghost ghost added enhancement New feature or request triage Untriaged issue labels Nov 27, 2021
@pukkandan
Copy link
Member

Unless some extractor specifically needs it, we will wait atleast till either HTTP/3 standardization is complete or python starts supporting it natively

@pukkandan pukkandan removed the triage Untriaged issue label Dec 1, 2021
@Seirdy
Copy link

Seirdy commented Jan 18, 2022

This isn't something yt-dlp needs to implement. This is something that Python or external downloaders like aria2, wget, or axel should implement.

yt-dlp supports using cURL as an external downloader, and cURL can be built with support for HTTP/3 using Quiche or ngtcp2. cURL should automatically upgrade to HTTP/3 when available, perhaps by checking for the recently-introduced HTTPS/SVCB DNS records. If cURL doesn't do this already, maybe this could be an issue for cURL.

Perhaps this issue should be closed because it doesn't seem like something to be fixed in yt-dlp.

@ghost ghost closed this as completed Jan 19, 2022
@pukkandan
Copy link
Member

What?

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants