From 8c6565295986b704f36a9174d05deacc6925b7e4 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Sat, 28 Jun 2025 15:56:44 +0200 Subject: fix(yt_dlp): Polyfill missing rustpython features used in urllib3 Otherwise, anything that depends on urllib3 just fails to initialize. --- crates/yt_dlp/src/options.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'crates/yt_dlp/src/options.rs') diff --git a/crates/yt_dlp/src/options.rs b/crates/yt_dlp/src/options.rs index 182b8a1..dc3c154 100644 --- a/crates/yt_dlp/src/options.rs +++ b/crates/yt_dlp/src/options.rs @@ -22,7 +22,8 @@ use rustpython::{ }; use crate::{ - YoutubeDL, json_loads, logging::setup_logging, post_processors, python_error::process_exception, + YoutubeDL, json_loads, logging::setup_logging, package_hacks, post_processors, + python_error::process_exception, }; /// Wrap your function with [`mk_python_function`]. @@ -138,6 +139,11 @@ impl YoutubeDL { let output_options = options.options.clone(); let (yt_dlp_module, youtube_dl_class) = match interpreter.enter(|vm| { + { + // Add missing (and required) values to the stdlib + package_hacks::urllib3::apply_hacks(vm)?; + } + let yt_dlp_module = vm.import("yt_dlp", 0)?; let class = yt_dlp_module.get_attr("YoutubeDL", vm)?; -- cgit 1.4.1