+
+
+
+
+ setQuery(e.target.value)}
+ placeholder={searchPlaceholder}
+ className="w-full rounded-lg border border-gray-200 dark:border-slate-700 bg-white dark:bg-slate-900 pl-9 pr-4 py-2.5 text-sm text-gray-900 dark:text-gray-50 outline-none focus:ring-2 focus:ring-violet-500"
+ />
+
+
+
+ {resultCountTemplate
+ .replace('{count}', String(filtered.length))
+ .replace('{total}', String(sites.length))}
+
+
+ {filtered.length === 0 ? (
+
{noResultsLabel}
+ ) : (
+
+ {grouped.map(([letter, names]) => (
+
+
{letter}
+
+ {names.map((name) => (
+
+ {name}
+
+ ))}
+
+
+ ))}
+
+ )}
+
+ )
+}
diff --git a/src/lib/supported-sites.ts b/src/lib/supported-sites.ts
new file mode 100644
index 0000000..65ac6d1
--- /dev/null
+++ b/src/lib/supported-sites.ts
@@ -0,0 +1,1383 @@
+// Generated from yt-dlp's extractor list. Regenerate if the site list needs updating.
+export const SUPPORTED_SITES: string[] = [
+ "10play",
+ "17live",
+ "1News",
+ "1tv",
+ "20min",
+ "23video",
+ "247sports",
+ "24tv.ua",
+ "3qsdn",
+ "3sat",
+ "4tube",
+ "56.com",
+ "7plus",
+ "9c9media",
+ "9gag",
+ "9News",
+ "9now.com.au",
+ "abc.net.au",
+ "abcnews",
+ "abcotvs",
+ "AbemaTV",
+ "AbemaTVTitle",
+ "AcademicEarth",
+ "acast",
+ "AcFunBangumi",
+ "AcFunVideo",
+ "ADN",
+ "ADNSeason",
+ "AdobeConnect",
+ "adobetv",
+ "AdultSwim",
+ "aenetworks",
+ "AeonCo",
+ "agalega",
+ "AitubeKZVideo",
+ "Alibaba",
+ "AliExpressLive",
+ "AlJazeera",
+ "Allocine",
+ "Allstar",
+ "AllstarProfile",
+ "AlphaPorno",
+ "altcensored",
+ "Alura",
+ "AluraCourse",
+ "AmadeusTV",
+ "Amara",
+ "AmazonMiniTV",
+ "amazonminitv",
+ "AmazonReviews",
+ "AmazonStore",
+ "AMCNetworks",
+ "AmericasTestKitchen",
+ "AmericasTestKitchenSeason",
+ "AmHistoryChannel",
+ "anderetijden",
+ "Angel",
+ "AnimalPlanet",
+ "ant1newsgr",
+ "antenna",
+ "Anvato",
+ "aol.com",
+ "APA",
+ "Aparat",
+ "apple",
+ "ApplePodcasts",
+ "archive.org",
+ "ArcPublishing",
+ "ARD",
+ "ARDAudiothek",
+ "ARDAudiothekPlaylist",
+ "ARDMediathek",
+ "ARDMediathekCollection",
+ "Art19",
+ "Art19Show",
+ "arte.sky.it",
+ "ArteTV",
+ "ArteTVCategory",
+ "ArteTVEmbed",
+ "ArteTVPlaylist",
+ "asobichannel",
+ "AsobiStage",
+ "AtresPlayer",
+ "AtScaleConfEvent",
+ "AudiMedia",
+ "AudioBoom",
+ "Audiodraft",
+ "audiomack",
+ "Audius",
+ "audius",
+ "AZMedien",
+ "BaiduVideo",
+ "BanBye",
+ "BanByeChannel",
+ "Bandcamp",
+ "Bandlab",
+ "BandlabPlaylist",
+ "BannedVideo",
+ "bbc",
+ "bbc.co.uk",
+ "BBVTV",
+ "BBVTVLive",
+ "BBVTVRecordings",
+ "BeaconTv",
+ "Beatport",
+ "Beeg",
+ "BehindKink",
+ "BerufeTV",
+ "Bet",
+ "bfi",
+ "bfmtv",
+ "bibeltv",
+ "Bigo",
+ "Bild",
+ "BiliBili",
+ "Bilibili category extractor",
+ "BilibiliAudio",
+ "BilibiliAudioAlbum",
+ "BiliBiliBangumi",
+ "BiliBiliBangumiMedia",
+ "BiliBiliBangumiSeason",
+ "BilibiliCheese",
+ "BilibiliCheeseSeason",
+ "BilibiliCollectionList",
+ "BiliBiliDynamic",
+ "BilibiliFavoritesList",
+ "BiliBiliPlayer",
+ "BilibiliPlaylist",
+ "BiliBiliSearch",
+ "BilibiliSeriesList",
+ "BilibiliSpaceAudio",
+ "BilibiliSpaceVideo",
+ "BilibiliWatchlater",
+ "BiliIntl",
+ "biliIntl",
+ "BiliLive",
+ "BioBioChileTV",
+ "Biography",
+ "BitChute",
+ "BitChuteChannel",
+ "Bitmovin",
+ "BlackboardCollaborate",
+ "BlackboardCollaborateLaunch",
+ "BleacherReport",
+ "BleacherReportCMS",
+ "blerp",
+ "blogger.com",
+ "Bloomberg",
+ "Bluesky",
+ "BongaCams",
+ "Boosty",
+ "BostonGlobe",
+ "Box",
+ "BoxCastVideo",
+ "Bpb",
+ "BR",
+ "BrainPOP",
+ "BrainPOPELL",
+ "BrainPOPEsp",
+ "BrainPOPFr",
+ "BrainPOPIl",
+ "BrainPOPJr",
+ "BravoTV",
+ "BreitBart",
+ "brightcove",
+ "Brilliantpala",
+ "bt",
+ "BTVPlus",
+ "Bundesliga",
+ "Bundestag",
+ "BunnyCdn",
+ "BusinessInsider",
+ "BuzzFeed",
+ "BYUtv",
+ "Caltrans",
+ "CAM4",
+ "CamFMEpisode",
+ "CamFMShow",
+ "CamModels",
+ "Camsoda",
+ "CamtasiaEmbed",
+ "Canal1",
+ "CanalAlpha",
+ "canalc2.tv",
+ "Canalplus",
+ "Canalsurmas",
+ "CaracolTvPlay",
+ "cbc.ca",
+ "CBS",
+ "CBSLocal",
+ "CBSLocalArticle",
+ "CBSLocalLive",
+ "cbsnews",
+ "cbssports",
+ "CCMA",
+ "CCTV",
+ "CDA",
+ "CDAFolder",
+ "Cellebrite",
+ "CeskaTelevize",
+ "CGTN",
+ "CharlieRose",
+ "Chaturbate",
+ "Chilloutzone",
+ "chzzk",
+ "cielotv.it",
+ "Cinemax",
+ "CinetecaMilano",
+ "Cineverse",
+ "CineverseDetails",
+ "CiscoLiveSearch",
+ "CiscoLiveSession",
+ "ciscowebex",
+ "CJSW",
+ "Clipchamp",
+ "ClipRs",
+ "CloserToTruth",
+ "CloudflareStream",
+ "CloudyCDN",
+ "Clubic",
+ "Clyp",
+ "CNBCVideo",
+ "CNN",
+ "CNNIndonesia",
+ "ComedyCentral",
+ "ConanClassic",
+ "CondeNast",
+ "CookingChannel",
+ "Corus",
+ "Coub",
+ "CozyTV",
+ "cp24",
+ "cpac",
+ "Cracked",
+ "Craftsy",
+ "croatian.film",
+ "CrooksAndLiars",
+ "CrowdBunker",
+ "CrowdBunkerChannel",
+ "Crtvg",
+ "CSpan",
+ "CSpanCongress",
+ "CtsNews",
+ "CTVNews",
+ "cu.ntv.co.jp",
+ "CultureUnplugged",
+ "curiositystream",
+ "Cybrary",
+ "CybraryCourse",
+ "DacastPlaylist",
+ "DacastVOD",
+ "DagelijkseKost",
+ "DailyMail",
+ "dailymotion",
+ "DailyWire",
+ "DailyWirePodcast",
+ "damtomo",
+ "dangalplay",
+ "daum.net",
+ "daystar",
+ "DBTV",
+ "DctpTv",
+ "democracynow",
+ "DestinationAmerica",
+ "DetikEmbed",
+ "DeuxM",
+ "DeuxMNews",
+ "DHM",
+ "DigitalConcertHall",
+ "DigitallySpeaking",
+ "Digiteka",
+ "Digiview",
+ "DiscogsReleasePlaylist",
+ "DiscoveryLife",
+ "DiscoveryNetworksDe",
+ "DiscoveryPlus",
+ "DiscoveryPlusIndia",
+ "DiscoveryPlusIndiaShow",
+ "DiscoveryPlusItaly",
+ "DiscoveryPlusItalyShow",
+ "Disney",
+ "dlf",
+ "dlive",
+ "Douyin",
+ "DouyuShow",
+ "DouyuTV",
+ "DPlay",
+ "DRBonanza",
+ "Dropbox",
+ "Dropout",
+ "DropoutSeason",
+ "DrTalks",
+ "DrTuber",
+ "drtv",
+ "DTube",
+ "Dumpert",
+ "Duoplay",
+ "dvtv",
+ "dw",
+ "dzen.ru",
+ "EbaumsWorld",
+ "Ebay",
+ "egghead",
+ "eggs",
+ "EinsUndEinsTV",
+ "EinsUndEinsTVLive",
+ "EinsUndEinsTVRecordings",
+ "ElementorEmbed",
+ "Elonet",
+ "ElPais",
+ "ElTreceTV",
+ "Embedly",
+ "EMPFlix",
+ "Epicon",
+ "EpiconSeries",
+ "EpidemicSound",
+ "eplus",
+ "Epoch",
+ "Eporner",
+ "Erocast",
+ "EroProfile",
+ "ERRArhiiv",
+ "ERRJupiter",
+ "ertflix",
+ "ertwebtv",
+ "ESPN",
+ "ESPNArticle",
+ "ESPNCricInfo",
+ "EttuTv",
+ "Europa",
+ "EuroParlWebstream",
+ "EuropeanTour",
+ "Eurosport",
+ "EUScreen",
+ "EWETV",
+ "EWETVLive",
+ "EWETVRecordings",
+ "Expressen",
+ "facebook",
+ "FacebookPluginsVideo",
+ "fancode",
+ "Fathom",
+ "Faulio",
+ "FaulioLive",
+ "faz.net",
+ "fc2",
+ "Fczenit",
+ "Fifa",
+ "FilmArchiv",
+ "filmon",
+ "Filmweb",
+ "FiveThirtyEight",
+ "FiveTV",
+ "Flickr",
+ "Floatplane",
+ "FloatplaneChannel",
+ "Folketinget",
+ "FoodNetwork",
+ "FootyRoom",
+ "Formula1",
+ "FOX",
+ "FOX9",
+ "FOX9News",
+ "foxnews",
+ "FoxNewsVideo",
+ "FoxSports",
+ "fptplay",
+ "FrancaisFacile",
+ "FranceCulture",
+ "franceinfo",
+ "francetv",
+ "Freesound",
+ "freespeech.org",
+ "freetv",
+ "FreeTvMovies",
+ "FrontendMasters",
+ "FrontendMastersCourse",
+ "FrontendMastersLesson",
+ "Funk",
+ "Funker530",
+ "Fux",
+ "FuyinTV",
+ "Gab",
+ "Gaia",
+ "GameDevTVDashboard",
+ "GameJolt",
+ "GameJoltCommunity",
+ "GameJoltGame",
+ "GameJoltGameSoundtrack",
+ "GameJoltSearch",
+ "GameJoltUser",
+ "GameSpot",
+ "GameStar",
+ "Gaskrank",
+ "Gazeta",
+ "GBNews",
+ "GDCVault",
+ "GediDigital",
+ "gem.cbc.ca",
+ "Genius",
+ "GeniusLyrics",
+ "Germanupa",
+ "GetCourseRu",
+ "GetCourseRuPlayer",
+ "Gettr",
+ "GettrStreaming",
+ "GiantBomb",
+ "GlattvisionTV",
+ "GlattvisionTVLive",
+ "GlattvisionTVRecordings",
+ "Glide",
+ "GlobalPlayerAudio",
+ "GlobalPlayerAudioEpisode",
+ "GlobalPlayerLive",
+ "GlobalPlayerLivePlaylist",
+ "GlobalPlayerVideo",
+ "Globo",
+ "GloboArticle",
+ "glomex",
+ "GMANetworkVideo",
+ "Go",
+ "GoDiscovery",
+ "GodResource",
+ "GodTube",
+ "Golem",
+ "goodgame",
+ "GoogleDrive",
+ "GoPro",
+ "GoToStage",
+ "Graspop",
+ "Gronkh",
+ "gronkh",
+ "Groupon",
+ "Harpodeon",
+ "hbo",
+ "HearThisAt",
+ "Heise",
+ "HellPorno",
+ "hetklokhuis",
+ "hgtv.com",
+ "HGTVDe",
+ "HGTVUsa",
+ "HiDive",
+ "HistoricFilms",
+ "history",
+ "HitRecord",
+ "HollywoodReporter",
+ "HollywoodReporterPlaylist",
+ "Holodex",
+ "HotNewHipHop",
+ "hotstar",
+ "hrfernsehen",
+ "HRTi",
+ "HRTiPlaylist",
+ "HSEProduct",
+ "HSEShow",
+ "html5",
+ "Huajiao",
+ "HuffPost",
+ "Hungama",
+ "HungamaAlbumPlaylist",
+ "HungamaSong",
+ "huya",
+ "Hypem",
+ "Hytale",
+ "Icareus",
+ "IdagioAlbum",
+ "IdagioPersonalPlaylist",
+ "IdagioPlaylist",
+ "IdagioRecording",
+ "IdagioTrack",
+ "iflix",
+ "IflixSeries",
+ "ign.com",
+ "IGNArticle",
+ "IGNVideo",
+ "iheartradio",
+ "IlPost",
+ "Iltalehti",
+ "imdb",
+ "Imgur",
+ "imgur",
+ "Ina",
+ "Inc",
+ "IndavideoEmbed",
+ "InfoQ",
+ "Instagram",
+ "instagram",
+ "InstagramIOS",
+ "Internazionale",
+ "InvestigationDiscovery",
+ "IPrima",
+ "IPrimaCNN",
+ "iq.com",
+ "iqiyi",
+ "IslamChannel",
+ "IslamChannelSeries",
+ "IsraelNationalNews",
+ "ITProTV",
+ "ITProTVCourse",
+ "ITV",
+ "ITVBTCC",
+ "ivi",
+ "ivideon",
+ "Ivoox",
+ "iwara",
+ "Ixigua",
+ "Jamendo",
+ "JamendoAlbum",
+ "JeuxVideo",
+ "jiosaavn",
+ "Joj",
+ "Jove",
+ "JStream",
+ "JTBC",
+ "JWPlatform",
+ "Kakao",
+ "Kaltura",
+ "KankaNews",
+ "Karaoketv",
+ "Katsomo",
+ "KelbyOne",
+ "Kenh14Playlist",
+ "Kenh14Video",
+ "khanacademy",
+ "kick",
+ "Kicker",
+ "KickStarter",
+ "Kika",
+ "KikaPlaylist",
+ "KinoPoisk",
+ "Kommunetv",
+ "KompasVideo",
+ "KrasView",
+ "KTH",
+ "Ku6",
+ "KukuluLive",
+ "kuwo",
+ "la7.it",
+ "laracasts",
+ "LastFM",
+ "LastFMPlaylist",
+ "LastFMUser",
+ "LaXarxaMes",
+ "lbry",
+ "LCI",
+ "Lcp",
+ "LcpPlay",
+ "Le",
+ "LearningOnScreen",
+ "Lecture2Go",
+ "Lecturio",
+ "LecturioCourse",
+ "LecturioDeCourse",
+ "LeFigaroVideoEmbed",
+ "LeFigaroVideoSection",
+ "LEGO",
+ "Lemonde",
+ "Lenta",
+ "LePlaylist",
+ "Libsyn",
+ "life",
+ "likee",
+ "LinkedIn",
+ "linkedin",
+ "Liputan6",
+ "ListenNotes",
+ "LiTV",
+ "LiveJournal",
+ "Livestreamfails",
+ "Lnk",
+ "loc",
+ "Locipo",
+ "LocipoPlaylist",
+ "Loco",
+ "loom",
+ "LoveHomePorn",
+ "LRTRadio",
+ "LRTStream",
+ "LRTVOD",
+ "LSMLREmbed",
+ "LSMLTVEmbed",
+ "LSMReplay",
+ "Lumni",
+ "maariv.co.il",
+ "MagellanTV",
+ "MagentaMusik",
+ "mailru",
+ "MainStreaming",
+ "mangomolo",
+ "MangoTV",
+ "ManyVids",
+ "MaoriTV",
+ "Markiza",
+ "MarkizaPage",
+ "massengeschmack.tv",
+ "Masters",
+ "MatchiTV",
+ "MatchTV",
+ "mave",
+ "MBN",
+ "MDR",
+ "MedalTV",
+ "media.ccc.de",
+ "Mediaite",
+ "MediaKlikk",
+ "Medialaan",
+ "Mediaset",
+ "MediasetShow",
+ "Mediasite",
+ "MediasiteCatalog",
+ "MediasiteNamedCatalog",
+ "MediaStream",
+ "MediaWorksNZVOD",
+ "Medici",
+ "megaphone.fm",
+ "megatvcom",
+ "Meipai",
+ "mellowfan",
+ "MelonVOD",
+ "Metacritic",
+ "mewatch",
+ "MicrosoftBuild",
+ "MicrosoftEmbed",
+ "MicrosoftLearnEpisode",
+ "MicrosoftLearnPlaylist",
+ "MicrosoftLearnSession",
+ "MicrosoftMedius",
+ "minds",
+ "mir24.tv",
+ "mirrativ",
+ "MirrorCoUK",
+ "mixch",
+ "mixcloud",
+ "Mixlr",
+ "MixlrRecoring",
+ "MLB",
+ "MLBArticle",
+ "MLBTV",
+ "MLBVideo",
+ "MLSSoccer",
+ "MNetTV",
+ "MNetTVLive",
+ "MNetTVRecordings",
+ "MochaVideo",
+ "Mojevideo",
+ "Monstercat",
+ "monstersiren",
+ "Motorsport",
+ "MovieFap",
+ "moviepilot",
+ "MovingImage",
+ "MSN",
+ "mtg",
+ "mtv",
+ "MTVUutisetArticle",
+ "MuenchenTV",
+ "MujRozhlas",
+ "Murrtube",
+ "MurrtubeUser",
+ "MuseAI",
+ "MuseScore",
+ "Mux",
+ "Mx3",
+ "Mx3Neo",
+ "Mx3Volksmusik",
+ "mxplayer",
+ "MySpace",
+ "MySpass",
+ "MyVideoGe",
+ "MyVidster",
+ "Mzaalo",
+ "n-tv.de",
+ "N1Info",
+ "N1InfoAsset",
+ "NascarClassics",
+ "Nate",
+ "NateProgram",
+ "NationalGeographicTV",
+ "Naver",
+ "nba",
+ "NBC",
+ "NBCNews",
+ "nbcolympics",
+ "NBCSports",
+ "NBCSportsStream",
+ "NBCSportsVPlayer",
+ "NBCStations",
+ "ndr",
+ "NDTV",
+ "nebula",
+ "NekoHacker",
+ "Nest",
+ "NestClip",
+ "NetAppCollection",
+ "NetAppVideo",
+ "netease",
+ "NetPlusTV",
+ "NetPlusTVLive",
+ "NetPlusTVRecordings",
+ "Netzkino",
+ "Newgrounds",
+ "NewsPicks",
+ "Newsy",
+ "Nexx",
+ "NexxEmbed",
+ "nfb",
+ "NFHSNetwork",
+ "nfl.com",
+ "NhkForSchoolBangumi",
+ "NhkForSchoolProgramList",
+ "NhkForSchoolSubject",
+ "NhkRadioNewsPage",
+ "NhkRadiru",
+ "NhkRadiruLive",
+ "NhkVod",
+ "NhkVodProgram",
+ "nhl.com",
+ "nick.com",
+ "niconico",
+ "NiconicoChannelPlus",
+ "NiconicoUser",
+ "nicovideo",
+ "NinaProtocol",
+ "Nintendo",
+ "Nitter",
+ "njoy",
+ "NobelPrize",
+ "NoicePodcast",
+ "NonkTube",
+ "NoodleMagazine",
+ "NOSNLArticle",
+ "Nova",
+ "NovaEmbed",
+ "NovaPlay",
+ "NowCanal",
+ "nowness",
+ "Noz",
+ "npo",
+ "npo.nl",
+ "Npr",
+ "NRK",
+ "NRKPlaylist",
+ "NRKRadioPodkast",
+ "NRKSkole",
+ "NRKTV",
+ "NRKTVDirekte",
+ "NRKTVEpisode",
+ "NRKTVEpisodes",
+ "NRKTVSeason",
+ "NRKTVSeries",
+ "NRLTV",
+ "nts.live",
+ "ntv.ru",
+ "NubilesPorn",
+ "Nuvid",
+ "NYTimes",
+ "NYTimesArticle",
+ "NYTimesCookingGuide",
+ "NYTimesCookingRecipe",
+ "nzherald",
+ "NZOnScreen",
+ "NZZ",
+ "ocw.mit.edu",
+ "Odnoklassniki",
+ "OfTV",
+ "OfTVPlaylist",
+ "OktoberfestTV",
+ "OlympicsReplay",
+ "Omnyfm",
+ "OmnyfmPlaylist",
+ "OmnyfmShow",
+ "on24",
+ "OnDemandChinaEpisode",
+ "OnDemandKorea",
+ "OnDemandKoreaProgram",
+ "OneFootball",
+ "OnePlacePodcast",
+ "onet.pl",
+ "onet.tv",
+ "OnetMVP",
+ "onsen",
+ "Opencast",
+ "OpencastPlaylist",
+ "orf",
+ "OsnatelTV",
+ "OsnatelTVLive",
+ "OsnatelTVRecordings",
+ "OutsideTV",
+ "OwnCloud",
+ "PacktPub",
+ "PacktPubCourse",
+ "PalcoMP3",
+ "PandaTv",
+ "Panopto",
+ "PanoptoList",
+ "PanoptoPlaylist",
+ "ParamountPressExpress",
+ "Parler",
+ "parliamentlive.tv",
+ "Parlview",
+ "parti",
+ "patreon",
+ "pbs",
+ "PBSKids",
+ "PearVideo",
+ "PeekVids",
+ "peer.tv",
+ "PeerTube",
+ "peloton",
+ "PerformGroup",
+ "periscope",
+ "PGATour",
+ "PhilharmonieDeParis",
+ "phoenix.de",
+ "Photobucket",
+ "PiaLive",
+ "Piapro",
+ "picarto",
+ "Piksel",
+ "Pinkbike",
+ "Pinterest",
+ "PinterestCollection",
+ "Platzi",
+ "PlatziCourse",
+ "play.tv",
+ "player.sky.it",
+ "PlayerFm",
+ "PlaySuisse",
+ "Playtvak",
+ "PlayVids",
+ "pluralsight",
+ "PlutoTV",
+ "PlyrEmbed",
+ "PodbayFM",
+ "PodbayFMChannel",
+ "Podchaser",
+ "podomatic",
+ "PokerGo",
+ "PokerGoCollection",
+ "PolsatGo",
+ "PolskieRadio",
+ "polskieradio",
+ "Popcorntimes",
+ "PopcornTV",
+ "Pornbox",
+ "PornerBros",
+ "PornFlip",
+ "PornHub",
+ "PornHubPagedVideoList",
+ "PornHubPlaylist",
+ "PornHubUser",
+ "PornHubUserVideosUpload",
+ "Pornotube",
+ "PornoVoisines",
+ "PornoXO",
+ "PornTop",
+ "PornTube",
+ "Pr0gramm",
+ "PrankCast",
+ "PrankCastPost",
+ "PremiershipRugby",
+ "PressTV",
+ "ProjectVeritas",
+ "PRXAccount",
+ "PRXSeries",
+ "prxseries",
+ "prxstories",
+ "PRXStory",
+ "puhutv",
+ "Pyvideo",
+ "QDance",
+ "QingTing",
+ "qqmusic",
+ "QuantumTV",
+ "QuantumTVLive",
+ "QuantumTVRecordings",
+ "R7",
+ "R7Article",
+ "Radiko",
+ "RadikoRadio",
+ "radio.de",
+ "Radio1Be",
+ "radiocanada",
+ "radiofrance",
+ "RadioFranceLive",
+ "RadioFrancePodcast",
+ "RadioFranceProfile",
+ "RadioFranceProgramSchedule",
+ "RadioJavan",
+ "radiokapital",
+ "RadioRadicale",
+ "RadioZetPodcast",
+ "radlive",
+ "Rai",
+ "RaiCultura",
+ "RaiNews",
+ "RaiPlay",
+ "RaiPlayLive",
+ "RaiPlayPlaylist",
+ "RaiPlaySound",
+ "RaiPlaySoundLive",
+ "RaiPlaySoundPlaylist",
+ "RaiSudtirol",
+ "RayWenderlich",
+ "RayWenderlichCourse",
+ "RbgTum",
+ "RbgTumCourse",
+ "RbgTumNewCourse",
+ "RCS",
+ "RCSEmbeds",
+ "RCSVarious",
+ "RCTIPlus",
+ "RCTIPlusSeries",
+ "RCTIPlusTV",
+ "RDS",
+ "RedBull",
+ "RedBullEmbed",
+ "RedBullTV",
+ "RedBullTVRrnContent",
+ "Reddit",
+ "RedGifs",
+ "RedGifsSearch",
+ "RedGifsUser",
+ "RedTube",
+ "RENTV",
+ "RENTVArticle",
+ "Restudy",
+ "Reuters",
+ "ReverbNation",
+ "RideHome",
+ "RinseFM",
+ "RinseFMArtistPlaylist",
+ "RockstarGames",
+ "Rokfin",
+ "rokfin",
+ "RoosterTeeth",
+ "RoosterTeethSeries",
+ "RottenTomatoes",
+ "RoyaLive",
+ "Rozhlas",
+ "RozhlasVltava",
+ "RTBF",
+ "RTDocumentry",
+ "RTDocumentryPlaylist",
+ "rte",
+ "rtl.lu",
+ "rtl.nl",
+ "rtl2",
+ "RTLLuLive",
+ "RTLLuRadio",
+ "RTNews",
+ "RTP",
+ "RTRFM",
+ "RTS",
+ "RTVCKaltura",
+ "RTVCPlay",
+ "RTVCPlayEmbed",
+ "rtve.es",
+ "rtvslo.si",
+ "RudoVideo",
+ "Rule34Video",
+ "Rumble",
+ "RumbleChannel",
+ "RumbleEmbed",
+ "Ruptly",
+ "rutube",
+ "Ruutu",
+ "Ruv",
+ "ruv.is",
+ "S4C",
+ "S4CSeries",
+ "safari",
+ "Saitosan",
+ "SAKTV",
+ "SAKTVLive",
+ "SAKTVRecordings",
+ "SaltTV",
+ "SaltTVLive",
+ "SaltTVRecordings",
+ "SampleFocus",
+ "Sangiin",
+ "Sapo",
+ "SaucePlus",
+ "SaucePlusChannel",
+ "SBS",
+ "sbs.co.kr",
+ "schooltv",
+ "ScienceChannel",
+ "Screen9",
+ "Screencast",
+ "Screencastify",
+ "ScreencastOMatic",
+ "ScreenRec",
+ "ScrippsNetworks",
+ "scrippsnetworks",
+ "Scrolller",
+ "sejm",
+ "Sen",
+ "SenalColombiaLive",
+ "senate.gov",
+ "Servus",
+ "Sexu",
+ "SeznamZpravy",
+ "SeznamZpravyArticle",
+ "Shahid",
+ "ShahidShow",
+ "SharePoint",
+ "ShemarooMe",
+ "Shiey",
+ "ShowRoomLive",
+ "ShugiinItvLive",
+ "ShugiinItvLiveRoom",
+ "ShugiinItvVod",
+ "SibnetEmbed",
+ "simplecast",
+ "Sina",
+ "Skeb",
+ "sky",
+ "sky.it",
+ "SkylineWebcams",
+ "skynewsarabia",
+ "SkyNewsAU",
+ "Slideshare",
+ "SlidesLive",
+ "Slutload",
+ "smotrim",
+ "SnapchatSpotlight",
+ "SoftWhiteUnderbelly",
+ "Sohu",
+ "SohuV",
+ "SonyLIV",
+ "SonyLIVSeries",
+ "soop",
+ "soundcloud",
+ "SoundcloudEmbed",
+ "soundgasm",
+ "southpark.cc.com",
+ "southpark.de",
+ "southpark.lat",
+ "southparkstudios.co.uk",
+ "southparkstudios.com.br",
+ "southparkstudios.nu",
+ "SovietsCloset",
+ "SovietsClosetPlaylist",
+ "SpankBang",
+ "SpankBangPlaylist",
+ "Spiegel",
+ "Sport5",
+ "SportBox",
+ "sporteurope",
+ "Spreaker",
+ "SpreakerShow",
+ "SproutVideo",
+ "sr",
+ "SRGSSR",
+ "SRGSSRPlay",
+ "StacommuLive",
+ "StacommuVOD",
+ "StagePlusVODConcert",
+ "startrek",
+ "startv",
+ "Steam",
+ "SteamCommunity",
+ "SteamCommunityBroadcast",
+ "StoryFire",
+ "StoryFireSeries",
+ "StoryFireUser",
+ "Streaks",
+ "Streamable",
+ "StreamCZ",
+ "StreetVoice",
+ "Stripchat",
+ "stv",
+ "stvr",
+ "Subsplash",
+ "subsplash",
+ "Substack",
+ "SunPorno",
+ "sverigesradio",
+ "svt",
+ "Syfy",
+ "SztvHu",
+ "t-online.de",
+ "Tagesschau",
+ "TapTapApp",
+ "TapTapAppIntl",
+ "TapTapMoment",
+ "TapTapPostIntl",
+ "tarangplus",
+ "Tass",
+ "TBS",
+ "TBSJPEpisode",
+ "TBSJPPlaylist",
+ "TBSJPProgram",
+ "Teachable",
+ "TeachableCourse",
+ "teachertube",
+ "TeachingChannel",
+ "Teamcoco",
+ "TeamTreeHouse",
+ "techtv.mit.edu",
+ "TedEmbed",
+ "TedPlaylist",
+ "TedSeries",
+ "TedTalk",
+ "Tele13",
+ "Tele5",
+ "TeleBruxelles",
+ "TelecaribePlay",
+ "Telecinco",
+ "Telegraaf",
+ "telegram",
+ "TeleMB",
+ "Telemundo",
+ "TeleQuebec",
+ "TeleQuebecEmission",
+ "TeleQuebecLive",
+ "TeleQuebecSquat",
+ "TeleQuebecVideo",
+ "TeleTask",
+ "Telewebion",
+ "TennisTV",
+ "TF1",
+ "TFO",
+ "theatercomplextown",
+ "TheChosen",
+ "TheChosenGroup",
+ "TheGuardianPodcast",
+ "TheGuardianPodcastPlaylist",
+ "TheHighWire",
+ "TheIntercept",
+ "ThePlatform",
+ "ThePlatformFeed",
+ "TheStar",
+ "TheSun",
+ "TheWeatherChannel",
+ "ThisAmericanLife",
+ "ThisOldHouse",
+ "ThisVid",
+ "ThisVidMember",
+ "ThisVidPlaylist",
+ "ThreeSpeak",
+ "ThreeSpeakUser",
+ "TikTok",
+ "tiktok",
+ "TLC",
+ "TMZ",
+ "TNAFlix",
+ "TNAFlixNetworkEmbed",
+ "toggle",
+ "toggo",
+ "tokfm",
+ "ToonGoggles",
+ "tou.tv",
+ "toutiao",
+ "Toypics",
+ "ToypicsUser",
+ "TravelChannel",
+ "TrtCocukVideo",
+ "TrtWorld",
+ "TrueID",
+ "TruNews",
+ "Truth",
+ "ttinglive",
+ "Tube8",
+ "TubeTuGraz",
+ "TubeTuGrazSeries",
+ "tubitv",
+ "Tumblr",
+ "tunein",
+ "tv.dfb.de",
+ "TV2",
+ "TV2Article",
+ "TV2DK",
+ "TV2DKBornholmPlay",
+ "tv2play.hu",
+ "tv2playseries.hu",
+ "TV4",
+ "TV5MONDE",
+ "tv5unis",
+ "tv8.it",
+ "TVANouvelles",
+ "TVANouvellesArticle",
+ "tvaplus",
+ "TVC",
+ "TVCArticle",
+ "TVer",
+ "tver",
+ "tvigle",
+ "TVIPlayer",
+ "TVN24",
+ "tvnoe",
+ "TVO",
+ "tvopengr",
+ "tvp",
+ "TVPlayHome",
+ "tvw",
+ "Tweakers",
+ "TwitCasting",
+ "TwitCastingLive",
+ "TwitCastingUser",
+ "twitch",
+ "twitter",
+ "Txxx",
+ "udemy",
+ "UDNEmbed",
+ "UFCTV",
+ "ukcolumn",
+ "UlizaPlayer",
+ "UlizaPortal",
+ "umg",
+ "Unistra",
+ "UnitedNationsWebTv",
+ "Unity",
+ "uol.com.br",
+ "uplynk",
+ "Urort",
+ "URPlay",
+ "USANetwork",
+ "USAToday",
+ "ustream",
+ "ustudio",
+ "Varzesh3",
+ "Vbox7",
+ "Veo",
+ "Vevo",
+ "VevoPlaylist",
+ "VGTV",
+ "vh1.com",
+ "vhx",
+ "vice",
+ "Viddler",
+ "Videa",
+ "video.arnes.si",
+ "video.google",
+ "video.sky.it",
+ "VideoKenPlayer",
+ "VideoPress",
+ "Vidflex",
+ "Vidio",
+ "VidioLive",
+ "VidioPremier",
+ "VidLii",
+ "Vidly",
+ "vids.io",
+ "Vidyard",
+ "viewlift",
+ "Viidea",
+ "vimeo",
+ "ViMP",
+ "Viously",
+ "Viqeo",
+ "Visir",
+ "Viu",
+ "viu",
+ "ViuOTTIndonesia",
+ "vk",
+ "VKPlay",
+ "VKPlayLive",
+ "vm.tiktok",
+ "Vocaroo",
+ "VODPlatform",
+ "voicy",
+ "volejtv",
+ "VoxMedia",
+ "VoxMediaVolume",
+ "vpro",
+ "vqq",
+ "vrsquare",
+ "VRT",
+ "vrtmax",
+ "VTM",
+ "VTV",
+ "VTVGo",
+ "VTXTV",
+ "VTXTVLive",
+ "VTXTVRecordings",
+ "Walla",
+ "WalyTV",
+ "WalyTVLive",
+ "WalyTVRecordings",
+ "washingtonpost",
+ "wat.tv",
+ "WatchESPN",
+ "WDR",
+ "WDRElefant",
+ "WDRPage",
+ "web.archive",
+ "Webcamerapl",
+ "Webcaster",
+ "WebcasterFeed",
+ "WebOfStories",
+ "WebOfStoriesPlaylist",
+ "Weibo",
+ "WeiboUser",
+ "WeiboVideo",
+ "WeiqiTV",
+ "wetv",
+ "WeTvSeries",
+ "Weverse",
+ "WeverseLive",
+ "WeverseLiveTab",
+ "WeverseMedia",
+ "WeverseMediaTab",
+ "WeverseMoment",
+ "WeVidi",
+ "whowatch",
+ "Whyp",
+ "wikimedia.org",
+ "Wimbledon",
+ "WimTV",
+ "WinSportsVideo",
+ "Wistia",
+ "WistiaChannel",
+ "WistiaPlaylist",
+ "wnl",
+ "wordpress",
+ "WorldStarHipHop",
+ "wppilot",
+ "wrestleuniverse",
+ "WSJ",
+ "WSJArticle",
+ "WWE",
+ "wyborcza",
+ "WyborczaPodcast",
+ "wykop",
+ "XboxClips",
+ "XHamster",
+ "XHamsterEmbed",
+ "XHamsterUser",
+ "XiaoHongShu",
+ "ximalaya",
+ "Xinpianchang",
+ "XMinus",
+ "XNXX",
+ "XVideos",
+ "xvideos",
+ "XXXYMovies",
+ "yahoo",
+ "YandexDisk",
+ "yandexmusic",
+ "YandexVideo",
+ "YandexVideoPreview",
+ "YapFiles",
+ "Yappy",
+ "YappyProfile",
+ "yfanefa",
+ "YleAreena",
+ "YouJizz",
+ "youku",
+ "YouNowChannel",
+ "YouNowLive",
+ "YouNowMoment",
+ "YouPorn",
+ "YouPornCategory",
+ "YouPornChannel",
+ "YouPornCollection",
+ "YouPornStar",
+ "YouPornTag",
+ "YouPornVideos",
+ "youtube",
+ "YoutubeLivestreamEmbed",
+ "YoutubeYtBe",
+ "Zaiko",
+ "ZaikoETicket",
+ "zan",
+ "Zapiks",
+ "Zattoo",
+ "ZattooLive",
+ "ZattooMovies",
+ "ZattooRecordings",
+ "zdf",
+ "ZeeNews",
+ "ZenPorn",
+ "ZetlandDKArticle",
+ "Zhihu",
+ "zingmp3",
+ "zoom",
+ "Zype"
+]