From 7ea2a51b8e69686da832522d30dc0f548daff5b5 Mon Sep 17 00:00:00 2001 From: AsymptotaX Date: Thu, 19 Mar 2026 17:41:25 +0100 Subject: [PATCH] perf: front-load youtube extractors in dispatch order --- youtube_dl/extractor/extractors.py | 37 ++++++++++++++++-------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 3da5f8020..9f15c03fa 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -1,6 +1,26 @@ # flake8: noqa from __future__ import unicode_literals +# Keep the YouTube extractor family near the top. URL dispatch is order +# sensitive, and the non-lazy path otherwise compiles and checks roughly 1200 +# unrelated regexes before reaching the most common site. +from .youtube import ( + YoutubeIE, + YoutubeFavouritesIE, + YoutubeHistoryIE, + YoutubeTabIE, + YoutubePlaylistIE, + YoutubeRecommendedIE, + YoutubeSearchDateIE, + YoutubeSearchIE, + YoutubeSearchURLIE, + YoutubeSubscriptionsIE, + YoutubeTruncatedIDIE, + YoutubeTruncatedURLIE, + YoutubeYtBeIE, + YoutubeYtUserIE, + YoutubeWatchLaterIE, +) from .abc import ( ABCIE, ABCIViewIE, @@ -1656,23 +1676,6 @@ from .youporn import ( ) from .yourporn import YourPornIE from .yourupload import YourUploadIE -from .youtube import ( - YoutubeIE, - YoutubeFavouritesIE, - YoutubeHistoryIE, - YoutubeTabIE, - YoutubePlaylistIE, - YoutubeRecommendedIE, - YoutubeSearchDateIE, - YoutubeSearchIE, - YoutubeSearchURLIE, - YoutubeSubscriptionsIE, - YoutubeTruncatedIDIE, - YoutubeTruncatedURLIE, - YoutubeYtBeIE, - YoutubeYtUserIE, - YoutubeWatchLaterIE, -) from .zapiks import ZapiksIE from .zattoo import ( BBVTVIE,