diff --git a/API/HTTP.py b/API/HTTP.py index dcf1faf..7e07448 100644 --- a/API/HTTP.py +++ b/API/HTTP.py @@ -14,7 +14,8 @@ import sys import time import traceback import re -from typing import Optional, Dict, Any, Callable, BinaryIO, List, Iterable, Set +import os +from typing import Optional, Dict, Any, Callable, BinaryIO, List, Iterable, Set, Union from pathlib import Path from urllib.parse import unquote, urlparse, parse_qs import logging @@ -30,6 +31,116 @@ except Exception: # pragma: no cover - optional dependency logger = logging.getLogger(__name__) + +def _resolve_verify_value(verify_ssl: bool) -> Union[bool, str]: + """Return the httpx verify argument, preferring system-aware bundles. + + Order of precedence: + 1. If verify_ssl is not True (False or path), return it. + 2. Respect existing SSL_CERT_FILE env var if present. + 3. Prefer `pip_system_certs` if present and it exposes a bundle path. + 4. Prefer `certifi_win32`/similar helpers by invoking them and reading certifi.where(). + 5. Fall back to `certifi.where()` if available. + 6. Otherwise, return True to let httpx use system defaults. + """ + if verify_ssl is not True: + return verify_ssl + + env_cert = os.environ.get("SSL_CERT_FILE") + if env_cert: + return env_cert + + def _try_module_bundle(mod_name: str) -> Optional[str]: + try: + mod = __import__(mod_name) + except Exception: + return None + + # Common APIs that return a bundle path + for attr in ("where", "get_ca_bundle", "bundle_path", "get_bundle_path", "get_bundle"): + fn = getattr(mod, attr, None) + if callable(fn): + try: + res = fn() + if res: + return res + except Exception: + continue + elif isinstance(fn, str) and fn: + return fn + + # Some helpers (e.g., certifi_win32) expose an action to merge system certs + for call_attr in ("add_windows_store_certs", "add_system_certs", "merge_system_certs"): + fn = getattr(mod, call_attr, None) + if callable(fn): + try: + fn() + try: + import certifi as _certifi + + res = _certifi.where() + if res: + return res + except Exception: + pass + except Exception: + pass + return None + + # Prefer pip_system_certs if available + for mod_name in ("pip_system_certs",): + path = _try_module_bundle(mod_name) + if path: + try: + os.environ["SSL_CERT_FILE"] = path + except Exception: + pass + logger.info(f"SSL_CERT_FILE not set; using bundle from {mod_name}: {path}") + return path + + # Special-case helpers that merge system certs (eg. certifi_win32) + try: + import certifi_win32 as _cw # type: ignore + if hasattr(_cw, "add_windows_store_certs") and callable(_cw.add_windows_store_certs): + try: + _cw.add_windows_store_certs() + except Exception: + pass + try: + import certifi # type: ignore + + path = certifi.where() + if path: + try: + os.environ["SSL_CERT_FILE"] = path + except Exception: + pass + logger.info( + f"SSL_CERT_FILE not set; using certifi bundle after certifi_win32: {path}" + ) + return path + except Exception: + pass + except Exception: + pass + + # Fallback to certifi + try: + import certifi # type: ignore + + path = certifi.where() + if path: + try: + os.environ["SSL_CERT_FILE"] = path + except Exception: + pass + logger.info(f"SSL_CERT_FILE not set; using certifi bundle: {path}") + return path + except Exception: + pass + + return True + # Default configuration DEFAULT_TIMEOUT = 30.0 DEFAULT_RETRIES = 3 @@ -65,11 +176,13 @@ class HTTPClient: self.base_headers = headers or {} self._client: Optional[httpx.Client] = None + self._httpx_verify = _resolve_verify_value(verify_ssl) + def __enter__(self): """Context manager entry.""" self._client = httpx.Client( timeout=self.timeout, - verify=self.verify_ssl, + verify=self._httpx_verify, headers=self._get_headers(), ) return self @@ -351,6 +464,53 @@ class HTTPClient: logger.warning( f"Connection error on attempt {attempt + 1}/{self.retries}: {url} - {e}" ) + + # Detect certificate verification failures in the underlying error + msg = str(e or "").lower() + if ("certificate verify failed" in msg or "unable to get local issuer certificate" in msg): + logger.info("Certificate verification failed; attempting to retry with a system-aware CA bundle") + try: + import httpx as _httpx + # Use the client's precomputed verify argument (set at init) + verify_override = self._httpx_verify + with _httpx.Client(timeout=self.timeout, verify=verify_override, headers=self._get_headers()) as temp_client: + try: + response = temp_client.request(method, url, **kwargs) + if raise_for_status: + response.raise_for_status() + return response + except Exception as e2: + last_exception = e2 + except Exception: + # certifi/pip-system-certs/httpx not available; fall back to existing retry behavior + pass + + if attempt < self.retries - 1: + continue + except Exception as e: + # Catch-all to handle non-httpx exceptions that may represent + # certificate verification failures from underlying transports. + last_exception = e + logger.warning(f"Request exception on attempt {attempt + 1}/{self.retries}: {url} - {e}") + msg = str(e or "").lower() + if ("certificate verify failed" in msg or "unable to get local issuer certificate" in msg): + logger.info("Certificate verification failed; attempting to retry with a system-aware CA bundle") + try: + import httpx as _httpx + # Use the client's precomputed verify argument (set at init) + verify_override = self._httpx_verify + with _httpx.Client(timeout=self.timeout, verify=verify_override, headers=self._get_headers()) as temp_client: + try: + response = temp_client.request(method, url, **kwargs) + if raise_for_status: + response.raise_for_status() + return response + except Exception as e2: + last_exception = e2 + except Exception: + # certifi/pip-system-certs/httpx not available; fall back to existing retry behavior + pass + if attempt < self.retries - 1: continue @@ -761,12 +921,13 @@ class AsyncHTTPClient: self.verify_ssl = verify_ssl self.base_headers = headers or {} self._client: Optional[httpx.AsyncClient] = None + self._httpx_verify = _resolve_verify_value(verify_ssl) async def __aenter__(self): """Async context manager entry.""" self._client = httpx.AsyncClient( timeout=self.timeout, - verify=self.verify_ssl, + verify=self._httpx_verify, headers=self._get_headers(), ) return self diff --git a/API/data/alldebrid.json b/API/data/alldebrid.json index eabd64c..36560d5 100644 --- a/API/data/alldebrid.json +++ b/API/data/alldebrid.json @@ -1,2371 +1,18211 @@ { "status": "success", "data": { - "hosts": [ - "1fichier.com", - "megadl.fr", - "alterupload.com", - "cjoint.net", - "desfichiers.com", - "dfichiers.com", - "mesfichiers.org", - "piecejointe.net", - "pjointe.com", - "tenvoi.com", - "dl4free.com", - "rapidgator.net", - "rg.to", - "rapidgator.asia", - "turbobit.net", - "wayupload.com", - "turbobit.cloud", - "htfl.net", - "turbobit.cc", - "tourbobit.net", - "torbobit.net", - "turbo.to", - "turb.cc", - "turb.pw", - "hitf.cc", - "hitf.to", - "turbobif.com", - "turbobif.cc", - "turbobif.net", - "trbbt.net", - "trbt.cc", - "hitfile.net", - "hitfile.com", - "hitf.to", - "hitf.cc", - "htfl.net", - "htfl.to", - "htfl.cc", - "mega.co.nz", - "mega.nz", - "4shared.com", - "4s.io", - "9xupload.asia", - "9xupload.info", - "alfafile.net", - "alldebrid.com", - "clicknupload.click", - "clickndownload.cc", - "clickndownload.click", - "clickndownload.link", - "clickndownload.name", - "clickndownload.org", - "clickndownload.space", - "clickndownload.xyz", - "clicknupload.cc", - "clicknupload.club", - "clicknupload.co", - "clicknupload.download", - "clicknupload.link", - "clicknupload.name", - "clicknupload.one", - "clicknupload.online", - "clicknupload.org", - "clicknupload.red", - "clicknupload.site", - "clicknupload.space", - "clicknupload.to", - "clicknupload.vip", - "clicknupload.xyz", - "clipwatching.com", - "highstream.tv", - "dailyuploads.net", - "ddl.to", - "ddownload.com", - "dropapk.to", - "drop.download", - "dropgalaxy.in", - "dgdrive.pro", - "dgdrive.xyz", - "dgdrive.site", - "dgdrive.store", - "dropgalaxy.com", - "dropgalaxy.vip", - "example.com", - "example.net", - "exload.com", - "mixdrop.to", - "mixdrop.sx", - "fastbit.cc", - "file-upload.com", - "file-upload.org", - "file-upload.in", - "file-up.org", - "file.al", - "filedot.to", - "filedot.xyz", - "filedot.top", - "filefactory.com", - "filerio.in", - "filespace.com", - "filezip.cc", - "gigapeta.com", - "drive.google.com", - "hexupload.net", - "hexload.com", - "hot4share.com", - "indishare.me", - "indishare.org", - "indishare.info", - "isra.cloud", - "katfile.com", - "katfile.cloud", - "katfile.online", - "mediafire.com", - "mexashare.com", - "mx-sh.net", - "mexa.sh", - "mixdrop.co", - "mixdrop.to", - "mixdrop.sx", - "modsbase.com", - "mp4upload.com", - "prefiles.com", - "scribd.com", - "sendit.cloud", - "send.cm", - "send.now", - "sharemods.com", - "simfileshare.net", - "streamtape.com", - "upload42.com", - "uploadbank.com", - "uploadbox.io", - "uploadboy.com", - "uploader.link", - "uploadhaven.com", - "uploadrar.com", - "usersdrive.com", - "vev.io", - "thevideo.me", - "vidoza.net", - "vidoza.org", - "playvidto.com", - "vidtodo.com", - "vidto-do.com", - "widtodo.com", - "widtodo.com", - "world-files.com", - "upl.wf", - "worldbytez.com", - "worldbytez.net" - ], - "streams": [ - "dailymotion.com", - "geo.dailymotion.com", - "lequipe.fr", - "dai.ly", - "clips.twitch.tv", - "twitch.tv", - "m.twitch.tv", - "go.twitch.tv", - "player.twitch.tv", - "soundcloud.com", - "api.soundcloud.com", - "vimeo.com", - "player.vimeo.com", - "vimeopro.com", - "1news.co.nz", - "onenews.co.nz", - "1tv.ru", - "sport1tv.ru", - "playout.3qsdn.com", - "3sat.de", - "4tube.com", - "m.4tube.com", - "7plus.com.au", - "9news.com.au", - "9now.com.au", - "10.com.au", - "10play.com.au", - "17.live", - "20min.ch", - "video.twentythree.net", - "bonnier-publications-danmark.23video.com", - "24tv.ua", - "56.com", - "247sports.com", - "abc.net.au", - "iview.abc.net.au", - "abcnews.go.com", - "abc7news.com", - "6abc.com", - "abema.tv", - "abema.tv", - "acast.com", - "play.acast.com", - "shows.acast.com", - "embed.acast.com", - "acfun.cn", - "acfun.cn", - "animationdigitalnetwork.com", - "animationdigitalnetwork.com", - "video.tv.adobe.com", - "adultswim.com", - "watch.historyvault.com", - "historyvault.com", - "history.com", - "aetv.com", - "play.mylifetime.com", - "fyi.tv", - "mylifetime.com", - "watch.lifetimemovieclub.com", - "play.aetv.com", - "aeon.co", - "agalega.gal", - "air.tv", - "aitube.kz", - "alibaba.com", - "balkans.aljazeera.net", - "allocine.fr", - "allstar.gg", - "alsace20.tv", - "alsace20.tv", - "altcensored.com", - "cursos.alura.com.br", - "cursos.alura.com.br", - "amadeus.tv", - "amara.org", - "amazon.in", - "amazon.com", - "amazon.in", - "amazon.co.uk", - "amazon.in", - "amazon.com", - "amazon.es", - "amc.com", - "bbcamerica.com", - "wetv.com", - "ifc.com", - "sundancetv.com", - "americastestkitchen.com", - "cookscountry.com", - "cooksillustrated.com", - "ahctv.com", - "anchor.fm", - "anderetijden.nl", - "angel.com", - "animalplanet.com", - "ant1news.gr", - "antenna.gr", - "ant1news.gr", - "antenna.gr", - "aol.com", - "aol.ca", - "aol.co.uk", - "aol.de", - "aol.jp", - "uvp.apa.at", - "uvp-apapublisher.sf.apa.at", - "uvp-rma.sf.apa.at", - "uvp-kleinezeitung.sf.apa.at", - "aparat.com", - "music.apple.com", - "ent.appledaily.com.tw", - "appledaily.com.tw", - "podcasts.apple.com", - "trailers.apple.com", - "movietrailers.apple.com", - "archive.org", - "daserste.de", - "ardaudiothek.de", - "ardaudiothek.de", - "ardmediathek.de", - "beta.ardmediathek.de", - "ardmediathek.de", - "rss.art19.com", - "art19.com", - "art19.com", - "rss.art19.com", - "arte.sky.it", - "arte.tv", - "api.arte.tv", - "arte.tv", - "arte.tv", - "arte.tv", - "asobichannel.asobistore.jp", - "asobistage.asobistore.jp", - "atresplayer.com", - "atscaleconference.com", - "atv.at", - "audi-mediacenter.com", - "audioboom.com", - "nokiatune.audiodraft.com", - "vikinggrace.audiodraft.com", - "timferriss.audiodraft.com", - "audiodraft.com", - "audiomack.com", - "audius.co", - "dcndigital.ae", - "awaan.ae", - "axs.tv", - "tv.telezueri.ch", - "telebaern.tv", - "v.baidu.com", - "banbye.com", - "banbye.com", - "blazo.bandcamp.com", - "nightbringer.bandcamp.com", - "jstrecords.bandcamp.com", - "insulters.bandcamp.com", - "youtube-dl.bandcamp.com", - "benprunty.bandcamp.com", - "relapsealumni.bandcamp.com", - "diskotopia.bandcamp.com", - "adrianvonziegler.bandcamp.com", - "dotscale.bandcamp.com", - "nightcallofficial.bandcamp.com", - "steviasphere.bandcamp.com", - "coldworldofficial.bandcamp.com", - "nuclearwarnowproductions.bandcamp.com", - "bandcamp.com", - "bandlab.com", - "bandlab.com", - "banned.video", - "bbc.com", - "bbc.co.uk", - "bbcnewsd73hkzno2ini43t4gblxvycyac5aw4gnv7t2rccijh7745uqd.onion", - "bbcweb3hytmzhn5d532owbu6oqadra5z3ar726vq5kgwwn6aucdccrad.onion", - "bbc.co.uk", - "bbv-tv.net", - "bbv-tv.net", - "bbv-tv.net", - "beacon.tv", - "beatbump.ml", - "beatbump.io", - "beatbump.ml", - "beatbump.io", - "beatport.com", - "beeg.com", - "web.arbeitsagentur.de", - "bet.com", - "bfmtv.com", - "rmc.bfmtv.com", - "bibeltv.de", - "bigflix.com", - "bigo.tv", - "bild.de", - "bilibili.com", - "bilibili.com", - "bilibili.com", - "bilibili.com", - "bilibili.com", - "bilibili.com", - "bilibili.com", - "space.bilibili.com", - "t.bilibili.com", - "space.bilibili.com", - "bilibili.com", - "bilibili.com", - "space.bilibili.com", - "space.bilibili.com", - "space.bilibili.com", - "bilibili.com", - "bilibili.tv", - "biliintl.com", - "live.bilibili.com", - "tv.biobiochile.cl", - "biobiochile.cl", - "biography.com", - "bitchute.com", - "old.bitchute.com", - "bitchute.com", - "old.bitchute.com", - "streams.bitmovin.com", - "us-lti.bbcollab.com", - "eu.bbcollab.com", - "us.bbcollab.com", - "ca.bbcollab.com", - "au.bbcollab.com", - "au.bbcollab.com", - "us.bbcollab.com", - "eu.bbcollab.com", - "bleacherreport.com", - "bleacherreport.com", - "blerp.com", - "blogger.com", - "bloomberg.com", - "bsky.app", - "main.bsky.dev", - "union.bokecc.com", - "de.bongacams.com", - "cn.bongacams.com", - "de.bongacams.net", - "boosty.to", - "bostonglobe.com", - "mlssoccer.app.box.com", - "utexas.app.box.com", - "thejacksonlaboratory.ent.box.com", - "boxcast.tv", - "bpb.de", - "br.de", - "br-klassik.de", - "brainpop.com", - "ell.brainpop.com", - "esp.brainpop.com", - "fr.brainpop.com", - "il.brainpop.com", - "jr.brainpop.com", - "bravotv.com", - "oxygen.com", - "breitbart.com", - "c.brightcove.com", - "link.brightcove.com", - "players.brightcove.net", - "classes.brilliantpala.org", - "elearn.brilliantpala.org", - "bt.no", - "btvplus.bg", - "bundesliga.com", - "dbtg.tv", - "bundestag.de", - "iframe.mediadelivery.net", - "player.mediadelivery.net", - "uk.businessinsider.com", - "businessinsider.nl", - "businessinsider.com", - "buzzfeed.com", - "byutv.org", - "caffeine.tv", - "callin.com", - "camdemy.com", - "camdemy.com", - "camfm.co.uk", - "camfm.co.uk", - "cammodels.com", - "camsoda.com", - "canal1.com.co", - "noticias.canal1.com.co", - "canalalpha.ch", - "canalc2.tv", - "archives-canalc2.u-strasbg.fr", - "mycanal.fr", - "piwiplus.fr", - "canalsurmas.es", - "play.caracoltv.com", - "cbc.ca", - "cbs.com", - "colbertlateshow.com", - "cbsnews.com", - "cbsnews.com", - "cbsnews.com", - "cbsnews.com", - "cbssports.com", - "embed.247sports.com", - "3cat.cat", - "sports.cntv.cn", - "tv.cctv.com", - "english.cntv.cn", - "cctv.cntv.cn", - "ncpa-classic.com", - "news.cctv.com", - "ent.cntv.cn", - "tv.cntv.cn", - "cda.pl", - "ebd.cda.pl", - "cda.pl", - "cellebrite.com", - "ceskatelevize.cz", - "news.cgtn.com", - "charlierose.com", - "chaturbate.com", - "en.chaturbate.com", - "chaturbate.eu", - "chaturbate.global", - "chilloutzone.net", - "chzzk.naver.com", - "cielotv.it", - "cinemax.com", - "cinetecamilano.it", - "asiancrush.com", - "retrocrush.tv", - "retrocrush.tv", - "asiancrush.com", - "ciscolive.cisco.com", - "ciscolive.com", - "ciscolive.cisco.com", - "ciscolive.com", - "demosubdomain.webex.com", - "cjsw.com", - "clipchamp.com", - "closertotruth.com", - "embed.cloudflarestream.com", - "watch.cloudflarestream.com", - "cloudflarestream.com", - "embed.videodelivery.net", - "customer-aw5py76sw8wyqzmh.cloudflarestream.com", - "embed.cloudycdn.services", - "embed.backscreen.com", - "clubic.com", - "clyp.it", - "cnbc.com", - "cnn.com", - "edition.cnn.com", - "cnnespanol.cnn.com", - "cnnindonesia.com", - "cc.com", - "conanclassic.com", - "conan25.teamcoco.com", - "video.wired.com", - "video.gq.com", - "player.cnevids.com", - "vanityfair.com", - "player-backend.cnevids.com", - "contv.com", - "watch.cookingchanneltv.com", - "hgtv.ca", - "foodnetwork.ca", - "etcanada.com", - "history.ca", - "showcase.ca", - "bigbrothercanada.ca", - "seriesplus.com", - "disneychannel.ca", - "coub.com", - "c-cdn.coub.com", - "cozy.tv", - "cp24.com", - "cpac.ca", - "cracked.com", - "craftsy.com", - "embed.crooksandliars.com", - "crowdbunker.com", - "crowdbunker.com", - "crtvg.es", - "c-span.org", - "c-span.org", - "news.cts.com.tw", - "ctvnews.ca", - "barrie.ctvnews.ca", - "stox.ctvnews.ca", - "ottawa.ctvnews.ca", - "vancouverisland.ctvnews.ca", - "cu.ntv.co.jp", - "cultureunplugged.com", - "curiositystream.com", - "app.curiositystream.com", - "app.cybrary.it", - "app.cybrary.it", - "iframe.dacast.com", - "iframe.dacast.com", - "dagelijksekost.een.be", - "dailymail.co.uk", - "dailywire.com", - "dailywire.com", - "clubdam.com", - "dangalplay.com", - "tvpot.daum.net", - "m.tvpot.daum.net", - "videofarm.daum.net", - "player.daystar.tv", - "dagbladet.no", - "dctp.tv", - "democracynow.org", - "destinationamerica.com", - "2m.ma", - "2m.ma", - "dhm.de", - "digitalconcerthall.com", - "evt.dispeak.com", - "events.digitallyspeaking.com", - "sevt.dispeak.com", - "ultimedia.com", - "ladigitale.dev", - "discogs.com", - "discoverylife.com", - "dmax.de", - "tlc.de", - "discoveryplus.com", - "discoveryplus.in", - "discoveryplus.in", - "discoveryplus.com", - "discoveryplus.it", - "video.disney.com", - "starwars.com", - "videos.disneylatino.com", - "video.en.disneyme.com", - "video.disneyturkiye.com.tr", - "disneyjunior.disney.com", - "spiderman.marvelkids.com", - "disneyjunior.en.disneyme.com", - "disneychannel.de", - "deutschlandfunk.de", - "dlive.tv", - "douyin.com", - "v.douyu.com", - "vmobile.douyu.com", - "douyu.com", - "douyutv.com", - "dplay.se", - "dplay.dk", - "dplay.no", - "it.dplay.com", - "es.dplay.com", - "dplay.fi", - "dplay.jp", - "discoveryplus.se", - "discoveryplus.dk", - "discoveryplus.no", - "discoveryplus.it", - "discoveryplus.es", - "discoveryplus.fi", - "drooble.com", - "dropbox.com", - "watch.dropout.tv", - "watch.dropout.tv", - "drtalks.com", - "drtuber.com", - "m.drtuber.com", - "dr.dk", - "dr-massive.com", - "w.duboku.io", - "dumpert.nl", - "legacy.dumpert.nl", - "duoplay.ee", - "video.aktualne.cz", - "dw.com", - "zen.yandex.ru", - "dzen.ru", - "ebay.com", - "egghead.io", - "app.egghead.io", - "eggs.mu", - "1und1.tv", - "1und1.tv", - "1und1.tv", - "elonet.finna.fi", - "blogs.elpais.com", - "elcomidista.elpais.com", - "elpais.com", - "epv.elpais.com", - "eltrecetv.com.ar", - "cdn.embedly.com", - "empflix.com", - "epicon.in", - "epicon.in", - "epidemicsound.com", - "live.eplus.jp", - "theepochtimes.com", - "eporner.com", - "erocast.me", - "eroprofile.com", - "jupiter.err.ee", - "jupiterpluss.err.ee", - "lasteekraan.err.ee", - "ertflix.gr", - "ert.gr", - "espn.go.com", - "broadband.espn.go.com", - "nonredline.sports.espn.go.com", - "cdn.espn.go.com", - "espn.com", - "espnfc.us", - "espnfc.com", - "espn.go.com", - "espncricinfo.com", - "ettu.tv", - "ec.europa.eu", - "multimedia.europarl.europa.eu", - "europeantour.com", - "eurosport.com", - "eurosport.de", - "eurosport.dk", - "eurosport.nl", - "eurosport.es", - "eurosport.fr", - "eurosport.it", - "eurosport.hu", - "eurosport.no", - "eurosport.ro", - "eurosport.com.tr", - "eurosport.tvn24.pl", - "euscreen.eu", - "tvonline.ewe.de", - "tvonline.ewe.de", - "tvonline.ewe.de", - "expressen.se", - "di.se", - "facebook.com", - "es-la.facebook.com", - "m.facebook.com", - "zh-hk.facebook.com", - "facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion", - "facebook.com", - "fancode.com", - "fathom.video", - "aloula.sba.sa", - "bahry.com", - "maraya.sba.net.ae", - "sat7plus.org", - "aloula.sba.sa", - "bahry.com", - "maraya.sba.net.ae", - "sat7plus.org", - "faz.net", - "video.fc2.com", - "live.fc2.com", - "fifa.com", - "filmon.com", - "5-tv.ru", - "floatplane.com", - "beta.floatplane.com", - "floatplane.com", - "beta.floatplane.com", - "watch.foodnetwork.com", - "footyroom.com", - "fox.com", - "foxsports.com", - "foxnews.com", - "insider.foxnews.com", - "video.foxnews.com", - "video.insider.foxnews.com", - "video.foxbusiness.com", - "foxnews.com", - "foxsports.com", - "fptplay.vn", - "francaisfacile.rfi.fr", - "radiofrance.fr", - "france.tv", - "mobile.france.tv", - "francetvinfo.fr", - "france3-regions.francetvinfo.fr", - "freetv.com", - "freetv.com", - "api.frontendmasters.com", - "fod.fujitv.co.jp", - "funk.net", - "play.funk.net", - "funker530.com", - "fux.com", - "fuyin.tv", - "gab.com", - "tv.gab.com", - "gaia.com", - "gamedev.tv", - "gamejolt.com", - "gamejolt.com", - "gamejolt.com", - "gamejolt.com", - "gamejolt.com", - "gamejolt.com", - "gamespot.com", - "gamestar.de", - "gamepro.de", - "gaskrank.tv", - "gazeta.ru", - "gbnews.com", - "gbnews.uk", - "gdcvault.com", - "video.lastampa.it", - "video.huffingtonpost.it", - "video.espresso.repubblica.it", - "video.repubblica.it", - "video.ilsecoloxix.it", - "video.iltirreno.gelocal.it", - "video.messaggeroveneto.gelocal.it", - "video.ilpiccolo.gelocal.it", - "video.gazzettadimantova.gelocal.it", - "video.mattinopadova.gelocal.it", - "video.laprovinciapavese.gelocal.it", - "video.tribunatreviso.gelocal.it", - "video.nuovavenezia.gelocal.it", - "video.gazzettadimodena.gelocal.it", - "video.lanuovaferrara.gelocal.it", - "video.corrierealpi.gelocal.it", - "video.lasentinella.gelocal.it", - "gem.cbc.ca", - "genius.com", - "genius.com", - "germanupa.de", - "academymel.online", - "academymel.getcourse.ru", - "manibeauty.getcourse.ru", - "gaismasmandalas.getcourse.io", - "player02.getcourse.ru", - "cf-api-2.vhcdn.com", - "gettr.com", - "gettr.com", - "giantbomb.com", - "iptv.glattvision.ch", - "iptv.glattvision.ch", - "iptv.glattvision.ch", - "globalplayer.com", - "globalplayer.com", - "globalplayer.com", - "globalplayer.com", - "globalplayer.com", - "globoplay.globo.com", - "g1.globo.com", - "gq.globo.com", - "gshow.globo.com", - "oglobo.globo.com", - "ge.globo.com", - "redeglobo.globo.com", - "player.glomex.com", - "video.glomex.com", - "gmanetwork.com", - "abc.com", - "disneynow.com", - "fxnow.fxnetworks.com", - "freeform.com", - "nationalgeographic.com", - "go.discovery.com", - "discovery.com", - "new.godresource.com", - "godtube.com", - "gofile.io", - "goodgame.ru", - "drive.google.com", - "drive.usercontent.google.com", - "gopro.com", - "gotostage.com", - "vod.graspop.be", - "gronkh.tv", - "harpodeon.com", - "hearthis.at", - "heise.de", - "hellporno.com", - "hellporno.net", - "hgtv.com", - "de.hgtv.com", - "watch.hgtv.com", - "hidive.com", - "history.com", - "hkedcity.net", - "hollywoodreporter.com", - "hollywoodreporter.com", - "holodex.net", - "staging.holodex.net", - "hotstar.com", - "hessenschau.de", - "hr-fernsehen.de", - "hrti.hrt.hr", - "hrti.hrt.hr", - "hse.de", - "hse.de", - "hungama.com", - "un.hungama.com", - "hungama.com", - "un.hungama.com", - "hungama.com", - "un.hungama.com", - "huya.com", - "hytale.com", - "helsinkikanava.fi", - "suite.icareus.com", - "asahitv.fi", - "hyvinvointitv.fi", - "inez.fi", - "permanto.fi", - "videos.minifiddlers.org", - "app.idagio.com", - "app.idagio.com", - "app.idagio.com", - "app.idagio.com", - "app.idagio.com", - "idolplus.com", - "iflix.com", - "iflix.com", - "ign.com", - "pcmag.com", - "me.ign.com", - "ign.com", - "me.ign.com", - "adria.ign.com", - "kr.ign.com", - "iheart.com", - "iheartpodcastnetwork.com", - "ilpost.it", - "iltalehti.fi", - "imdb.com", - "imgur.com", - "i.imgur.com", - "ina.fr", - "m.ina.fr", - "inc.com", - "indavideo.hu", - "embed.indavideo.hu", - "infoq.com", - "instagram.com", - "media", - "internazionale.it", - "investigationdiscovery.com", - "prima.iprima.cz", - "zoom.iprima.cz", - "play.iprima.cz", - "iprima.cz", - "krimi.iprima.cz", - "cool.iprima.cz", - "love.iprima.cz", - "cnn.iprima.cz", - "iq.com", - "iqiyi.com", - "yule.iqiyi.com", - "pps.tv", - "watch.islamchannel.tv", - "watch.islamchannel.tv", - "israelnationalnews.com", - "app.itpro.tv", - "app.itpro.tv", - "itv.com", - "itv.com", - "ivi.ru", - "ivi.tv", - "ivideon.com", - "ivoox.com", - "go.ivoox.com", - "iwara.tv", - "ixigua.com", - "izlesene.com", - "jamendo.com", - "licensing.jamendo.com", - "jamendo.com", - "jeuxvideo.com", - "jiosaavn.com", - "saavn.com", - "media.joj.sk", - "jove.com", - "tv.jtbc.co.kr", - "vod.jtbc.co.kr", - "content.jwplatform.com", - "cdn.jwplayer.com", - "tv.kakao.com", - "kaltura.com", - "cdnapisec.kaltura.com", - "kankanews.com", - "mtv.fi", - "katsomo.fi", - "mtvuutiset.fi", - "members.kelbyone.com", - "video.kenh14.vn", - "video.kenh14.vn", - "khanacademy.org", - "kick.com", - "kicker.de", - "kickstarter.com", - "kika.de", - "kika.de", - "kinja.com", - "kinopoisk.ru", - "video.kompas.com", - "kooapp.com", - "live.erinn.biz", - "kuwo.cn", - "la7.it", - "laracasts.com", - "last.fm", - "last.fm", - "last.fm", - "laxarxames.cat", - "lbry.tv", - "lbry", - "odysee.com", - "tf1info.fr", - "lci.fr", - "lcp.fr", - "play.lcp.fr", - "le.com", - "sports.le.com", - "lesports.com", - "learningonscreen.ac.uk", - "app.lecturio.com", - "lecturio.de", - "app.lecturio.com", - "video.lefigaro.fr", - "video.lefigaro.fr", - "lego.com", - "lemonde.fr", - "redaction.actu.lemonde.fr", - "lenta.ru", - "le.com", - "tv.le.com", - "list.le.com", - "yuntv.letv.com", - "html5-player.libsyn.com", - "embed.life.ru", - "life.ru", - "likee.video", - "linkedin.com", - "liputan6.com", - "listennotes.com", - "litv.tv", - "new.livestream.com", - "livestream.com", - "original.livestream.com", - "livestreamfails.com", - "lnk.lt", - "loc.gov", - "loco.com", - "loom.com", - "lrt.lt", - "lrt.lt", - "lrt.lt", - "archyvai.lrt.lt", - "latvijasradio.lsm.lv", - "radioteatris.lsm.lv", - "lr1.lsm.lv", - "lr2.lsm.lv", - "klasika.lsm.lv", - "lr4.lsm.lv", - "pieci.lv", - "naba.lsm.lv", - "ltv.lsm.lv", - "replay.lsm.lv", - "lumni.fr", - "lynda.com", - "educourse.ga", - "player.maariv.co.il", - "magellantv.com", - "magentamusik.de", - "my.mail.ru", - "m.my.mail.ru", - "videoapi.my.mail.ru", - "webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net", - "webtools-859c1818ed614cc5b0047439470927b0.msvdn.net", - "webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net", - "f5842579ff984c1c98d63b8d789673eb.msvdn.net", - "webtools.msvdn.net", - "859c1818ed614cc5b0047439470927b0.msvdn.net", - "mgtv.com", - "w.mgtv.com", - "manototv.com", - "manototv.com", - "manyvids.com", - "videoarchiv.markiza.sk", - "markiza.sk", - "dajto.markiza.sk", - "superstar.markiza.sk", - "hybsa.markiza.sk", - "doma.markiza.sk", - "tvnoviny.sk", - "masters.com", - "matchtv.ru", - "video.matchtv.ru", - "budem.mave.digital", - "ochenlichnoe.mave.digital", - "geekcity.mave.digital", - "mbn.co.kr", - "mdr.de", - "medal.tv", - "media.ccc.de", - "mediaite.com", - "mediaklikk.hu", - "m4sport.hu", - "hirado.hu", - "bndestem.nl", - "gelderlander.nl", - "7sur7.be", - "mychannels.video", - "embed.mychannels.video", - "mediasetinfinity.mediaset.it", - "mediasetplay.mediaset.it", - "static3.mediasetplay.mediaset.it", - "mediasetinfinity.mediaset.it", - "hitsmediaweb.h-its.org", - "mediasite.uib.no", - "collegerama.tudelft.nl", - "digitalops.sandia.gov", - "mediasite.ntnu.no", - "events7.mediasite.com", - "medaudio.medicine.iu.edu", - "uipsyc.mediasite.com", - "live.libraries.psu.edu", - "msite.misis.ru", - "mdstrm.com", - "vodupload-api.mediaworks.nz", - "medici.tv", - "edu.medici.tv", - "megatv.com", - "meipai.com", - "metacritic.com", - "mewatch.sg", - "live.mewatch.sg", - "build.microsoft.com", - "microsoft.com", - "learn.microsoft.com", - "learn.microsoft.com", - "learn.microsoft.com", - "medius.microsoft.com", - "web.microsoftstream.com", - "msit.microsoftstream.com", - "minds.com", - "mir24.tv", - "mirrativ.com", - "mirror.co.uk", - "mixch.tv", - "mixcloud.com", - "beta.mixcloud.com", - "suncity-104-9fm.mixlr.com", - "brcountdown.mixlr.com", - "biblewayng.mixlr.com", - "mlb.com", - "m.mlb.com", - "mlb.mlb.com", - "mlb.com", - "mlb.com", - "mlb.com", - "mlssoccer.com", - "whitecapsfc.com", - "torontofc.ca", - "sportingkc.com", - "soundersfc.com", - "sjearthquakes.com", - "rsl.com", - "timbers.com", - "philadelphiaunion.com", - "orlandocitysc.com", - "newyorkredbulls.com", - "nycfc.com", - "revolutionsoccer.net", - "nashvillesc.com", - "cfmontreal.com", - "intermiamicf.com", - "lagalaxy.com", - "lafc.com", - "houstondynamofc.com", - "dcunited.com", - "fcdallas.com", - "columbuscrew.com", - "coloradorapids.com", - "fccincinnati.com", - "chicagofirefc.com", - "austinfc.com", - "atlutd.com", - "tvplus.m-net.de", - "tvplus.m-net.de", - "tvplus.m-net.de", - "video.mocha.com.vn", - "mojevideo.sk", - "monstercat.com", - "monster-siren.hypergryph.com", - "motherless.com", - "motherless.com", - "motherless.com", - "motherless.com", - "moviefap.com", - "moviepilot.de", - "moview.id", - "msn.com", - "tvplay.lv", - "play.tv3.lt", - "tv3play.ee", - "tvplay.skaties.lv", - "tv3play.tv3.ee", - "mtv.com", - "mtvuutiset.fi", - "mujrozhlas.cz", - "murrtube.net", - "murrtube.net", - "muse.ai", - "musescore.com", - "musicdex.org", - "musicdex.org", - "musicdex.org", - "musicdex.org", - "stream.new", - "player.mux.com", - "mx3.ch", - "neo.mx3.ch", - "volksmusik.mx3.ch", - "mxplayer.in", - "mxplayer.in", - "myspace.com", - "myspass.de", - "mzaalo.com", - "n-tv.de", - "sportklub.n1info.rs", - "n1info.si", - "nova.rs", - "n1info.rs", - "hr.n1info.com", - "best-vod.umn.cdn.united.cloud", - "classics.nascar.com", - "tv.nate.com", - "tv.nate.com", - "video.nationalgeographic.com", - "nationalgeographic.com", - "tv.naver.com", - "tvcast.naver.com", - "now.naver.com", - "nba.com", - "secure.nba.com", - "watch.nba.com", - "nbc.com", - "nbcnews.com", - "today.com", - "msnbc.com", - "nbcolympics.com", - "stream.nbcolympics.com", - "nbcsports.com", - "stream.nbcsports.com", - "vplayer.nbcsports.com", - "nbcsports.com", - "nbclosangeles.com", - "telemundoarizona.com", - "nbcboston.com", - "ndr.de", - "khabar.ndtv.com", - "movies.ndtv.com", - "ndtv.com", - "auto.ndtv.com", - "sports.ndtv.com", - "gadgets.ndtv.com", - "profit.ndtv.com", - "food.ndtv.com", - "doctor.ndtv.com", - "swirlster.ndtv.com", - "nebula.tv", - "watchnebula.com", - "beta.nebula.tv", - "nekohacker.com", - "video.nest.com", - "video.nest.com", - "media.netapp.com", - "media.netapp.com", - "music.163.com", - "y.music.163.com", - "netplus.tv", - "netplus.tv", - "netplus.tv", - "netverse.id", - "netverse.id", - "netzkino.de", - "newgrounds.com", - "burn7.newgrounds.com", - "brian-beaton.newgrounds.com", - "newspicks.com", - "newsy.com", - "hk.apple.nextmedia.com", - "hk.dv.nextmedia.com", - "api.nexx.cloud", - "api.nexxcdn.com", - "arc.nexx.cloud", - "embed.nexx.cloud", - "nfb.ca", - "onf.ca", - "nfhsnetwork.com", - "nfl.com", - "chiefs.com", - "buffalobills.com", - "raiders.com", - "www2.nhk.or.jp", - "nhk.or.jp", - "nhk.or.jp", - "nhk.or.jp", - "nhk.or.jp", - "nhk.or.jp", - "www3.nhk.or.jp", - "www3.nhk.or.jp", - "nhl.com", - "wch2016.com", - "nick.com", - "nicovideo.jp", - "sp.nicovideo.jp", - "live.nicovideo.jp", - "nico.ms", - "nicochannel.jp", - "nicovideo.jp", - "ninaprotocol.com", - "nintendo.com", - "nitter.priv.pw", - "n-joy.de", - "nobelprize.org", - "mediaplayer.nobelprize.org", - "open.noice.id", - "nonktube.com", - "nos.nl", - "tn.nova.cz", - "fanda.nova.cz", - "novaplus.nova.cz", - "sport.tn.nova.cz", - "doma.nova.cz", - "prask.nova.cz", - "tv.nova.cz", - "media.cms.nova.cz", - "mediatn.cms.nova.cz", - "play.nova.bg", - "nowcanal.pt", - "nowness.com", - "cn.nowness.com", - "noz.de", - "npo.nl", - "ntr.nl", - "omroepwnl.nl", - "zapp.nl", - "npo3.nl", - "npostart.nl", - "npo.nl", - "npostart.nl", - "npr.org", - "nrk.no", - "v8-psapi.nrk.no", - "nrk.no", - "radio.nrk.no", - "nrk.no", - "tv.nrk.no", - "radio.nrk.no", - "tv.nrk.no", - "radio.nrk.no", - "tv.nrk.no", - "tv.nrk.no", - "tv.nrk.no", - "radio.nrk.no", - "tv.nrk.no", - "tv.nrksuper.no", - "radio.nrk.no", - "nrksuper.no", - "nts.live", - "ntv.ru", - "nuum.ru", - "nuvid.com", - "m.nuvid.com", - "nytimes.com", - "nytimes.com", - "cooking.nytimes.com", - "cooking.nytimes.com", - "nzherald.co.nz", - "nzonscreen.com", - "nzz.ch", - "ocw.mit.edu", - "ok.ru", - "m.ok.ru", - "mobile.ok.ru", - "of.tv", - "of.tv", - "olympics.com", - "event.on24.com", - "ondemandchina.com", - "ondemandkorea.com", - "ondemandkorea.com", - "onefootball.com", - "oneplace.com", - "eurosport.onet.pl", - "film.onet.pl", - "moto.onet.pl", - "businessinsider.com.pl", - "plejada.pl", - "onet.tv", - "onet100.vod.pl", - "onionstudios.com", - "share.onsen.ag", - "onsen.ag", - "oc-video1.ruhr-uni-bochum.de", - "oc-video1.ruhr-uni-bochum.de", - "electures.uni-muenster.de", - "openrec.tv", - "ora.tv", - "unsafespeech.com", - "on.orf.at", - "sound.orf.at", - "radiothek.orf.at", - "ooe.orf.at", - "fm4.orf.at", - "noe.orf.at", - "wien.orf.at", - "burgenland.orf.at", - "steiermark.orf.at", - "kaernten.orf.at", - "salzburg.orf.at", - "tirol.orf.at", - "vorarlberg.orf.at", - "oe3.orf.at", - "oe1.orf.at", - "tvonline.osnatel.de", - "tvonline.osnatel.de", - "tvonline.osnatel.de", - "outsidetv.com", - "ruhr-uni-bochum.sciebo.de", - "packtpub.com", - "subscription.packtpub.com", - "packtpub.com", - "subscription.packtpub.com", - "palcomp3.com.br", - "palcomp3.com", - "demo.hosted.panopto.com", - "howtovideos.hosted.panopto.com", - "unisa.au.panopto.com", - "na-training-1.hosted.panopto.com", - "ucc.cloud.panopto.eu", - "brown.hosted.panopto.com", - "demo.hosted.panopto.com", - "howtovideos.hosted.panopto.com", - "howtovideos.hosted.panopto.com", - "utsa.hosted.panopto.com", - "paramountpressexpress.com", - "parler.com", - "parliamentlive.tv", - "aph.gov.au", - "parti.com", - "patreon.com", - "pbs.org", - "thirteen.org", - "player.pbs.org", - "pbssocal.org", - "watch.knpb.org", - "pbskids.org", - "peekvids.com", - "peer.tv", - "members.onepeloton.com", - "player.performgroup.com", - "periscope.tv", - "pgatour.com", - "philharmoniedeparis.fr", - "live.philharmoniedeparis.fr", - "otoplayer.philharmoniedeparis.fr", - "phoenix.de", - "player.pia-live.jp", - "piapro.jp", - "picarto.tv", - "player.piksel.tech", - "player.piksel.com", - "pinkbike.com", - "es.pinkbike.org", - "pinterest.com", - "pinterest.ca", - "co.pinterest.com", - "pinterest.ca", - "piramide.tv", - "piramide.tv", - "planetmarathi.com", - "platzi.com", - "courses.platzi.com", - "platzi.com", - "courses.platzi.com", - "play.tv", - "player.fm", - "utreon.com", - "playeur.com", - "playsuisse.ch", - "playtvak.cz", - "slowtv.playtvak.cz", - "zpravy.idnes.cz", - "lidovky.cz", - "metro.cz", - "playvids.com", - "config.playwire.com", - "cdn.playwire.com", - "pluralsight.com", - "app.pluralsight.com", - "pluto.tv", - "plvideo.ru", - "podbay.fm", - "podbay.fm", - "podchaser.com", - "scienceteachingtips.podomatic.com", - "ostbahnhof.podomatic.com", - "podomatic.com", - "pokergo.com", - "pokergo.com", - "polsatgo.pl", - "jedynka.polskieradio.pl", - "trojka.polskieradio.pl", - "polskieradio.pl", - "radiokierowcow.pl", - "polskieradio24.pl", - "player.polskieradio.pl", - "podcasty.polskieradio.pl", - "animemanga.popcorntv.it", - "cinema.popcorntv.it", - "pornbox.com", - "pornerbros.com", - "m.pornerbros.com", - "pornflip.com", - "pornhub.com", - "fr.pornhub.com", - "thumbzilla.com", - "pornhub.net", - "pornhub.org", - "pornhubpremium.com", - "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion", - "pornhub.com", - "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion", - "pornhub.com", - "de.pornhub.com", - "pornhub.com", - "pornhubpremium.com", - "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion", - "pornhub.com", - "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion", - "porntop.com", - "porntube.com", - "m.porntube.com", - "pr0gramm.com", - "prankcast.com", - "prankcast.com", - "premiershiprugby.com", - "projectveritas.com", - "prosieben.de", - "prosiebenmaxx.de", - "sixx.de", - "sat1.de", - "kabeleins.de", - "ran.de", - "the-voice-of-germany.de", - "fem.com", - "kabeleinsdoku.de", - "sat1gold.de", - "galileo.tv", - "advopedia.de", - "beta.prx.org", - "beta.prx.org", - "beta.prx.org", - "listen.prx.org", - "puhutv.com", - "puls4.com", - "pyvideo.org", - "q-dance.com", - "qingting.fm", - "m.qtfm.cn", - "y.qq.com", - "quantum-tv.com", - "quantum-tv.com", - "quantum-tv.com", - "videos.r7.com", - "esportes.r7.com", - "noticias.r7.com", - "player.r7.com", - "radiko.jp", - "radiko.jp", - "radio1.be", - "ici.radio-canada.ca", - "radiocomercial.pt", - "radiocomercial.pt", - "radiofrance.fr", - "radiofrance.fr", - "radiofrance.fr", - "radiofrance.fr", - "radiokapital.pl", - "radioradicale.it", - "rad.live", - "raisport.rai.it", - "rai.it", - "raicultura.it", - "rainews.it", - "raiplay.it", - "raiplay.it", - "raiplay.it", - "raiplaysound.it", - "raiplaysound.it", - "raiplaysound.it", - "raisudtirol.rai.it", - "raibz.rai.it", - "raywenderlich.com", - "videos.raywenderlich.com", - "live.rbg.tum.de", - "tum.live", - "live.rbg.tum.de", - "tum.live", - "live.rbg.tum.de", - "tum.live", - "video.corriere.it", - "viaggi.corriere.it", - "video.rcs.it", - "video.gazzanet.gazzetta.it", - "video.gazzetta.it", - "leitv.it", - "youreporter.it", - "amica.it", - "rctiplus.com", - "rctiplus.com", - "rctiplus.com", - "rds.ca", - "redbull.com", - "redbull.com", - "redbull.tv", - "redbull.com", - "redbull.com", - "r.dcs.redcdn.pl", - "n-25-12.dcs.redcdn.pl", - "redir.atmcdn.pl", - "reddit.com", - "old.reddit.com", - "nm.reddit.com", - "redditmedia.com", - "redgifs.com", - "thumbs2.redgifs.com", - "redgifs.com", - "redgifs.com", - "redtube.com", - "embed.redtube.com", - "it.redtube.com", - "redtube.com.br", - "ren.tv", - "ren.tv", - "restudy.dk", - "portal.restudy.dk", - "reverbnation.com", - "rheinmaintv.de", - "ridehome.info", - "rinse.fm", - "rinse.fm", - "rmcdecouverte.bfmtv.com", - "rockstargames.com", - "rokfin.com", - "roosterteeth.com", - "achievementhunter.roosterteeth.com", - "funhaus.roosterteeth.com", - "screwattack.roosterteeth.com", - "theknow.roosterteeth.com", - "roosterteeth.com", - "rottentomatoes.com", - "en.roya.tv", - "roya.tv", - "prehravac.rozhlas.cz", - "wave.rozhlas.cz", - "dvojka.rozhlas.cz", - "rtbf.be", - "rtd.rt.com", - "rtd.rt.com", - "rte.ie", - "rtl.lu", - "5minutes.rtl.lu", - "today.rtl.lu", - "rtlxl.nl", - "rtl.nl", - "static.rtl.nl", - "embed.rtl.nl", - "rtl2.de", - "rtl.lu", - "rtl.lu", - "rt.com", - "rtp.pt", - "rtrfm.com.au", - "rts.ch", - "pages.rts.ch", - "media.rtvc.gov.co", - "rtvcplay.co", - "rtvcplay.co", - "rtve.es", - "rtvslo.si", - "365.rtvslo.si", - "4d.rtvslo.si", - "rudo.video", - "rule34video.com", - "rumble.com", - "rumble.com", - "rumble.com", - "ruptly.tv", - "rutube.ru", - "ruutu.fi", - "supla.fi", - "static.nelonenmedia.fi", - "ruv.is", - "ruv.is", - "s4c.cymru", - "s4c.cymru", - "safaribooksonline.com", - "techbus.safaribooksonline.com", - "learning.oreilly.com", - "oreilly.com", - "saitosan.net", - "saktv.ch", - "saktv.ch", - "saktv.ch", - "tv.salt.ch", - "tv.salt.ch", - "tv.salt.ch", - "samplefocus.com", - "webtv.sangiin.go.jp", - "videos.sapo.pt", - "v2.videos.sapo.pt", - "sauceplus.com", - "sbs.com.au", - "allvod.sbs.co.kr", - "programs.sbs.co.kr", - "sciencechannel.com", - "api.screen9.com", - "folkhogskolekanalen.screen9.tv", - "play.su.se", - "screencast.com", - "watch.screencastify.com", - "app.screencastify.com", - "screencast-o-matic.com", - "screenrec.com", - "cookingchanneltv.com", - "diynetwork.com", - "foodnetwork.com", - "hgtv.com", - "travelchannel.com", - "discovery.com", - "watch.geniuskitchen.com", - "scrolller.com", - "learning.scte.org", - "learning.scte.org", - "sejm.gov.pl", - "sejm-embed.redcdn.pl", - "senalcolombia.tv", - "help.senate.gov", - "appropriations.senate.gov", - "banking.senate.gov", - "agriculture.senate.gov", - "aging.senate.gov", - "budget.senate.gov", - "commerce.senate.gov", - "energy.senate.gov", - "epw.senate.gov", - "foreign.senate.gov", - "intelligence.senate.gov", - "inaugural.senate.gov", - "rules.senate.gov", - "sbc.senate.gov", - "veterans.senate.gov", - "senate.gov", - "servustv.com", - "servus.com", - "pm-wissen.com", - "seznamzpravy.cz", - "seznamzpravy.cz", - "seznam.cz", - "shahid.mbc.net", - "shahid.mbc.net", - "lut-my.sharepoint.com", - "greaternyace.sharepoint.com", - "izoobasisschool.sharepoint.com", - "uskudaredutr-my.sharepoint.com", - "epam-my.sharepoint.com", - "microsoft.sharepoint.com", - "shemaroome.com", - "shiey.com", - "shugiintv.go.jp", - "shugiintv.go.jp", - "shugiintv.go.jp", - "the-re-bind-io-podcast.simplecast.com", - "api.simplecast.com", - "player.simplecast.com", - "video.sina.com.cn", - "skeb.jp", - "skysports.com", - "sport.sky.it", - "tg24.sky.it", - "skynewsarabia.com", - "skynews.com.au", - "slideslive.com", - "slutload.com", - "mobile.slutload.com", - "smotrim.ru", - "player.smotrim.ru", - "testplayer.vgtrk.com", - "snapchat.com", - "snotr.com", - "softwhiteunderbelly.com", - "tv.sohu.com", - "my.tv.sohu.com", - "tv.sohu.com", - "sonyliv.com", - "sonyliv.com", - "vod.sooplive.co.kr", - "play.sooplive.co.kr", - "ch.sooplive.co.kr", - "w.soundcloud.com", - "southpark.cc.com", - "southparkstudios.com", - "southpark.de", - "southpark.lat", - "southparkstudios.co.uk", - "southparkstudios.com.br", - "southparkstudios.nu", - "sovietscloset.com", - "sovietscloset.com", - "spankbang.com", - "m.spankbang.com", - "spiegel.de", - "vod.sport5.co.il", - "sport5.co.il", - "news.sportbox.ru", - "matchtv.ru", - "sporteurope.tv", - "player.sporteurope.tv", - "api.spreaker.com", - "spreaker.com", - "api.spreaker.com", - "spreaker.com", - "cms.springboardplatform.com", - "videos.sproutvideo.com", - "sr-mediathek.de", - "srf.ch", - "rtr.ch", - "rts.ch", - "play.swissinfo.ch", - "stacommu.jp", - "stacommu.jp", - "stage-plus.com", - "startrek.com", - "startv.com.tr", - "store.steampowered.com", - "steamcommunity.com", - "steamcommunity.com", - "stitcher.com", - "stitcher.com", - "storyfire.com", - "players.streaks.jp", - "playback.api.streaks.jp", - "streamable.com", - "televizeseznam.cz", - "stream.cz", - "streetvoice.com", - "tw.streetvoice.com", - "stripchat.com", - "player.stv.tv", - "rtvs.sk", - "stvr.sk", - "subsplash.com", - "prophecywatchers.subspla.sh", - "haleynahman.substack.com", - "andrewzimmern.substack.com", - "persuasion1.substack.com", - "sunporno.com", - "embeds.sunporno.com", - "sverigesradio.se", - "svt.se", - "svtplay.se", - "oppetarkiv.se", - "swearnet.com", - "syfy.com", - "24syv.dk", - "taptap.cn", - "taptap.io", - "taptap.cn", - "taptap.io", - "tass.ru", - "itar-tass.com", - "tbs.com", - "tntdrama.com", - "trutv.com", - "cu.tbs.co.jp", - "cu.tbs.co.jp", - "cu.tbs.co.jp", - "gns3.teachable.com", - "v1.upskillcourses.com", - "v1.upskillcourses.com", - "gns3.teachable.com", - "teachertube.com", - "teamcoco.com", - "teamtreehouse.com", - "embed.ted.com", - "ted.com", - "ted.com", - "ted.com", - "tele5.de", - "t13.cl", - "bx1.be", - "play.telecaribe.co", - "telecinco.es", - "cuatro.com", - "mediaset.es", - "t.me", - "telemb.be", - "telemundo.com", - "zonevideo.telequebec.tv", - "coucou.telequebec.tv", - "lindicemcsween.telequebec.tv", - "bancpublic.telequebec.tv", - "telequebec.tv", - "squat.telequebec.tv", - "video.telequebec.tv", - "telewebion.com", - "video.tempo.co", - "tennistv.com", - "tf1.fr", - "theater-complex.town", - "watch.thechosen.tv", - "watch.thechosen.tv", - "theguardian.com", - "theguardian.com", - "thehighwire.com", - "the-hole.tv", - "theintercept.com", - "link.theplatform.com", - "player.theplatform.com", - "feed.theplatform.com", - "thesun.co.uk", - "the-sun.com", - "weather.com", - "thisamericanlife.org", - "thisoldhouse.com", - "thisvid.com", - "thisvid.com", - "thisvid.com", - "3speak.tv", - "3speak.tv", - "tiktok.com", - "m.tiktok.com", - "go.tlc.com", - "tmz.com", - "tnaflix.com", - "player.tnaflix.com", - "player.empflix.com", - "mewatch.sg", - "video.toggle.sg", - "toggo.de", - "audycje.tokfm.pl", - "toongoggles.com", - "ici.tou.tv", - "toutiao.com", - "watch.travelchannel.com", - "triller.co", - "v.triller.co", - "triller.co", - "trovo.live", - "trtcocuk.net.tr", - "trtworld.com", - "trueid.id", - "vn.trueid.net", - "trueid.ph", - "truthsocial.com", - "flextv.co.kr", - "tube8.com", - "tube.tugraz.at", - "tube.tugraz.at", - "tubitv.com", - "tatianamaslanydaily.tumblr.com", - "maskofthedragon.tumblr.com", - "shieldfoss.tumblr.com", - "jujanon.tumblr.com", - "bartlebyshop.tumblr.com", - "afloweroutofstone.tumblr.com", - "prozdvoices.tumblr.com", - "dominustempori.tumblr.com", - "silami.tumblr.com", - "tumblr.com", - "patricia-taxxon.tumblr.com", - "silverfoxstole.tumblr.com", - "fansofcolor.tumblr.com", - "tunein.com", - "tv2.no", - "tv2.no", - "tvsyd.dk", - "tv2lorry.dk", - "tv2ostjylland.dk", - "tvmidtvest.dk", - "tv2fyn.dk", - "tv2east.dk", - "tv2nord.dk", - "tv2kosmopol.dk", - "tv2play.hu", - "tv2play.hu", - "tv4.se", - "tv4play.se", - "tv5monde.com", - "tv5unis.ca", - "tv8.it", - "tvaplus.ca", - "tvc.ru", - "tvc.ru", - "tver.jp", - "tvigle.ru", - "cloud.tvigle.ru", - "tviplayer.iol.pt", - "tvn24.pl", - "tvnmeteo.tvn24.pl", - "fakty.tvn24.pl", - "sport.tvn24.pl", - "tvn24bis.pl", - "tvnoe.cz", - "cdn.ethnos.gr", - "ethnos.gr", - "tvopen.gr", - "tvp.pl", - "tvp.info", - "wiadomosci.tvp.pl", - "swipeto.pl", - "warszawa.tvp.pl", - "opole.tvp.pl", - "abc.tvp.pl", - "jp2.tvp.pl", - "vod.tvp.pl", - "krakow.tvp.pl", - "teleexpress.tvp.pl", - "sport.tvp.pl", - "tvpparlament.pl", - "tvpworld.com", - "stream.tvp.pl", - "tvpstream.vod.tvp.pl", - "play.tv3.lt", - "tv3play.skaties.lv", - "play.tv3.ee", - "tvw.org", - "twitcasting.tv", - "twitcasting.tv", - "twitcasting.tv", - "twitter.com", - "x.com", - "twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion", - "txxx.com", - "txxx.tube", - "vxxx.com", - "hclips.com", - "hdzog.com", - "hdzog.tube", - "hotmovs.com", - "hotmovs.tube", - "inporn.com", - "privatehomeclips.com", - "tubepornclassic.com", - "upornia.com", - "upornia.tube", - "vjav.com", - "vjav.tube", - "voyeurhit.com", - "voyeurhit.tube", - "udemy.com", - "wipro.udemy.com", - "video.udn.com", - "ukcolumn.org", - "uktvplay.uktv.co.uk", - "uktvplay.co.uk", - "player-api.p.uliza.jp", - "ulizaportal.jp", - "universal-music.de", - "utv.unistra.fr", - "webtv.un.org", - "unity3d.com", - "player.mais.uol.com.br", - "tvuol.uol.com.br", - "mais.uol.com.br", - "noticias.band.uol.com.br", - "videos.band.uol.com.br", - "noticias.uol.com.br", - "urplay.se", - "urskola.se", - "usanetwork.com", - "usatoday.com", - "ustream.tv", - "video.ibm.com", - "video.varzesh3.com", - "vbox7.com", - "i49.vbox7.com", - "app.veo.co", - "vevo.com", - "embed.vevo.com", - "tv.vevo.com", - "vevo.com", - "vgtv.no", - "aftenposten.no", - "tv.vg.no", - "bt.no", - "ap.vgtv.no", - "tv.aftonbladet.se", - "aftonbladet.se", - "vh1.com", - "vice.com", - "video.vice.com", - "vms.vice.com", - "viceland.com", - "vicetv.com", - "viddler.com", - "videa.hu", - "videakid.hu", - "video.arnes.si", - "video.sky.it", - "xfactor.sky.it", - "masterchef.sky.it", - "videos.neurips.cc", - "videos.icts.res.in", - "videos.cncf.io", - "videos.icts.res.in", - "videos.neurips.cc", - "videos.cncf.io", - "player.videoken.com", - "videos.icts.res.in", - "videos.neurips.cc", - "videos.icts.res.in", - "videos.cncf.io", - "videomore.ru", - "player.videomore.ru", - "odysseus.more.tv", - "siren.more.tv", - "more.tv", - "videopress.com", - "video.wordpress.com", - "video.hockeycanada.ca", - "myfbcgreenville.vidflex.tv", - "figureitoutbaseball.com", - "videos.telusworldofscienceedmonton.ca", - "tuffhedemantv.com", - "albertalacrossetv.com", - "silenticetv.com", - "jphl.vidflex.tv", - "vidio.com", - "vidio.com", - "vidio.com", - "vidlii.com", - "vid.ly", - "s.vid.ly", - "how-to-video.vids.io", - "vyexample03.hubs.vidyard.com", - "share.vidyard.com", - "embed.vidyard.com", - "thelink.hubs.vidyard.com", - "salesforce.vidyard.com", - "play.vidyard.com", - "embed.snagfilms.com", - "snagfilms.com", - "main.snagfilms.com", - "winnersview.com", - "monumentalsportsnetwork.com", - "marquee.tv", - "hoichoi.tv", - "chorki.com", - "videolectures.net", - "vimm.tv", - "vimp.oth-regensburg.de", - "hsbi.de", - "videocampus.sachsen.de", - "www2.univ-sba.dz", - "vimp.weka-fachmedien.de", - "cdn.viqeo.tv", - "api.viqeo.tv", - "viu.com", - "india.viu.com", - "viu.com", - "vk.com", - "vkvideo.ru", - "new.vk.com", - "vk.ru", - "vksport.vkvideo.ru", - "m.vk.com", - "vkplay.live", - "live.vkplay.ru", - "live.vkvideo.ru", - "vkplay.live", - "live.vkplay.ru", - "live.vkvideo.ru", - "tiktok.com", - "vm.tiktok.com", - "vt.tiktok.com", - "vocaroo.com", - "voca.ro", - "vod.pl", - "vod-platform.net", - "embed.kwikmotion.com", - "voicy.jp", - "volej.tv", - "theverge.com", - "vox.com", - "sbnation.com", - "tegenlicht.vpro.nl", - "vpro.nl", - "2doc.nl", - "v.qq.com", - "livr.jp", - "vrt.be", - "sporza.be", - "vrt.be", - "vtm.be", - "vtv.vn", - "vtvgo.vn", - "vtxtv.ch", - "vtxtv.ch", - "vtxtv.ch", - "vvvvid.it", - "vvvvid.it", - "player.waly.tv", - "player.waly.tv", - "player.waly.tv", - "washingtonpost.com", - "wat.tv", - "espn.com", - "deviceids-medp.wdr.de", - "www1.wdr.de", - "wdrmaus.de", - "sportschau.de", - "kinder.wdr.de", - "web.archive.org", - "warszawa-plac-zamkowy.webcamera.pl", - "gdansk-stare-miasto.webcamera.pl", - "bl.webcaster.pro", - "webofstories.com", - "weibo.com", - "m.weibo.cn", - "weibo.com", - "weibo.com", - "video.weibo.com", - "weiqitv.com", - "wetv.vip", - "wetv.vip", - "weverse.io", - "weverse.io", - "weverse.io", - "weverse.io", - "weverse.io", - "weverse.io", - "wevidi.net", - "weyyak.com", - "whowatch.tv", - "whyp.it", - "commons.wikimedia.org", - "wimbledon.com", - "platform.wim.tv", - "winsports.co", - "fast.wistia.net", - "fast.wistia.com", - "fast.wistia.net", - "fast.wistia.net", - "omroepwnl.nl", - "worldstarhiphop.com", - "m.worldstarhiphop.com", - "pilot.wp.pl", - "wppilot", - "wrestle-universe.com", - "wrestle-universe.com", - "video-api.wsj.com", - "wsj.com", - "barrons.com", - "wsj.com", - "wwe.com", - "de.wwe.com", - "wyborcza.pl", - "wyborcza.pl", - "wysokieobcasy.pl", - "wykop.pl", - "xboxclips.com", - "gameclips.io", - "xhamster.com", - "m.xhamster.com", - "it.xhamster.com", - "pt.xhamster.com", - "xhamster.one", - "xhamster.desi", - "xhamster2.com", - "xhamster11.com", - "xhamster26.com", - "de.xhamster.com", - "xhday.com", - "xhvid.com", - "xhamster20.desi", - "xhamster.com", - "xhamster.com", - "xhday.com", - "xhvid.com", - "xiaohongshu.com", - "ximalaya.com", - "m.ximalaya.com", - "xinpianchang.com", - "xnxx.com", - "video.xnxx.com", - "xnxx3.com", - "frontend.xstream.dk", - "xvideos.com", - "flashservice.xvideos.com", - "static-hw.xvideos.com", - "xvideos.es", - "fr.xvideos.com", - "it.xvideos.com", - "de.xvideos.com", - "screen.yahoo.com", - "uk.screen.yahoo.com", - "news.yahoo.com", - "yahoo.com", - "gma.yahoo.com", - "sports.yahoo.com", - "tw.news.yahoo.com", - "tw.video.yahoo.com", - "malaysia.news.yahoo.com", - "es-us.noticias.yahoo.com", - "news.yahoo.co.jp", - "yadi.sk", - "disk.360.yandex.ru", - "music.yandex.ru", - "music.yandex.com", - "yandex.ru", - "frontend.vh.yandex.ru", - "yandex.ru", - "yandex.com", - "yapfiles.ru", - "api.yapfiles.ru", - "yappy.media", - "yappy.media", - "yfanefa.com", - "areena.yle.fi", - "youjizz.com", - "player.youku.com", - "v.youku.com", - "play.tudou.com", - "list.youku.com", - "youporn.com", - "youporn.com", - "youporn.com", - "youporn.com", - "youporn.com", - "youporn.com", - "youporn.com", - "youtube.com", - "music.youtube.com", - "invidio.us", - "youtubekids.com", - "youtube.com", - "youtu.be", - "zaiko.io", - "zaiko.io", - "zapiks.fr", - "zapiks.com", - "zattoo.com", - "zattoo.com", - "zattoo.com", - "zattoo.com", - "zdf.de", - "zee5.com", - "zeenews.india.com", - "zenporn.com", - "zetland.dk", - "zingmp3.vn", - "mp3.zing.vn", - "economist.zoom.us", - "ffgolf.zoom.us", - "us02web.zoom.us", - "cityofdetroit.zoom.us" - ], - "redirectors": [ - "1fichier.com", - "adf.ly", - "pan.baidu.com", - "big.to", - "isrbx.net", - "israbox-music.com", - "isrbx.me", - "bit.ly", - "protect.ddl-island.su", - "dereferer.org", - "dl-protect.top", - "dl-protecte.org", - "protect-lien.com", - "protect-zt.com", - "protecte-link.com", - "liens-telechargement.com", - "dl-protect1.com", - "dl-protect1.co", - "dl-protect.best", - "ed-protect.org", - "redirect.example.com", - "extreme-download.club", - "extreme-protect.net", - "filecrypt.cc", - "generic.tld", - "google.com", - "go_to.com", - "sumoweb.net", - "liencaptcha.com", - "mediafire.com", - "mega.nz", - "mega.co.nz", - "multiup.org", - "prodebrid.com", - "prodebrid.com", - "rapidgator.net", - "rg.to", - "safelinking.net", - "nfo.scene-rls.net", - "searchlossless.com", - "turbobit.net", - "tinyurl.com", - "uploaded.net", - "example.com", - "youtube.com", - "zt-protect.com" - ] + "hosts": { + "1fichier": { + "name": "1fichier", + "type": "premium", + "domains": [ + "1fichier.com", + "megadl.fr", + "alterupload.com", + "cjoint.net", + "desfichiers.com", + "dfichiers.com", + "mesfichiers.org", + "piecejointe.net", + "pjointe.com", + "tenvoi.com", + "dl4free.com" + ], + "regexps": [ + "((1fichier\\.com|megadl\\.fr|alterupload\\.com|cjoint\\.net|desfichiers\\.com|dfichiers\\.com|mesfichiers\\.org|piecejointe\\.net|pjointe\\.com|tenvoi\\.com|dl4free\\.com)/\\?[a-zA-Z0-9]{5,30}(&pw=[^&]+)?)" + ], + "regexp": "((1fichier\\.com|megadl\\.fr|alterupload\\.com|cjoint\\.net|desfichiers\\.com|dfichiers\\.com|mesfichiers\\.org|piecejointe\\.net|pjointe\\.com|tenvoi\\.com|dl4free\\.com)/\\?[a-zA-Z0-9]{5,30}(&pw=[^&]+)?)", + "status": true + }, + "rapidgator": { + "name": "rapidgator", + "type": "premium", + "domains": [ + "rapidgator.net", + "rg.to", + "rapidgator.asia" + ], + "regexps": [ + "(rapidgator\\.net|rg\\.to|rapidgator\\.asia)/file/([0-9a-zA-Z]{32})", + "(rapidgator\\.net/file/[0-9]{7,8})" + ], + "regexp": "((rapidgator\\.net|rg\\.to|rapidgator\\.asia)/file/([0-9a-zA-Z]{32}))|((rapidgator\\.net/file/[0-9]{7,8}))", + "status": true + }, + "turbobit": { + "name": "turbobit", + "type": "premium", + "domains": [ + "turbobit.net", + "wayupload.com", + "turbobit.cloud", + "htfl.net", + "turbobit.cc", + "tourbobit.net", + "torbobit.net", + "turbo.to", + "turb.cc", + "turb.pw", + "hitf.cc", + "hitf.to", + "turbobif.com", + "turbobif.cc", + "turbobif.net", + "trbbt.net", + "trbt.cc" + ], + "regexps": [ + "turbobit5?a?\\.(net|cc|com)/([a-z0-9]{12})", + "turbobif\\.(net|cc|com)/([a-z0-9]{12})", + "turb[o]?\\.(to|cc|pw)\\/([a-z0-9]{12})", + "turbobit\\.(net|cc)/download/free/([a-z0-9]{12})", + "(trbbt|tourbobit|torbobit|tbit|turbobita|trbt)\\.(net|cc|com|to)/([a-z0-9]{12})", + "(turbobit\\.cloud/turbo/[a-z0-9]+)", + "(wayupload\\.com/[a-z0-9]{12}\\.html)" + ], + "regexp": "(turbobit5?a?\\.(net|cc|com)/([a-z0-9]{12}))|(turbobif\\.(net|cc|com)/([a-z0-9]{12}))|(turb[o]?\\.(to|cc|pw)\\/([a-z0-9]{12}))|(turbobit\\.(net|cc)/download/free/([a-z0-9]{12}))|((trbbt|tourbobit|torbobit|tbit|turbobita|trbt)\\.(net|cc|com|to)/([a-z0-9]{12}))|((turbobit\\.cloud/turbo/[a-z0-9]+))|((wayupload\\.com/[a-z0-9]{12}\\.html))", + "status": true + }, + "hitfile": { + "name": "hitfile", + "type": "premium", + "domains": [ + "hitfile.net", + "hitfile.com", + "hitf.to", + "hitf.cc", + "htfl.net", + "htfl.to", + "htfl.cc" + ], + "regexps": [ + "hitf\\.(to|cc)/([a-z0-9A-Z]{4,9})", + "htfl\\.(net|to|cc)/([a-z0-9A-Z]{4,9})", + "hitfile\\.(net)/download/free/([a-z0-9A-Z]{4,9})", + "(hitfile\\.net/[a-z0-9A-Z]{4,9})" + ], + "regexp": "(hitf\\.(to|cc)/([a-z0-9A-Z]{4,9}))|(htfl\\.(net|to|cc)/([a-z0-9A-Z]{4,9}))|(hitfile\\.(net)/download/free/([a-z0-9A-Z]{4,9}))|((hitfile\\.net/[a-z0-9A-Z]{4,9}))", + "status": true + }, + "mega": { + "name": "mega", + "type": "premium", + "domains": [ + "mega.co.nz", + "mega.nz" + ], + "regexps": [ + "mega\\.nz/(\\?fbclid=[^\\#]+)?\\#N(![a-zA-Z0-9-_/+=]+![a-zA-Z0-9-_/+=%]+)\\#\\#\\#n=([a-zA-Z0-9-_/+=]+)", + "(mega\\.co\\.nz/(\\?fbclid=[^\\#]+)?\\#![a-zA-Z0-9-_/+=]+![a-zA-Z0-9-_/+~=%]+(![a-zA-Z0-9-_/+~=%]+)?)", + "mega\\.nz/(\\?fbclid=[^\\#]+)?(\\#![a-zA-Z0-9-_/+=]+![a-zA-Z0-9-_/+~=%]+(![a-zA-Z0-9-_/+~=%]+)?)", + "mega\\.nz/file/([a-zA-Z0-9-_/+=]+)\\#([a-zA-Z0-9-_/+~=%]+(![a-zA-Z0-9-_/+~=%]+)?)", + "(mega\\.nz/folder/([a-zA-Z0-9-_/+=]+)\\#([a-zA-Z0-9-_/+~=%]+/file/([a-zA-Z0-9-_/+~=%]+)))" + ], + "regexp": "(mega\\.nz/(\\?fbclid=[^\\#]+)?\\#N(![a-zA-Z0-9-_/+=]+![a-zA-Z0-9-_/+=%]+)\\#\\#\\#n=([a-zA-Z0-9-_/+=]+))|((mega\\.co\\.nz/(\\?fbclid=[^\\#]+)?\\#![a-zA-Z0-9-_/+=]+![a-zA-Z0-9-_/+~=%]+(![a-zA-Z0-9-_/+~=%]+)?))|(mega\\.nz/(\\?fbclid=[^\\#]+)?(\\#![a-zA-Z0-9-_/+=]+![a-zA-Z0-9-_/+~=%]+(![a-zA-Z0-9-_/+~=%]+)?))|(mega\\.nz/file/([a-zA-Z0-9-_/+=]+)\\#([a-zA-Z0-9-_/+~=%]+(![a-zA-Z0-9-_/+~=%]+)?))|((mega\\.nz/folder/([a-zA-Z0-9-_/+=]+)\\#([a-zA-Z0-9-_/+~=%]+/file/([a-zA-Z0-9-_/+~=%]+))))", + "status": true + }, + "4shared": { + "name": "4shared", + "type": "premium", + "domains": [ + "4shared.com", + "4s.io" + ], + "regexps": [ + "(4shared\\.com/file/[0-9a-zA-Z\\-_]{8,})", + "(4shared\\.com/[a-z3]{2,10}/[0-9a-zA-Z\\-_]{8,})", + "(4s\\.io/[a-z3]{2,10}/[0-9a-zA-Z\\-_]{8,})" + ], + "regexp": "((4shared\\.com/file/[0-9a-zA-Z\\-_]{8,}))|((4shared\\.com/[a-z3]{2,10}/[0-9a-zA-Z\\-_]{8,}))|((4s\\.io/[a-z3]{2,10}/[0-9a-zA-Z\\-_]{8,}))", + "status": true + }, + "9xupload": { + "name": "9xupload", + "type": "premium", + "domains": [ + "9xupload.asia", + "9xupload.info" + ], + "regexps": [ + "(9xupload\\.asia/[0-9a-zA-Z]{12})", + "9xupload\\.info/([0-9a-zA-Z]{12})" + ], + "regexp": "((9xupload\\.asia/[0-9a-zA-Z]{12}))|(9xupload\\.info/([0-9a-zA-Z]{12}))" + }, + "alfafile": { + "name": "alfafile", + "type": "premium", + "domains": [ + "alfafile.net" + ], + "regexps": [ + "(alfafile\\.net/file/[a-zA-Z0-9]{3,6})" + ], + "regexp": "(alfafile\\.net/file/[a-zA-Z0-9]{3,6})", + "status": false + }, + "alldebrid": { + "name": "alldebrid", + "type": "premium", + "domains": [ + "alldebrid.com" + ], + "display": "hidden", + "regexps": [ + "alldebrid\\.com/f/([a-zA-Z0-9\\_\\-]+)" + ], + "regexp": [ + "alldebrid\\.com/f/([a-zA-Z0-9\\_\\-]+)" + ] + }, + "clicknupload": { + "name": "clicknupload", + "type": "premium", + "domains": [ + "clicknupload.click", + "clickndownload.cc", + "clickndownload.click", + "clickndownload.link", + "clickndownload.name", + "clickndownload.org", + "clickndownload.space", + "clickndownload.xyz", + "clicknupload.cc", + "clicknupload.club", + "clicknupload.co", + "clicknupload.download", + "clicknupload.link", + "clicknupload.name", + "clicknupload.one", + "clicknupload.online", + "clicknupload.org", + "clicknupload.red", + "clicknupload.site", + "clicknupload.space", + "clicknupload.to", + "clicknupload.vip", + "clicknupload.xyz" + ], + "regexps": [ + "clicknupload\\.(link|org|red|co|cc|vip|to|club|click|xyz|online|download|site|space|one|name)/([a-zA-Z0-9]+)", + "clickndownload\\.(org|space|link|click|link|xyz|name|cc)/([a-zA-Z0-9]+)" + ], + "regexp": "(clicknupload\\.(link|org|red|co|cc|vip|to|club|click|xyz|online|download|site|space|one|name)/([a-zA-Z0-9]+))|(clickndownload\\.(org|space|link|click|link|xyz|name|cc)/([a-zA-Z0-9]+))" + }, + "clipwatching": { + "name": "clipwatching", + "type": "premium", + "domains": [ + "clipwatching.com", + "highstream.tv" + ], + "regexps": [ + "((clipwatching\\.com|highstream\\.tv)/(embed\\-)?([a-z0-9]{12}))" + ], + "regexp": "((clipwatching\\.com|highstream\\.tv)/(embed\\-)?([a-z0-9]{12}))" + }, + "dailyuploads": { + "name": "dailyuploads", + "type": "free", + "domains": [ + "dailyuploads.net" + ], + "regexps": [ + "(dailyuploads\\.net/[0-9a-zA-Z]{12})" + ], + "regexp": "(dailyuploads\\.net/[0-9a-zA-Z]{12})" + }, + "ddl": { + "name": "ddl", + "type": "premium", + "domains": [ + "ddl.to", + "ddownload.com" + ], + "regexps": [ + "(ddownload\\.com/[0-9a-zA-Z]{12})", + "ddl\\.to/([0-9a-zA-Z]{12})" + ], + "regexp": "((ddownload\\.com/[0-9a-zA-Z]{12}))|(ddl\\.to/([0-9a-zA-Z]{12}))", + "status": true + }, + "dropapk": { + "name": "dropapk", + "type": "premium", + "domains": [ + "dropapk.to", + "drop.download" + ], + "regexps": [ + "dropapk\\.to/([0-9a-zA-Z]{9,12})", + "(drop\\.download/[0-9a-zA-Z]{9,12})" + ], + "regexp": "(dropapk\\.to/([0-9a-zA-Z]{9,12}))|((drop\\.download/[0-9a-zA-Z]{9,12}))", + "status": false, + "hardRedirect": [ + "drop\\.download/([0-9a-zA-Z]{12})" + ] + }, + "dropgalaxy": { + "name": "dropgalaxy", + "type": "premium", + "domains": [ + "dropgalaxy.in", + "dgdrive.pro", + "dgdrive.xyz", + "dgdrive.site", + "dgdrive.store", + "dropgalaxy.com", + "dropgalaxy.vip" + ], + "regexps": [ + "dgdrive\\.pro/([0-9a-zA-Z]{12})", + "dgdrive\\.xyz/([0-9a-zA-Z]{12})", + "dgdrive\\.site/([0-9a-zA-Z]{12})", + "dgdrive\\.store/([0-9a-zA-Z]{12})", + "dropgalaxy\\.(in|com|vip)(/drive)?/([0-9a-zA-Z]{12})" + ], + "regexp": "(dgdrive\\.pro/([0-9a-zA-Z]{12}))|(dgdrive\\.xyz/([0-9a-zA-Z]{12}))|(dgdrive\\.site/([0-9a-zA-Z]{12}))|(dgdrive\\.store/([0-9a-zA-Z]{12}))|(dropgalaxy\\.(in|com|vip)(/drive)?/([0-9a-zA-Z]{12}))", + "status": false + }, + "example": { + "name": "example", + "type": "premium", + "domains": [ + "example.com", + "example.net" + ], + "regexps": [ + "(example\\.com/[0-9a-zA-Z]{4,20})", + "example\\.net/([0-9a-zA-Z]{4,20})" + ], + "regexp": "((example\\.com/[0-9a-zA-Z]{4,20}))|(example\\.net/([0-9a-zA-Z]{4,20}))" + }, + "exload": { + "name": "exload", + "type": "free", + "domains": [ + "exload.com", + "mixdrop.to", + "mixdrop.sx" + ], + "regexps": [ + "(ex\\-load\\.com/[0-9a-zA-Z]{12})", + "ex-load\\.com/dl\\?op=[0-9a-zA-Z]+&id=([0-9a-zA-Z]{12})" + ], + "regexp": "((ex\\-load\\.com/[0-9a-zA-Z]{12}))|(ex-load\\.com/dl\\?op=[0-9a-zA-Z]+&id=([0-9a-zA-Z]{12}))" + }, + "fastbit": { + "name": "fastbit", + "type": "premium", + "domains": [ + "fastbit.cc" + ], + "regexps": [ + "(fastbit\\.cc/[0-9a-zA-Z]{12})" + ], + "regexp": "(fastbit\\.cc/[0-9a-zA-Z]{12})", + "status": true + }, + "file-upload": { + "name": "file-upload", + "type": "premium", + "domains": [ + "file-upload.com", + "file-upload.org", + "file-upload.in", + "file-up.org" + ], + "regexps": [ + "(file-up\\.org|file-upload\\.com|file-upload\\.org|file-upload\\.in)/([0-9a-zA-Z]{12})" + ], + "regexp": "(file-up\\.org|file-upload\\.com|file-upload\\.org|file-upload\\.in)/([0-9a-zA-Z]{12})", + "status": true + }, + "fileal": { + "name": "fileal", + "type": "premium", + "domains": [ + "file.al" + ], + "regexps": [ + "(file\\.al/[0-9a-zA-Z]{12})" + ], + "regexp": "(file\\.al/[0-9a-zA-Z]{12})", + "status": true + }, + "filedot": { + "name": "filedot", + "type": "premium", + "domains": [ + "filedot.to", + "filedot.xyz", + "filedot.top" + ], + "regexps": [ + "filedot\\.(xyz|to|top)/([0-9a-zA-Z]{12})" + ], + "regexp": "filedot\\.(xyz|to|top)/([0-9a-zA-Z]{12})", + "status": true + }, + "filefactory": { + "name": "filefactory", + "type": "premium", + "domains": [ + "filefactory.com" + ], + "regexps": [ + "(filefactory\\.com/file/([0-9a-zA-Z]+))" + ], + "regexp": "(filefactory\\.com/file/([0-9a-zA-Z]+))", + "status": false + }, + "filerio": { + "name": "filerio", + "type": "free", + "domains": [ + "filerio.in" + ], + "regexps": [ + "(filerio\\.in/[a-zA-Z0-9]{12})" + ], + "regexp": "(filerio\\.in/[a-zA-Z0-9]{12})" + }, + "filespace": { + "name": "filespace", + "type": "premium", + "domains": [ + "filespace.com" + ], + "regexps": [ + "filespace\\.com/fd/([a-zA-Z0-9]{12})", + "(filespace\\.com/[a-zA-Z0-9]{12})" + ], + "regexp": "(filespace\\.com/fd/([a-zA-Z0-9]{12}))|((filespace\\.com/[a-zA-Z0-9]{12}))", + "status": true + }, + "filezip": { + "name": "filezip", + "type": "free", + "domains": [ + "filezip.cc" + ], + "regexps": [ + "(filezip\\.cc/[0-9a-zA-Z]{12})" + ], + "regexp": "(filezip\\.cc/[0-9a-zA-Z]{12})" + }, + "gigapeta": { + "name": "gigapeta", + "type": "premium", + "domains": [ + "gigapeta.com" + ], + "regexps": [ + "(gigapeta\\.com/dl/[0-9a-zA-Z]{13,15})" + ], + "regexp": "(gigapeta\\.com/dl/[0-9a-zA-Z]{13,15})", + "status": false + }, + "google": { + "name": "google", + "type": "premium", + "domains": [ + "drive.google.com" + ], + "regexps": [ + "((drive|docs)\\.google\\.com/open\\?id=([0-9A-Za-z_-]+))", + "(drive|docs)\\.google\\.com/file/d/([0-9A-Za-z_-]+)", + "google\\.com/uc\\?id=([0-9A-Za-z_-]+)" + ], + "regexp": "(((drive|docs)\\.google\\.com/open\\?id=([0-9A-Za-z_-]+)))|((drive|docs)\\.google\\.com/file/d/([0-9A-Za-z_-]+))|(google\\.com/uc\\?id=([0-9A-Za-z_-]+))", + "status": true + }, + "hexupload": { + "name": "hexupload", + "type": "premium", + "domains": [ + "hexupload.net", + "hexload.com" + ], + "regexps": [ + "(hexupload\\.net|hexload\\.com)/([a-zA-Z0-9]{12})" + ], + "regexp": "(hexupload\\.net|hexload\\.com)/([a-zA-Z0-9]{12})", + "status": false + }, + "hot4share": { + "name": "hot4share", + "type": "free", + "domains": [ + "hot4share.com" + ], + "regexps": [ + "(hot4share\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(hot4share\\.com/[0-9a-zA-Z]{12})" + }, + "indishare": { + "name": "indishare", + "type": "free", + "domains": [ + "indishare.me", + "indishare.org", + "indishare.info" + ], + "regexps": [ + "indishare\\.(me|org|info)/([0-9a-zA-Z]{12})" + ], + "regexp": "indishare\\.(me|org|info)/([0-9a-zA-Z]{12})", + "status": false + }, + "isra": { + "name": "isra", + "type": "premium", + "domains": [ + "isra.cloud" + ], + "regexps": [ + "(isra\\.cloud/[0-9a-zA-Z]{12})", + "isra\\.cloud/\\?op=report_file&id=([0-9a-zA-Z]{12})" + ], + "regexp": "((isra\\.cloud/[0-9a-zA-Z]{12}))|(isra\\.cloud/\\?op=report_file&id=([0-9a-zA-Z]{12}))", + "status": true, + "hardRedirect": [ + "isra\\.cloud/([0-9a-zA-Z]{12})" + ] + }, + "katfile": { + "name": "katfile", + "type": "premium", + "domains": [ + "katfile.com", + "katfile.cloud", + "katfile.online" + ], + "regexps": [ + "katfile\\.(cloud|online)/([0-9a-zA-Z]{12})", + "(katfile\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(katfile\\.(cloud|online)/([0-9a-zA-Z]{12}))|((katfile\\.com/[0-9a-zA-Z]{12}))", + "status": true + }, + "mediafire": { + "name": "mediafire", + "type": "premium", + "domains": [ + "mediafire.com" + ], + "regexps": [ + "mediafire\\.com/(\\?|download/|file/|download\\.php\\?)([0-9a-z]{15})" + ], + "regexp": "mediafire\\.com/(\\?|download/|file/|download\\.php\\?)([0-9a-z]{15})", + "status": false + }, + "mexashare": { + "name": "mexashare", + "type": "premium", + "domains": [ + "mexashare.com", + "mx-sh.net", + "mexa.sh" + ], + "regexps": [ + "((mexashare\\.com|mx-sh\\.net|mexa\\.sh)/[0-9a-zA-Z]{12})" + ], + "regexp": "((mexashare\\.com|mx-sh\\.net|mexa\\.sh)/[0-9a-zA-Z]{12})", + "status": false + }, + "mixdrop": { + "name": "mixdrop", + "type": "free", + "domains": [ + "mixdrop.co", + "mixdrop.to", + "mixdrop.sx" + ], + "regexps": [ + "(mixdrop\\.(co|to|sx)/(f|e)/([0-9a-zA-Z]{5,15}))" + ], + "regexp": "(mixdrop\\.(co|to|sx)/(f|e)/([0-9a-zA-Z]{5,15}))" + }, + "modsbase": { + "name": "modsbase", + "type": "premium", + "domains": [ + "modsbase.com" + ], + "regexps": [ + "(modsbase\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(modsbase\\.com/[0-9a-zA-Z]{12})", + "status": false + }, + "mp4upload": { + "name": "mp4upload", + "type": "premium", + "domains": [ + "mp4upload.com" + ], + "regexps": [ + "(mp4upload\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(mp4upload\\.com/[0-9a-zA-Z]{12})", + "status": true + }, + "prefiles": { + "name": "prefiles", + "type": "premium", + "domains": [ + "prefiles.com" + ], + "regexps": [ + "(prefiles\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(prefiles\\.com/[0-9a-zA-Z]{12})", + "status": true + }, + "scribd": { + "name": "scribd", + "type": "premium", + "domains": [ + "scribd.com" + ], + "regexps": [ + "(scribd\\.com/(doc|document|presentation)/[0-9]+/[!\\#$&-;=?-\\[\\]_a-zA-Z0-9~]*)" + ], + "regexp": "(scribd\\.com/(doc|document|presentation)/[0-9]+/[!\\#$&-;=?-\\[\\]_a-zA-Z0-9~]*)", + "status": false + }, + "sendit": { + "name": "sendit", + "type": "premium", + "domains": [ + "sendit.cloud", + "send.cm", + "send.now" + ], + "regexps": [ + "(send\\.(cm|now)/[a-zA-Z0-9]{12})", + "(sendit\\.cloud/[a-zA-Z0-9]{12})", + "sendit\\.cloud/embedmp3-([a-zA-Z0-9]{12})" + ], + "regexp": "((send\\.(cm|now)/[a-zA-Z0-9]{12}))|((sendit\\.cloud/[a-zA-Z0-9]{12}))|(sendit\\.cloud/embedmp3-([a-zA-Z0-9]{12}))", + "status": false + }, + "sharemods": { + "name": "sharemods", + "type": "premium", + "domains": [ + "sharemods.com" + ], + "regexps": [ + "(sharemods\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(sharemods\\.com/[0-9a-zA-Z]{12})", + "status": false + }, + "simfileshare": { + "name": "simfileshare", + "type": "premium", + "domains": [ + "simfileshare.net" + ], + "regexps": [ + "(simfileshare\\.net/download/[0-9]+/)" + ], + "regexp": "(simfileshare\\.net/download/[0-9]+/)", + "status": true + }, + "streamtape": { + "name": "streamtape", + "type": "premium", + "domains": [ + "streamtape.com" + ], + "regexps": [ + "(streamtape\\.com/v/[0-9a-zA-Z]{10,})" + ], + "regexp": "(streamtape\\.com/v/[0-9a-zA-Z]{10,})" + }, + "upload42": { + "name": "upload42", + "type": "premium", + "domains": [ + "upload42.com" + ], + "regexps": [ + "(upload42\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(upload42\\.com/[0-9a-zA-Z]{12})", + "status": true + }, + "uploadbank": { + "name": "uploadbank", + "type": "free", + "domains": [ + "uploadbank.com" + ], + "regexps": [ + "(uploadbank\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(uploadbank\\.com/[0-9a-zA-Z]{12})" + }, + "uploadbox": { + "name": "uploadbox", + "type": "free", + "domains": [ + "uploadbox.io" + ], + "regexps": [ + "(uploadbox\\.io/[0-9a-zA-Z]{12}(\\?token=[a-zA-Z0-9._-]+)?)" + ], + "regexp": "(uploadbox\\.io/[0-9a-zA-Z]{12}(\\?token=[a-zA-Z0-9._-]+)?)" + }, + "uploadboy": { + "name": "uploadboy", + "type": "premium", + "domains": [ + "uploadboy.com" + ], + "regexps": [ + "(uploadboy\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(uploadboy\\.com/[0-9a-zA-Z]{12})", + "status": true + }, + "uploader": { + "name": "uploader", + "type": "premium", + "domains": [ + "uploader.link" + ], + "regexps": [ + "(uploader\\.link/[0-9a-zA-Z]{12})" + ], + "regexp": "(uploader\\.link/[0-9a-zA-Z]{12})" + }, + "uploadhaven": { + "name": "uploadhaven", + "type": "premium", + "domains": [ + "uploadhaven.com" + ], + "regexps": [ + "(uploadhaven\\.com/download/[0-9a-z]{32})" + ], + "regexp": "(uploadhaven\\.com/download/[0-9a-z]{32})" + }, + "uploadrar": { + "name": "uploadrar", + "type": "premium", + "domains": [ + "uploadrar.com" + ], + "regexps": [ + "(get|cloud)\\.rahim-soft\\.com/([0-9a-z]{12})", + "(fingau\\.com/([0-9a-z]{12}))", + "(tech|miui|cloud|flash)\\.getpczone\\.com/([0-9a-z]{12})", + "miui.rahim-soft\\.com/([0-9a-z]{12})", + "uploadrar\\.(net|com)/([0-9a-z]{12})" + ], + "regexp": "((get|cloud)\\.rahim-soft\\.com/([0-9a-z]{12}))|((fingau\\.com/([0-9a-z]{12})))|((tech|miui|cloud|flash)\\.getpczone\\.com/([0-9a-z]{12}))|(miui.rahim-soft\\.com/([0-9a-z]{12}))|(uploadrar\\.(net|com)/([0-9a-z]{12}))", + "status": true, + "hardRedirect": [ + "uploadrar.com/([0-9a-zA-Z]{12})" + ] + }, + "usersdrive": { + "name": "usersdrive", + "type": "free", + "domains": [ + "usersdrive.com" + ], + "regexps": [ + "(usersdrive\\.com/[0-9a-zA-Z]{12})" + ], + "regexp": "(usersdrive\\.com/[0-9a-zA-Z]{12})" + }, + "vev": { + "name": "vev", + "type": "premium", + "domains": [ + "vev.io", + "thevideo.me" + ], + "regexps": [ + "((vev\\.io)/(embed[/-])?([a-z0-9]{12}))", + "((thevideo\\.me)/(embed[/-])?([a-z0-9]{12}))" + ], + "regexp": "(((vev\\.io)/(embed[/-])?([a-z0-9]{12})))|(((thevideo\\.me)/(embed[/-])?([a-z0-9]{12})))" + }, + "vidoza": { + "name": "vidoza", + "type": "premium", + "domains": [ + "vidoza.net", + "vidoza.org" + ], + "regexps": [ + "((vidoza\\.(net|org))/(embed\\-)?([a-z0-9]{12}))" + ], + "regexp": "((vidoza\\.(net|org))/(embed\\-)?([a-z0-9]{12}))", + "status": true + }, + "vidtodo": { + "name": "vidtodo", + "type": "premium", + "domains": [ + "playvidto.com", + "vidtodo.com", + "vidto-do.com", + "widtodo.com", + "widtodo.com" + ], + "regexps": [ + "((playvidto|vidtodo|vidto-do|widtodo)\\.com/(embed\\-)?([a-z0-9]{12}))" + ], + "regexp": "((playvidto|vidtodo|vidto-do|widtodo)\\.com/(embed\\-)?([a-z0-9]{12}))" + }, + "world-files": { + "name": "world-files", + "type": "premium", + "domains": [ + "world-files.com", + "upl.wf" + ], + "regexps": [ + "(world\\-files\\.com/[0-9a-zA-Z]{12})", + "(upl\\.wf/d/[0-9a-zA-Z]+)" + ], + "regexp": "((world\\-files\\.com/[0-9a-zA-Z]{12}))|((upl\\.wf/d/[0-9a-zA-Z]+))", + "status": true, + "hardRedirect": [ + "world\\-files\\.com/([0-9a-zA-Z]{12})" + ] + }, + "worldbytez": { + "name": "worldbytez", + "type": "premium", + "domains": [ + "worldbytez.com", + "worldbytez.net" + ], + "regexps": [ + "(worldbytez\\.(net|com)/[a-zA-Z0-9]{12})" + ], + "regexp": "(worldbytez\\.(net|com)/[a-zA-Z0-9]{12})", + "status": false + } + }, + "streams": { + "dailymotion": { + "name": "dailymotion", + "type": "free", + "domains": [ + "dailymotion.com", + "geo.dailymotion.com", + "lequipe.fr", + "dai.ly" + ], + "regexps": [ + "(?ix)\n (?:https?:)?//\n (?:\n dai\\.ly/|\n (?:\n (?:(?:www|touch|geo)\\.)?dailymotion\\.[a-z]{2,3}|\n (?:www\\.)?lequipe\\.fr\n )/\n (?:\n swf/(?!video)|\n (?:(?:crawler|embed|swf)/)?video/|\n player(?:/[\\da-z]+)?\\.html\\?(?:video|(playlist))=\n )\n )\n ([^/?_&#]+)(?:[\\w-]*\\?playlist=(x[0-9a-z]+))?\n ", + "(?:https?://)?(?:www\\.)?dailymotion\\.[a-z]{2,3}/playlist/(x[0-9a-z]+)", + "https?://(?:www\\.)?dailymotion\\.[a-z]{2,3}/search/([^/?#]+)/videos", + "https?://(?:www\\.)?dailymotion\\.[a-z]{2,3}/(?!(?:embed|swf|#|video|playlist|search|crawler)/)(?:(?:old/)?user/)?([^/?#]+)" + ], + "regexp": "((?ix)\n (?:https?:)?//\n (?:\n dai\\.ly/|\n (?:\n (?:(?:www|touch|geo)\\.)?dailymotion\\.[a-z]{2,3}|\n (?:www\\.)?lequipe\\.fr\n )/\n (?:\n swf/(?!video)|\n (?:(?:crawler|embed|swf)/)?video/|\n player(?:/[\\da-z]+)?\\.html\\?(?:video|(playlist))=\n )\n )\n ([^/?_&#]+)(?:[\\w-]*\\?playlist=(x[0-9a-z]+))?\n )|((?:https?://)?(?:www\\.)?dailymotion\\.[a-z]{2,3}/playlist/(x[0-9a-z]+))|(https?://(?:www\\.)?dailymotion\\.[a-z]{2,3}/search/([^/?#]+)/videos)|(https?://(?:www\\.)?dailymotion\\.[a-z]{2,3}/(?!(?:embed|swf|#|video|playlist|search|crawler)/)(?:(?:old/)?user/)?([^/?#]+))" + }, + "twitch": { + "name": "twitch", + "type": "free", + "domains": [ + "clips.twitch.tv", + "twitch.tv", + "m.twitch.tv", + "go.twitch.tv", + "player.twitch.tv" + ], + "regexps": [ + "https?://(?:clips\\.twitch\\.tv/(?:embed\\?.*?\\bclip=|(?:[^/]+/)*)|(?:(?:www|go|m)\\.)?twitch\\.tv/(?:[^/]+/)?clip/)([^/?#&]+)", + "https?://(?:(?:www|go|m)\\.)?twitch\\.tv/collections/([^/]+)", + "https?://(?:(?:(?:www|go|m)\\.)?twitch\\.tv/|player\\.twitch\\.tv/\\?.*?\\bchannel=)([^/#?]+)", + "https?://(?:(?:www|go|m)\\.)?twitch\\.tv/([^/]+)/(?:clips|videos/*?\\?.*?\\bfilter=clips)", + "https?://(?:(?:www|go|m)\\.)?twitch\\.tv/([^/]+)/videos/*?\\?.*?\\bfilter=collections", + "https?://(?:(?:www|go|m)\\.)?twitch\\.tv/([^/]+)/(?:videos|profile)", + "https?://(?:(?:(?:www|go|m)\\.)?twitch\\.tv/(?:[^/]+/v(?:ideo)?|videos)/|player\\.twitch\\.tv/\\?.*?\\bvideo=v?|www\\.twitch\\.tv/[^/]+/schedule\\?vodID=)(\\d+)" + ], + "regexp": "(https?://(?:clips\\.twitch\\.tv/(?:embed\\?.*?\\bclip=|(?:[^/]+/)*)|(?:(?:www|go|m)\\.)?twitch\\.tv/(?:[^/]+/)?clip/)([^/?#&]+))|(https?://(?:(?:www|go|m)\\.)?twitch\\.tv/collections/([^/]+))|(https?://(?:(?:(?:www|go|m)\\.)?twitch\\.tv/|player\\.twitch\\.tv/\\?.*?\\bchannel=)([^/#?]+))|(https?://(?:(?:www|go|m)\\.)?twitch\\.tv/([^/]+)/(?:clips|videos/*?\\?.*?\\bfilter=clips))|(https?://(?:(?:www|go|m)\\.)?twitch\\.tv/([^/]+)/videos/*?\\?.*?\\bfilter=collections)|(https?://(?:(?:www|go|m)\\.)?twitch\\.tv/([^/]+)/(?:videos|profile))|(https?://(?:(?:(?:www|go|m)\\.)?twitch\\.tv/(?:[^/]+/v(?:ideo)?|videos)/|player\\.twitch\\.tv/\\?.*?\\bvideo=v?|www\\.twitch\\.tv/[^/]+/schedule\\?vodID=)(\\d+))" + }, + "soundcloud": { + "name": "soundcloud", + "type": "free", + "domains": [ + "soundcloud.com", + "api.soundcloud.com" + ], + "regexps": [ + "^(?:https?://)?(?:(?:(?:www\\.|m\\.)?soundcloud\\.com/(?!stations/track)([\\w\\d-]+)/(?!(?:tracks|albums|sets(?:/.+?)?|reposts|likes|spotlight|comments)/?(?:$|[?#]))([\\w\\d-]+)(?:/((?!(?:albums|sets|recommended))[^?]+?))?(?:[?].*)?$)|(?:api(?:-v2)?\\.soundcloud\\.com/tracks/(?:soundcloud%3Atracks%3A)?(\\d+)(?:/?\\?secret_token=([^&]+))?))", + "https?://api(?:-v2)?\\.soundcloud\\.com/playlists/(?:soundcloud(?:%3A|:)playlists(?:%3A|:))?([0-9]+)(?:/?\\?secret_token=([^&]+?))?$", + "https?://(?:(?:www|m)\\.)?soundcloud\\.com/([\\w\\d-]+/[\\w\\d-]+)/(albums|sets|recommended)", + "scsearch(|[1-9][0-9]*|all):([\\s\\S]+)", + "https?://(?:(?:www|m)\\.)?soundcloud\\.com/([\\w\\d-]+)/sets/([:\\w\\d-]+)(?:/([^?/]+))?", + "https?://(?:(?:www|m)\\.)?soundcloud\\.com/stations/track/[^/]+/([^/?#&]+)", + "https?://(?:(?:www|m)\\.)?soundcloud\\.com/([^/]+)(?:/(tracks|albums|sets|reposts|likes|spotlight|comments))?/?(?:[?#].*)?$", + "https?://api\\.soundcloud\\.com/users/(\\d+)" + ], + "regexp": "(^(?:https?://)?(?:(?:(?:www\\.|m\\.)?soundcloud\\.com/(?!stations/track)([\\w\\d-]+)/(?!(?:tracks|albums|sets(?:/.+?)?|reposts|likes|spotlight|comments)/?(?:$|[?#]))([\\w\\d-]+)(?:/((?!(?:albums|sets|recommended))[^?]+?))?(?:[?].*)?$)|(?:api(?:-v2)?\\.soundcloud\\.com/tracks/(?:soundcloud%3Atracks%3A)?(\\d+)(?:/?\\?secret_token=([^&]+))?)))|(https?://api(?:-v2)?\\.soundcloud\\.com/playlists/(?:soundcloud(?:%3A|:)playlists(?:%3A|:))?([0-9]+)(?:/?\\?secret_token=([^&]+?))?$)|(https?://(?:(?:www|m)\\.)?soundcloud\\.com/([\\w\\d-]+/[\\w\\d-]+)/(albums|sets|recommended))|(scsearch(|[1-9][0-9]*|all):([\\s\\S]+))|(https?://(?:(?:www|m)\\.)?soundcloud\\.com/([\\w\\d-]+)/sets/([:\\w\\d-]+)(?:/([^?/]+))?)|(https?://(?:(?:www|m)\\.)?soundcloud\\.com/stations/track/[^/]+/([^/?#&]+))|(https?://(?:(?:www|m)\\.)?soundcloud\\.com/([^/]+)(?:/(tracks|albums|sets|reposts|likes|spotlight|comments))?/?(?:[?#].*)?$)|(https?://api\\.soundcloud\\.com/users/(\\d+))" + }, + "vimeo": { + "name": "vimeo", + "type": "free", + "domains": [ + "vimeo.com", + "player.vimeo.com", + "vimeopro.com" + ], + "regexps": [ + "https://vimeo\\.com/(?:album|showcase)/([^/?#]+)(?:$|[?#]|(/embed))", + "https://vimeo\\.com/channels/([^/?#]+)/?(?:$|[?#])", + "https?://(?:www\\.)?vimeo\\.com/event/(\\d+)(?:/(?:(?:embed/)?([\\da-f]{10})|videos/(\\d+)))?", + "https://vimeo\\.com/groups/([^/]+)(?:/(?!videos?/\\d+)|$)", + "https?://(?:(?:www|player)\\.)?vimeo\\.com/(?:(user)|(?!(?:channels|album|showcase)/[^/?#]+/?(?:$|[?#])|[^/]+/review/|ondemand/)(?:(?!event/).*?/)??((?:play_redirect_hls|moogaloop\\.swf)\\?clip_id=)?(?:videos?/)?)([0-9]+)(/(?!videos|likes)[^/?#]+/?|(|/([\\da-f]{10}))?)(?:([&]|(|/?)[?]).*?)?(?:[#].*)?$", + "https://(?:www\\.)?vimeo\\.com/([^/]+)/likes/?(?:$|[?#]|sort:)", + "https?://(?:www\\.)?vimeo\\.com/ondemand/(?:[^/]+/)?([^/?#&]+)", + "https?://(?:www\\.)?vimeopro\\.com/[^/?#]+/([^/?#]+)(?:(?:/videos?/([0-9]+)))?", + "https?://vimeo\\.com/([^/?#]+)/review/(\\d+)/([\\da-f]{10})", + "https://vimeo\\.com/(?!(?:[0-9]+|watchlater)(?:$|[?#/]))([^/]+)(?:/videos)?/?(?:$|[?#])", + "https://vimeo\\.com/(?:home/)?watchlater|:vimeowatchlater" + ], + "regexp": "(https://vimeo\\.com/(?:album|showcase)/([^/?#]+)(?:$|[?#]|(/embed)))|(https://vimeo\\.com/channels/([^/?#]+)/?(?:$|[?#]))|(https?://(?:www\\.)?vimeo\\.com/event/(\\d+)(?:/(?:(?:embed/)?([\\da-f]{10})|videos/(\\d+)))?)|(https://vimeo\\.com/groups/([^/]+)(?:/(?!videos?/\\d+)|$))|(https?://(?:(?:www|player)\\.)?vimeo\\.com/(?:(user)|(?!(?:channels|album|showcase)/[^/?#]+/?(?:$|[?#])|[^/]+/review/|ondemand/)(?:(?!event/).*?/)??((?:play_redirect_hls|moogaloop\\.swf)\\?clip_id=)?(?:videos?/)?)([0-9]+)(/(?!videos|likes)[^/?#]+/?|(|/([\\da-f]{10}))?)(?:([&]|(|/?)[?]).*?)?(?:[#].*)?$)|(https://(?:www\\.)?vimeo\\.com/([^/]+)/likes/?(?:$|[?#]|sort:))|(https?://(?:www\\.)?vimeo\\.com/ondemand/(?:[^/]+/)?([^/?#&]+))|(https?://(?:www\\.)?vimeopro\\.com/[^/?#]+/([^/?#]+)(?:(?:/videos?/([0-9]+)))?)|(https?://vimeo\\.com/([^/?#]+)/review/(\\d+)/([\\da-f]{10}))|(https://vimeo\\.com/(?!(?:[0-9]+|watchlater)(?:$|[?#/]))([^/]+)(?:/videos)?/?(?:$|[?#]))|(https://vimeo\\.com/(?:home/)?watchlater|:vimeowatchlater)" + }, + "1news": { + "name": "1news", + "type": "free", + "domains": [ + "1news.co.nz", + "onenews.co.nz" + ], + "regexps": [ + "https?://(?:www\\.)?(?:1|one)news\\.co\\.nz/\\d+/\\d+/\\d+/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?(?:1|one)news\\.co\\.nz/\\d+/\\d+/\\d+/([^/?#&]+)" + }, + "1tv": { + "name": "1tv", + "type": "free", + "domains": [ + "1tv.ru", + "sport1tv.ru" + ], + "regexps": [ + "https?://(?:www\\.)?(?:sport)?1tv\\.ru/(?:[^/?#]+/)+([^/?#]+)", + "https?://(?:www\\.)?1tv\\.ru/live" + ], + "regexp": "(https?://(?:www\\.)?(?:sport)?1tv\\.ru/(?:[^/?#]+/)+([^/?#]+))|(https?://(?:www\\.)?1tv\\.ru/live)" + }, + "3qsdn": { + "name": "3qsdn", + "type": "free", + "domains": [ + "playout.3qsdn.com" + ], + "regexps": [ + "https?://playout\\.3qsdn\\.com/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + ], + "regexp": "https?://playout\\.3qsdn\\.com/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + }, + "3sat": { + "name": "3sat", + "type": "free", + "domains": [ + "3sat.de" + ], + "regexps": [ + "https?://(?:www\\.)?3sat\\.de/(?:[^/?#]+/)*([^/?#&]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?3sat\\.de/(?:[^/?#]+/)*([^/?#&]+)\\.html" + }, + "4tube": { + "name": "4tube", + "type": "free", + "domains": [ + "4tube.com", + "m.4tube.com" + ], + "regexps": [ + "https?://(?:(www|m)\\.)?4tube\\.com/(?:videos|embed)/(\\d+)(?:/([^/?#&]+))?" + ], + "regexp": "https?://(?:(www|m)\\.)?4tube\\.com/(?:videos|embed)/(\\d+)(?:/([^/?#&]+))?" + }, + "7plus": { + "name": "7plus", + "type": "free", + "domains": [ + "7plus.com.au" + ], + "regexps": [ + "https?://(?:www\\.)?7plus\\.com\\.au/([^?]+\\?.*?\\bepisode-id=([^&#]+))" + ], + "regexp": "https?://(?:www\\.)?7plus\\.com\\.au/([^?]+\\?.*?\\bepisode-id=([^&#]+))" + }, + "8tracks": { + "name": "8tracks", + "type": "free", + "domains": [], + "regexps": [ + "https?://8tracks\\.com/([^/]+)/([^/#]+)(?:#.*)?$" + ], + "regexp": "https?://8tracks\\.com/([^/]+)/([^/#]+)(?:#.*)?$" + }, + "9c9media": { + "name": "9c9media", + "type": "free", + "domains": [], + "regexps": [ + "9c9media:([^:]+):(\\d+)" + ], + "regexp": "9c9media:([^:]+):(\\d+)" + }, + "9news": { + "name": "9news", + "type": "free", + "domains": [ + "9news.com.au" + ], + "regexps": [ + "https?://(?:www\\.)?9news\\.com\\.au/(?:[\\w-]+/){2,3}([\\w-]+)/?(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?9news\\.com\\.au/(?:[\\w-]+/){2,3}([\\w-]+)/?(?:$|[?#])" + }, + "9now.com.au": { + "name": "9now.com.au", + "type": "free", + "domains": [ + "9now.com.au" + ], + "regexps": [ + "https?://(?:www\\.)?9now\\.com\\.au/(?:[^/?#]+/){2}((clip|episode)-[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?9now\\.com\\.au/(?:[^/?#]+/){2}((clip|episode)-[^/?#]+)" + }, + "10play": { + "name": "10play", + "type": "free", + "domains": [ + "10.com.au", + "10play.com.au" + ], + "regexps": [ + "https?://(?:www\\.)?10(?:play)?\\.com\\.au/(?:[^/?#]+/)+(tpv\\d{6}[a-z]{5})", + "https?://(?:www\\.)?10(?:play)?\\.com\\.au/([^/?#]+)/episodes/([^/?#]+)/?(?:$|[?#])" + ], + "regexp": "(https?://(?:www\\.)?10(?:play)?\\.com\\.au/(?:[^/?#]+/)+(tpv\\d{6}[a-z]{5}))|(https?://(?:www\\.)?10(?:play)?\\.com\\.au/([^/?#]+)/episodes/([^/?#]+)/?(?:$|[?#]))" + }, + "17live": { + "name": "17live", + "type": "free", + "domains": [ + "17.live" + ], + "regexps": [ + "https?://(?:www\\.)?17\\.live/(?:[^/]+/)*profile/r/(\\d+)/clip/([^/]+)", + "https?://(?:www\\.)?17\\.live/(?:[^/]+/)*(?:live|profile/r)/(\\d+)", + "https?://(?:www\\.)?17\\.live/ja/vod/[^/?#]+/([^/?#]+)" + ], + "regexp": "(https?://(?:www\\.)?17\\.live/(?:[^/]+/)*profile/r/(\\d+)/clip/([^/]+))|(https?://(?:www\\.)?17\\.live/(?:[^/]+/)*(?:live|profile/r)/(\\d+))|(https?://(?:www\\.)?17\\.live/ja/vod/[^/?#]+/([^/?#]+))" + }, + "20min": { + "name": "20min", + "type": "free", + "domains": [ + "20min.ch" + ], + "regexps": [ + "https?://(?:www\\.)?20min\\.ch/(?:videotv/*\\?.*?\\bvid=|videoplayer/videoplayer\\.html\\?.*?\\bvideoId@)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?20min\\.ch/(?:videotv/*\\?.*?\\bvid=|videoplayer/videoplayer\\.html\\?.*?\\bvideoId@)(\\d+)" + }, + "23video": { + "name": "23video", + "type": "free", + "domains": [ + "video.twentythree.net", + "bonnier-publications-danmark.23video.com" + ], + "regexps": [ + "https?://([^.]+\\.(?:twentythree\\.net|23video\\.com|filmweb\\.no))/v\\.ihtml/player\\.html\\?(.*?\\bphoto(?:_|%5f)id=(\\d+).*)" + ], + "regexp": "https?://([^.]+\\.(?:twentythree\\.net|23video\\.com|filmweb\\.no))/v\\.ihtml/player\\.html\\?(.*?\\bphoto(?:_|%5f)id=(\\d+).*)" + }, + "24tv.ua": { + "name": "24tv.ua", + "type": "free", + "domains": [ + "24tv.ua" + ], + "regexps": [ + "https?://24tv\\.ua/news/showPlayer\\.do.*?(?:\\?|&)objectId=(\\d+)" + ], + "regexp": "https?://24tv\\.ua/news/showPlayer\\.do.*?(?:\\?|&)objectId=(\\d+)" + }, + "56.com": { + "name": "56.com", + "type": "free", + "domains": [ + "56.com" + ], + "regexps": [ + "https?://(?:(?:www|player)\\.)?56\\.com/(?:.+?/)?(?:v_|(?:play_album.+-))(.+?)\\.(?:html|swf)" + ], + "regexp": "https?://(?:(?:www|player)\\.)?56\\.com/(?:.+?/)?(?:v_|(?:play_album.+-))(.+?)\\.(?:html|swf)" + }, + "247sports": { + "name": "247sports", + "type": "free", + "domains": [ + "247sports.com" + ], + "regexps": [ + "https?://(?:www\\.)?247sports\\.com/Video/(?:[^/?#&]+-)?(\\d+)" + ], + "regexp": "https?://(?:www\\.)?247sports\\.com/Video/(?:[^/?#&]+-)?(\\d+)" + }, + "abc.net.au": { + "name": "abc.net.au", + "type": "free", + "domains": [ + "abc.net.au", + "iview.abc.net.au" + ], + "regexps": [ + "https?://(?:www\\.)?abc\\.net\\.au/(?:news|btn|listen)/(?:[^/?#]+/){1,4}(\\d{5,})", + "https?://iview\\.abc\\.net\\.au/(?:[^/]+/)*video/([^/?#]+)", + "https?://iview\\.abc\\.net\\.au/show/([^/]+)(?:/series/\\d+)?$" + ], + "regexp": "(https?://(?:www\\.)?abc\\.net\\.au/(?:news|btn|listen)/(?:[^/?#]+/){1,4}(\\d{5,}))|(https?://iview\\.abc\\.net\\.au/(?:[^/]+/)*video/([^/?#]+))|(https?://iview\\.abc\\.net\\.au/show/([^/]+)(?:/series/\\d+)?$)" + }, + "abcnews": { + "name": "abcnews", + "type": "free", + "domains": [ + "abcnews.go.com" + ], + "regexps": [ + "https?://abcnews\\.go\\.com/(?:[^/]+/)+([0-9a-z-]+)/story\\?id=(\\d+)", + "https?://(?:abcnews\\.go\\.com/(?:(?:[^/]+/)*video/([0-9a-z-]+)-|video/(?:embed|itemfeed)\\?.*?\\bid=)|fivethirtyeight\\.abcnews\\.go\\.com/video/embed/\\d+/)(\\d+)" + ], + "regexp": "(https?://abcnews\\.go\\.com/(?:[^/]+/)+([0-9a-z-]+)/story\\?id=(\\d+))|(https?://(?:abcnews\\.go\\.com/(?:(?:[^/]+/)*video/([0-9a-z-]+)-|video/(?:embed|itemfeed)\\?.*?\\bid=)|fivethirtyeight\\.abcnews\\.go\\.com/video/embed/\\d+/)(\\d+))" + }, + "abcotvs": { + "name": "abcotvs", + "type": "free", + "domains": [ + "abc7news.com", + "6abc.com" + ], + "regexps": [ + "https?://clips\\.abcotvs\\.com/(?:[^/]+/)*video/(\\d+)", + "https?://(abc(?:7(?:news|ny|chicago)?|11|13|30)|6abc)\\.com(?:(?:/[^/]+)*/([^/]+))?/(\\d+)" + ], + "regexp": "(https?://clips\\.abcotvs\\.com/(?:[^/]+/)*video/(\\d+))|(https?://(abc(?:7(?:news|ny|chicago)?|11|13|30)|6abc)\\.com(?:(?:/[^/]+)*/([^/]+))?/(\\d+))" + }, + "abematv": { + "name": "abematv", + "type": "free", + "domains": [ + "abema.tv" + ], + "regexps": [ + "https?://abema\\.tv/(now-on-air|video/episode|channels/.+?/slots)/([^?/]+)" + ], + "regexp": "https?://abema\\.tv/(now-on-air|video/episode|channels/.+?/slots)/([^?/]+)" + }, + "abematvtitle": { + "name": "abematvtitle", + "type": "free", + "domains": [ + "abema.tv" + ], + "regexps": [ + "https?://abema\\.tv/video/title/([^?/#]+)/?(?:\\?(?:[^#]+&)?s=([^&#]+))?" + ], + "regexp": "https?://abema\\.tv/video/title/([^?/#]+)/?(?:\\?(?:[^#]+&)?s=([^&#]+))?" + }, + "academicearth": { + "name": "academicearth", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?academicearth\\.org/playlists/([^?#/]+)" + ], + "regexp": "https?://(?:www\\.)?academicearth\\.org/playlists/([^?#/]+)" + }, + "acast": { + "name": "acast", + "type": "free", + "domains": [ + "acast.com", + "play.acast.com", + "shows.acast.com", + "embed.acast.com" + ], + "regexps": [ + "https?://(?:(?:(?:www|shows)\\.)?acast\\.com/|play\\.acast\\.com/s/)([^/#?]+)", + "(?x:\n https?://\n (?:\n (?:(?:embed|www|shows)\\.)?acast\\.com/|\n play\\.acast\\.com/s/\n )\n ([^/?#]+)/(?:episodes/)?([^/#?\"]+)\n )" + ], + "regexp": "(https?://(?:(?:(?:www|shows)\\.)?acast\\.com/|play\\.acast\\.com/s/)([^/#?]+))|((?x:\n https?://\n (?:\n (?:(?:embed|www|shows)\\.)?acast\\.com/|\n play\\.acast\\.com/s/\n )\n ([^/?#]+)/(?:episodes/)?([^/#?\"]+)\n ))" + }, + "acfunbangumi": { + "name": "acfunbangumi", + "type": "free", + "domains": [ + "acfun.cn" + ], + "regexps": [ + "https?://www\\.acfun\\.cn/bangumi/(aa[_\\d]+)" + ], + "regexp": "https?://www\\.acfun\\.cn/bangumi/(aa[_\\d]+)" + }, + "acfunvideo": { + "name": "acfunvideo", + "type": "free", + "domains": [ + "acfun.cn" + ], + "regexps": [ + "https?://www\\.acfun\\.cn/v/ac([_\\d]+)" + ], + "regexp": "https?://www\\.acfun\\.cn/v/ac([_\\d]+)" + }, + "adn": { + "name": "adn", + "type": "free", + "domains": [ + "animationdigitalnetwork.com" + ], + "regexps": [ + "https?://(?:www\\.)?animationdigitalnetwork\\.com/(?:(de)/)?video/[^/?#]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?animationdigitalnetwork\\.com/(?:(de)/)?video/[^/?#]+/(\\d+)" + }, + "adnseason": { + "name": "adnseason", + "type": "free", + "domains": [ + "animationdigitalnetwork.com" + ], + "regexps": [ + "https?://(?:www\\.)?animationdigitalnetwork\\.com/(?:(de)/)?video/(\\d+)[^/?#]*/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?animationdigitalnetwork\\.com/(?:(de)/)?video/(\\d+)[^/?#]*/?(?:$|[#?])" + }, + "adobeconnect": { + "name": "adobeconnect", + "type": "free", + "domains": [], + "regexps": [ + "https?://\\w+\\.adobeconnect\\.com/([\\w-]+)" + ], + "regexp": "https?://\\w+\\.adobeconnect\\.com/([\\w-]+)" + }, + "adobetv": { + "name": "adobetv", + "type": "free", + "domains": [ + "video.tv.adobe.com" + ], + "regexps": [ + "https?://video\\.tv\\.adobe\\.com/v/(\\d+)" + ], + "regexp": "https?://video\\.tv\\.adobe\\.com/v/(\\d+)" + }, + "adultswim": { + "name": "adultswim", + "type": "free", + "domains": [ + "adultswim.com" + ], + "regexps": [ + "https?://(?:www\\.)?adultswim\\.com/videos/([^/?#]+)(?:/([^/?#]+))?" + ], + "regexp": "https?://(?:www\\.)?adultswim\\.com/videos/([^/?#]+)(?:/([^/?#]+))?" + }, + "aenetworks": { + "name": "aenetworks", + "type": "free", + "domains": [ + "watch.historyvault.com", + "historyvault.com", + "history.com", + "aetv.com", + "play.mylifetime.com", + "fyi.tv", + "mylifetime.com", + "watch.lifetimemovieclub.com", + "play.aetv.com" + ], + "regexps": [ + "https?://(?:(?:www|play|watch)\\.)?((?:history(?:vault)?|aetv|mylifetime|lifetimemovieclub)\\.com|fyi\\.tv)/(?:[^/]+/)*(?:list|collections)/([^/?#&]+)/?(?:[?#&]|$)", + "https?://(?:(?:www|play|watch)\\.)?((?:history(?:vault)?|aetv|mylifetime|lifetimemovieclub)\\.com|fyi\\.tv)/(shows/[^/?#]+/season-\\d+/episode-\\d+|(movie|special)s/[^/?#]+(/[^/?#]+)?|(?:shows/[^/?#]+/)?videos/[^/?#]+)", + "https?://(?:(?:www|play|watch)\\.)?((?:history(?:vault)?|aetv|mylifetime|lifetimemovieclub)\\.com|fyi\\.tv)/shows/([^/?#&]+)/?(?:[?#&]|$)" + ], + "regexp": "(https?://(?:(?:www|play|watch)\\.)?((?:history(?:vault)?|aetv|mylifetime|lifetimemovieclub)\\.com|fyi\\.tv)/(?:[^/]+/)*(?:list|collections)/([^/?#&]+)/?(?:[?#&]|$))|(https?://(?:(?:www|play|watch)\\.)?((?:history(?:vault)?|aetv|mylifetime|lifetimemovieclub)\\.com|fyi\\.tv)/(shows/[^/?#]+/season-\\d+/episode-\\d+|(movie|special)s/[^/?#]+(/[^/?#]+)?|(?:shows/[^/?#]+/)?videos/[^/?#]+))|(https?://(?:(?:www|play|watch)\\.)?((?:history(?:vault)?|aetv|mylifetime|lifetimemovieclub)\\.com|fyi\\.tv)/shows/([^/?#&]+)/?(?:[?#&]|$))" + }, + "aeonco": { + "name": "aeonco", + "type": "free", + "domains": [ + "aeon.co" + ], + "regexps": [ + "https?://(?:www\\.)?aeon\\.co/videos/([^/?]+)" + ], + "regexp": "https?://(?:www\\.)?aeon\\.co/videos/([^/?]+)" + }, + "agalega": { + "name": "agalega", + "type": "free", + "domains": [ + "agalega.gal" + ], + "regexps": [ + "https?://(?:www\\.)?agalega\\.gal/videos/(?:detail/)?([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?agalega\\.gal/videos/(?:detail/)?([0-9]+)" + }, + "airtv": { + "name": "airtv", + "type": "free", + "domains": [ + "air.tv" + ], + "regexps": [ + "https?://www\\.air\\.tv/watch\\?v=(\\w+)" + ], + "regexp": "https?://www\\.air\\.tv/watch\\?v=(\\w+)" + }, + "aitubekzvideo": { + "name": "aitubekzvideo", + "type": "free", + "domains": [ + "aitube.kz" + ], + "regexps": [ + "https?://aitube\\.kz/(?:video|embed/)\\?(?:[^\\?]+)?id=([\\w-]+)" + ], + "regexp": "https?://aitube\\.kz/(?:video|embed/)\\?(?:[^\\?]+)?id=([\\w-]+)" + }, + "alibaba": { + "name": "alibaba", + "type": "free", + "domains": [ + "alibaba.com" + ], + "regexps": [ + "https?://(?:www\\.)?alibaba\\.com/product-detail/[\\w-]+_(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?alibaba\\.com/product-detail/[\\w-]+_(\\d+)\\.html" + }, + "aliexpresslive": { + "name": "aliexpresslive", + "type": "free", + "domains": [], + "regexps": [ + "https?://live\\.aliexpress\\.com/live/(\\d+)" + ], + "regexp": "https?://live\\.aliexpress\\.com/live/(\\d+)" + }, + "aljazeera": { + "name": "aljazeera", + "type": "free", + "domains": [ + "balkans.aljazeera.net" + ], + "regexps": [ + "https?://(\\w+\\.aljazeera\\.\\w+)/(programs?/[^/]+|(?:feature|video|new)s)?/\\d{4}/\\d{1,2}/\\d{1,2}/([^/?&#]+)" + ], + "regexp": "https?://(\\w+\\.aljazeera\\.\\w+)/(programs?/[^/]+|(?:feature|video|new)s)?/\\d{4}/\\d{1,2}/\\d{1,2}/([^/?&#]+)" + }, + "allocine": { + "name": "allocine", + "type": "free", + "domains": [ + "allocine.fr" + ], + "regexps": [ + "https?://(?:www\\.)?allocine\\.fr/(?:article|video|film)/(?:fichearticle_gen_carticle=|player_gen_cmedia=|fichefilm_gen_cfilm=|video-)([0-9]+)(?:\\.html)?" + ], + "regexp": "https?://(?:www\\.)?allocine\\.fr/(?:article|video|film)/(?:fichearticle_gen_carticle=|player_gen_cmedia=|fichefilm_gen_cfilm=|video-)([0-9]+)(?:\\.html)?" + }, + "allstarprofile": { + "name": "allstarprofile", + "type": "free", + "domains": [ + "allstar.gg" + ], + "regexps": [ + "https?://(?:www\\.)?allstar\\.gg/(?:profile\\?user=|u/)([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?allstar\\.gg/(?:profile\\?user=|u/)([^/?#&]+)" + }, + "alphaporno": { + "name": "alphaporno", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?alphaporno\\.com/videos/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?alphaporno\\.com/videos/([^/]+)" + }, + "alsace20tv": { + "name": "alsace20tv", + "type": "free", + "domains": [ + "alsace20.tv" + ], + "regexps": [ + "https?://(?:www\\.)?alsace20\\.tv/(?:[\\w-]+/)+[\\w-]+-([\\w]+)" + ], + "regexp": "https?://(?:www\\.)?alsace20\\.tv/(?:[\\w-]+/)+[\\w-]+-([\\w]+)" + }, + "alsace20tvembed": { + "name": "alsace20tvembed", + "type": "free", + "domains": [ + "alsace20.tv" + ], + "regexps": [ + "https?://(?:www\\.)?alsace20\\.tv/emb/([\\w]+)" + ], + "regexp": "https?://(?:www\\.)?alsace20\\.tv/emb/([\\w]+)" + }, + "altcensored": { + "name": "altcensored", + "type": "free", + "domains": [ + "altcensored.com" + ], + "regexps": [ + "https?://(?:www\\.)?altcensored\\.com/channel/(?!page|table)([^/?#]+)", + "https?://(?:www\\.)?altcensored\\.com/(?:watch\\?v=|embed/)([^/?#]+)" + ], + "regexp": "(https?://(?:www\\.)?altcensored\\.com/channel/(?!page|table)([^/?#]+))|(https?://(?:www\\.)?altcensored\\.com/(?:watch\\?v=|embed/)([^/?#]+))" + }, + "alura": { + "name": "alura", + "type": "free", + "domains": [ + "cursos.alura.com.br" + ], + "regexps": [ + "https?://(?:cursos\\.)?alura\\.com\\.br/course/([^/]+)/task/(\\d+)" + ], + "regexp": "https?://(?:cursos\\.)?alura\\.com\\.br/course/([^/]+)/task/(\\d+)" + }, + "aluracourse": { + "name": "aluracourse", + "type": "free", + "domains": [ + "cursos.alura.com.br" + ], + "regexps": [ + "https?://(?:cursos\\.)?alura\\.com\\.br/course/([^/]+)" + ], + "regexp": "https?://(?:cursos\\.)?alura\\.com\\.br/course/([^/]+)" + }, + "amadeustv": { + "name": "amadeustv", + "type": "free", + "domains": [ + "amadeus.tv" + ], + "regexps": [ + "https?://(?:www\\.)?amadeus\\.tv/library/([\\da-f]+)" + ], + "regexp": "https?://(?:www\\.)?amadeus\\.tv/library/([\\da-f]+)" + }, + "amara": { + "name": "amara", + "type": "free", + "domains": [ + "amara.org" + ], + "regexps": [ + "https?://(?:www\\.)?amara\\.org/(?:\\w+/)?videos/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?amara\\.org/(?:\\w+/)?videos/(\\w+)" + }, + "amazonminitv": { + "name": "amazonminitv", + "type": "free", + "domains": [ + "amazon.in" + ], + "regexps": [ + "(?:https?://(?:www\\.)?amazon\\.in/minitv/tp/|amazonminitv:(?:amzn1\\.dv\\.gti\\.)?)([a-f0-9-]+)", + "amazonminitv:season:(?:amzn1\\.dv\\.gti\\.)?([a-f0-9-]+)", + "amazonminitv:series:(?:amzn1\\.dv\\.gti\\.)?([a-f0-9-]+)" + ], + "regexp": "((?:https?://(?:www\\.)?amazon\\.in/minitv/tp/|amazonminitv:(?:amzn1\\.dv\\.gti\\.)?)([a-f0-9-]+))|(amazonminitv:season:(?:amzn1\\.dv\\.gti\\.)?([a-f0-9-]+))|(amazonminitv:series:(?:amzn1\\.dv\\.gti\\.)?([a-f0-9-]+))" + }, + "amazonreviews": { + "name": "amazonreviews", + "type": "free", + "domains": [ + "amazon.com", + "amazon.in" + ], + "regexps": [ + "https?://(?:www\\.)?amazon\\.(?:[a-z]{2,3})(?:\\.[a-z]{2})?/gp/customer-reviews/([^/&#$?]+)" + ], + "regexp": "https?://(?:www\\.)?amazon\\.(?:[a-z]{2,3})(?:\\.[a-z]{2})?/gp/customer-reviews/([^/&#$?]+)" + }, + "amazonstore": { + "name": "amazonstore", + "type": "free", + "domains": [ + "amazon.co.uk", + "amazon.in", + "amazon.com", + "amazon.es" + ], + "regexps": [ + "https?://(?:www\\.)?amazon\\.(?:[a-z]{2,3})(?:\\.[a-z]{2})?/(?:[^/]+/)?(?:dp|gp/product)/([^/&#$?]+)" + ], + "regexp": "https?://(?:www\\.)?amazon\\.(?:[a-z]{2,3})(?:\\.[a-z]{2})?/(?:[^/]+/)?(?:dp|gp/product)/([^/&#$?]+)" + }, + "amcnetworks": { + "name": "amcnetworks", + "type": "free", + "domains": [ + "amc.com", + "bbcamerica.com", + "wetv.com", + "ifc.com", + "sundancetv.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:amc|bbcamerica|ifc|(?:we|sundance)tv)\\.com/((?:movies|shows(?:/[^/?#]+)+)/[^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?(?:amc|bbcamerica|ifc|(?:we|sundance)tv)\\.com/((?:movies|shows(?:/[^/?#]+)+)/[^/?#&]+)" + }, + "americastestkitchen": { + "name": "americastestkitchen", + "type": "free", + "domains": [ + "americastestkitchen.com", + "cookscountry.com", + "cooksillustrated.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:americastestkitchen|cooks(?:country|illustrated))\\.com/(?:cooks(?:country|illustrated)/)?(episode|videos)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?(?:americastestkitchen|cooks(?:country|illustrated))\\.com/(?:cooks(?:country|illustrated)/)?(episode|videos)/(\\d+)" + }, + "amhistorychannel": { + "name": "amhistorychannel", + "type": "free", + "domains": [ + "ahctv.com" + ], + "regexps": [ + "https?://(?:www\\.)?ahctv\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?ahctv\\.com/video/([^/]+/[^/?#]+)" + }, + "anchorfmepisode": { + "name": "anchorfmepisode", + "type": "free", + "domains": [ + "anchor.fm" + ], + "regexps": [ + "https?://anchor\\.fm/(\\w+)/(?:embed/)?episodes/[\\w-]+-(\\w+)" + ], + "regexp": "https?://anchor\\.fm/(\\w+)/(?:embed/)?episodes/[\\w-]+-(\\w+)" + }, + "anderetijden": { + "name": "anderetijden", + "type": "free", + "domains": [ + "anderetijden.nl" + ], + "regexps": [ + "https?://(?:www\\.)?anderetijden\\.nl/programma/(?:[^/]+/)+([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?anderetijden\\.nl/programma/(?:[^/]+/)+([^/?#&]+)" + }, + "angel": { + "name": "angel", + "type": "free", + "domains": [ + "angel.com" + ], + "regexps": [ + "https?://(?:www\\.)?angel\\.com/watch/([^/?#]+)/episode/([\\w-]+)/season-(\\d+)/episode-(\\d+)/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?angel\\.com/watch/([^/?#]+)/episode/([\\w-]+)/season-(\\d+)/episode-(\\d+)/([^/?#]+)" + }, + "animalplanet": { + "name": "animalplanet", + "type": "free", + "domains": [ + "animalplanet.com" + ], + "regexps": [ + "https?://(?:www\\.)?animalplanet\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?animalplanet\\.com/video/([^/]+/[^/?#]+)" + }, + "ant1newsgr": { + "name": "ant1newsgr", + "type": "free", + "domains": [ + "ant1news.gr", + "antenna.gr" + ], + "regexps": [ + "https?://(?:www\\.)?ant1news\\.gr/[^/]+/article/(\\d+)/", + "(?:https?:)?//(?:[a-zA-Z0-9\\-]+\\.)?(?:antenna|ant1news)\\.gr/templates/pages/player\\?([^#]+&)?cid=([^#&]+)" + ], + "regexp": "(https?://(?:www\\.)?ant1news\\.gr/[^/]+/article/(\\d+)/)|((?:https?:)?//(?:[a-zA-Z0-9\\-]+\\.)?(?:antenna|ant1news)\\.gr/templates/pages/player\\?([^#]+&)?cid=([^#&]+))" + }, + "antenna": { + "name": "antenna", + "type": "free", + "domains": [ + "ant1news.gr", + "antenna.gr" + ], + "regexps": [ + "https?://((?:www\\.)?(?:antenna|ant1news)\\.gr)/watch/(\\d+)/" + ], + "regexp": "https?://((?:www\\.)?(?:antenna|ant1news)\\.gr)/watch/(\\d+)/" + }, + "anvato": { + "name": "anvato", + "type": "free", + "domains": [], + "regexps": [ + "anvato:([^:]+):(\\d+)" + ], + "regexp": "anvato:([^:]+):(\\d+)" + }, + "aol.com": { + "name": "aol.com", + "type": "free", + "domains": [ + "aol.com", + "aol.ca", + "aol.co.uk", + "aol.de", + "aol.jp" + ], + "regexps": [ + "(?:aol-video:|https?://(?:www\\.)?aol\\.(?:com|ca|co\\.uk|de|jp)/video/(?:[^/]+/)*)(\\d{9}|[0-9a-f]{24}|[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})" + ], + "regexp": "(?:aol-video:|https?://(?:www\\.)?aol\\.(?:com|ca|co\\.uk|de|jp)/video/(?:[^/]+/)*)(\\d{9}|[0-9a-f]{24}|[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})" + }, + "apa": { + "name": "apa", + "type": "free", + "domains": [ + "uvp.apa.at", + "uvp-apapublisher.sf.apa.at", + "uvp-rma.sf.apa.at", + "uvp-kleinezeitung.sf.apa.at" + ], + "regexps": [ + "(https?://[^/]+\\.apa\\.at)/embed/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + ], + "regexp": "(https?://[^/]+\\.apa\\.at)/embed/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + }, + "aparat": { + "name": "aparat", + "type": "free", + "domains": [ + "aparat.com" + ], + "regexps": [ + "https?://(?:www\\.)?aparat\\.com/(?:v/|video/video/embed/videohash/)([a-zA-Z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?aparat\\.com/(?:v/|video/video/embed/videohash/)([a-zA-Z0-9]+)" + }, + "apple": { + "name": "apple", + "type": "free", + "domains": [ + "music.apple.com" + ], + "regexps": [ + "https?://music\\.apple\\.com/[\\w-]+/post/(\\d+)" + ], + "regexp": "https?://music\\.apple\\.com/[\\w-]+/post/(\\d+)" + }, + "appledaily": { + "name": "appledaily", + "type": "free", + "domains": [ + "ent.appledaily.com.tw", + "appledaily.com.tw" + ], + "regexps": [ + "https?://(www|ent)\\.appledaily\\.com\\.tw/[^/]+/[^/]+/[^/]+/(\\d+)/(\\d+)(/.*)?" + ], + "regexp": "https?://(www|ent)\\.appledaily\\.com\\.tw/[^/]+/[^/]+/[^/]+/(\\d+)/(\\d+)(/.*)?" + }, + "applepodcasts": { + "name": "applepodcasts", + "type": "free", + "domains": [ + "podcasts.apple.com" + ], + "regexps": [ + "https?://podcasts\\.apple\\.com/(?:[^/]+/)?podcast(?:/[^/]+){1,2}.*?\\bi=(\\d+)" + ], + "regexp": "https?://podcasts\\.apple\\.com/(?:[^/]+/)?podcast(?:/[^/]+){1,2}.*?\\bi=(\\d+)" + }, + "appletrailers": { + "name": "appletrailers", + "type": "free", + "domains": [ + "trailers.apple.com", + "movietrailers.apple.com" + ], + "regexps": [ + "https?://(?:www\\.|movie)?trailers\\.apple\\.com/(?:trailers|ca)/([^/]+)/([^/]+)", + "https?://(?:www\\.)?trailers\\.apple\\.com/#section=(justadded|exclusive|justhd|mostpopular|moviestudios)" + ], + "regexp": "(https?://(?:www\\.|movie)?trailers\\.apple\\.com/(?:trailers|ca)/([^/]+)/([^/]+))|(https?://(?:www\\.)?trailers\\.apple\\.com/#section=(justadded|exclusive|justhd|mostpopular|moviestudios))" + }, + "archive.org": { + "name": "archive.org", + "type": "free", + "domains": [ + "archive.org" + ], + "regexps": [ + "https?://(?:www\\.)?archive\\.org/(?:details|embed)/([^?#]+)(?:[?].*)?$" + ], + "regexp": "https?://(?:www\\.)?archive\\.org/(?:details|embed)/([^?#]+)(?:[?].*)?$" + }, + "arcpublishing": { + "name": "arcpublishing", + "type": "free", + "domains": [], + "regexps": [ + "arcpublishing:([a-z]+):([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + ], + "regexp": "arcpublishing:([a-z]+):([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + }, + "ard": { + "name": "ard", + "type": "free", + "domains": [ + "daserste.de" + ], + "regexps": [ + "(https?://(?:www\\.)?daserste\\.de/(?:[^/?#&]+/)+([^/?#&]+))\\.html" + ], + "regexp": "(https?://(?:www\\.)?daserste\\.de/(?:[^/?#&]+/)+([^/?#&]+))\\.html" + }, + "ardaudiothek": { + "name": "ardaudiothek", + "type": "free", + "domains": [ + "ardaudiothek.de" + ], + "regexps": [ + "https:?//(?:www\\.)?ardaudiothek\\.de/episode/(urn:ard:(?:episode|section|extra):[a-f0-9]{16})" + ], + "regexp": "https:?//(?:www\\.)?ardaudiothek\\.de/episode/(urn:ard:(?:episode|section|extra):[a-f0-9]{16})" + }, + "ardaudiothekplaylist": { + "name": "ardaudiothekplaylist", + "type": "free", + "domains": [ + "ardaudiothek.de" + ], + "regexps": [ + "https:?//(?:www\\.)?ardaudiothek\\.de/sendung/([\\w-]+)/(urn:ard:show:[a-f0-9]{16})" + ], + "regexp": "https:?//(?:www\\.)?ardaudiothek\\.de/sendung/([\\w-]+)/(urn:ard:show:[a-f0-9]{16})" + }, + "ardmediathek": { + "name": "ardmediathek", + "type": "free", + "domains": [ + "ardmediathek.de", + "beta.ardmediathek.de" + ], + "regexps": [ + "https?://(?:(?:beta|www)\\.)?ardmediathek\\.de/(?:[^/]+/)?(?:player|live|video)/(?:[^?#]+/)?([a-zA-Z0-9]+)/?(?:[?#]|$)" + ], + "regexp": "https?://(?:(?:beta|www)\\.)?ardmediathek\\.de/(?:[^/]+/)?(?:player|live|video)/(?:[^?#]+/)?([a-zA-Z0-9]+)/?(?:[?#]|$)" + }, + "ardmediathekcollection": { + "name": "ardmediathekcollection", + "type": "free", + "domains": [ + "ardmediathek.de" + ], + "regexps": [ + "https?://(?:(?:beta|www)\\.)?ardmediathek\\.de/(?:[^/?#]+/)?(sendung|serie|sammlung)/(?:([^?#]+?)/)?([a-zA-Z0-9]+)(?:/(\\d+)(?:/(OV|AD))?)?/?(?:[?#]|$)" + ], + "regexp": "https?://(?:(?:beta|www)\\.)?ardmediathek\\.de/(?:[^/?#]+/)?(sendung|serie|sammlung)/(?:([^?#]+?)/)?([a-zA-Z0-9]+)(?:/(\\d+)(?:/(OV|AD))?)?/?(?:[?#]|$)" + }, + "art19": { + "name": "art19", + "type": "free", + "domains": [ + "rss.art19.com", + "art19.com" + ], + "regexps": [ + "https?://(?:www\\.)?art19\\.com/shows/[^/#?]+/episodes/([\\da-f]{8}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{12})", + "https?://rss\\.art19\\.com/episodes/([\\da-f]{8}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{12})\\.mp3" + ], + "regexp": "(https?://(?:www\\.)?art19\\.com/shows/[^/#?]+/episodes/([\\da-f]{8}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{12}))|(https?://rss\\.art19\\.com/episodes/([\\da-f]{8}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{4}-?[\\da-f]{12})\\.mp3)" + }, + "art19show": { + "name": "art19show", + "type": "free", + "domains": [ + "art19.com", + "rss.art19.com" + ], + "regexps": [ + "https?://(?:www\\.)?art19\\.com/shows/([\\w-]+)(?:/embed)?/?(?:$|[#?])", + "https?://rss\\.art19\\.com/([\\w-]+)/?(?:$|[#?])" + ], + "regexp": "(https?://(?:www\\.)?art19\\.com/shows/([\\w-]+)(?:/embed)?/?(?:$|[#?]))|(https?://rss\\.art19\\.com/([\\w-]+)/?(?:$|[#?]))" + }, + "arte.sky.it": { + "name": "arte.sky.it", + "type": "free", + "domains": [ + "arte.sky.it" + ], + "regexps": [ + "https?://arte\\.sky\\.it/video/([^/?&#]+)" + ], + "regexp": "https?://arte\\.sky\\.it/video/([^/?&#]+)" + }, + "artetv": { + "name": "artetv", + "type": "free", + "domains": [ + "arte.tv", + "api.arte.tv" + ], + "regexps": [ + "(?:https?://(?:(?:www\\.)?arte\\.tv/(fr|de|en|es|it|pl)/videos|api\\.arte\\.tv/api/player/v\\d+/config/(fr|de|en|es|it|pl))|arte://program)/(\\d{6}-\\d{3}-[AF]|LIVE)" + ], + "regexp": "(?:https?://(?:(?:www\\.)?arte\\.tv/(fr|de|en|es|it|pl)/videos|api\\.arte\\.tv/api/player/v\\d+/config/(fr|de|en|es|it|pl))|arte://program)/(\\d{6}-\\d{3}-[AF]|LIVE)" + }, + "artetvcategory": { + "name": "artetvcategory", + "type": "free", + "domains": [ + "arte.tv" + ], + "regexps": [ + "https?://(?:www\\.)?arte\\.tv/(fr|de|en|es|it|pl)/videos/([\\w-]+(?:/[\\w-]+)*)/?\\s*$" + ], + "regexp": "https?://(?:www\\.)?arte\\.tv/(fr|de|en|es|it|pl)/videos/([\\w-]+(?:/[\\w-]+)*)/?\\s*$" + }, + "artetvembed": { + "name": "artetvembed", + "type": "free", + "domains": [ + "arte.tv" + ], + "regexps": [ + "https?://(?:www\\.)?arte\\.tv/player/v\\d+/index\\.php\\?.*?\\bjson_url=.+" + ], + "regexp": "https?://(?:www\\.)?arte\\.tv/player/v\\d+/index\\.php\\?.*?\\bjson_url=.+" + }, + "artetvplaylist": { + "name": "artetvplaylist", + "type": "free", + "domains": [ + "arte.tv" + ], + "regexps": [ + "https?://(?:www\\.)?arte\\.tv/(fr|de|en|es|it|pl)/videos/(RC-\\d{6})" + ], + "regexp": "https?://(?:www\\.)?arte\\.tv/(fr|de|en|es|it|pl)/videos/(RC-\\d{6})" + }, + "asobichannel": { + "name": "asobichannel", + "type": "free", + "domains": [ + "asobichannel.asobistore.jp" + ], + "regexps": [ + "https?://asobichannel\\.asobistore\\.jp/watch/([\\w-]+)", + "https?://asobichannel\\.asobistore\\.jp/tag/([a-z0-9-_]+)" + ], + "regexp": "(https?://asobichannel\\.asobistore\\.jp/watch/([\\w-]+))|(https?://asobichannel\\.asobistore\\.jp/tag/([a-z0-9-_]+))" + }, + "asobistage": { + "name": "asobistage", + "type": "free", + "domains": [ + "asobistage.asobistore.jp" + ], + "regexps": [ + "https?://asobistage\\.asobistore\\.jp/event/((\\w+)/(archive|player)/(\\w+))(?:[?#]|$)" + ], + "regexp": "https?://asobistage\\.asobistore\\.jp/event/((\\w+)/(archive|player)/(\\w+))(?:[?#]|$)" + }, + "atresplayer": { + "name": "atresplayer", + "type": "free", + "domains": [ + "atresplayer.com" + ], + "regexps": [ + "https?://(?:www\\.)?atresplayer\\.com/(?:[^/?#]+/){4}(.+?)_([0-9a-f]{24})" + ], + "regexp": "https?://(?:www\\.)?atresplayer\\.com/(?:[^/?#]+/){4}(.+?)_([0-9a-f]{24})" + }, + "atscaleconfevent": { + "name": "atscaleconfevent", + "type": "free", + "domains": [ + "atscaleconference.com" + ], + "regexps": [ + "https?://(?:www\\.)?atscaleconference\\.com/events/([^/&$?]+)" + ], + "regexp": "https?://(?:www\\.)?atscaleconference\\.com/events/([^/&$?]+)" + }, + "atvat": { + "name": "atvat", + "type": "free", + "domains": [ + "atv.at" + ], + "regexps": [ + "https?://(?:www\\.)?atv\\.at/tv/(?:[^/]+/){2,3}(.*)" + ], + "regexp": "https?://(?:www\\.)?atv\\.at/tv/(?:[^/]+/){2,3}(.*)" + }, + "audimedia": { + "name": "audimedia", + "type": "free", + "domains": [ + "audi-mediacenter.com" + ], + "regexps": [ + "https?://(?:www\\.)?audi-mediacenter\\.com/(?:en|de)/audimediatv/(?:video/)?([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?audi-mediacenter\\.com/(?:en|de)/audimediatv/(?:video/)?([^/?#]+)" + }, + "audioboom": { + "name": "audioboom", + "type": "free", + "domains": [ + "audioboom.com" + ], + "regexps": [ + "https?://(?:www\\.)?audioboom\\.com/(?:boos|posts)/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?audioboom\\.com/(?:boos|posts)/([0-9]+)" + }, + "audiodraft": { + "name": "audiodraft", + "type": "free", + "domains": [ + "nokiatune.audiodraft.com", + "vikinggrace.audiodraft.com", + "timferriss.audiodraft.com", + "audiodraft.com" + ], + "regexps": [ + "https?://(?:[-\\w]+)\\.audiodraft\\.com/entry/(\\d+)", + "https?://www\\.audiodraft\\.com/contests/[^/#]+#entries&eid=(\\d+)" + ], + "regexp": "(https?://(?:[-\\w]+)\\.audiodraft\\.com/entry/(\\d+))|(https?://www\\.audiodraft\\.com/contests/[^/#]+#entries&eid=(\\d+))" + }, + "audiomack": { + "name": "audiomack", + "type": "free", + "domains": [ + "audiomack.com" + ], + "regexps": [ + "https?://(?:www\\.)?audiomack\\.com/(?:album/|(?=.+/album/))([\\w/-]+)", + "https?://(?:www\\.)?audiomack\\.com/(?:song/|(?=.+/song/))([\\w/-]+)" + ], + "regexp": "(https?://(?:www\\.)?audiomack\\.com/(?:album/|(?=.+/album/))([\\w/-]+))|(https?://(?:www\\.)?audiomack\\.com/(?:song/|(?=.+/song/))([\\w/-]+))" + }, + "audius": { + "name": "audius", + "type": "free", + "domains": [ + "audius.co" + ], + "regexps": [ + "https?://(?:www\\.)?(?:audius\\.co/([\\w\\d-]+)(?!/album|/playlist)/(\\S+))", + "https?://(?:www\\.)?audius\\.co/([\\w\\d-]+)/(?:album|playlist)/(\\S+)", + "https?://(?:www)?audius\\.co/([^\\/]+)/?(?:[?#]|$)", + "(?:audius:)(?:https?://(?:www\\.)?.+/v1/tracks/)?(\\w+)" + ], + "regexp": "(https?://(?:www\\.)?(?:audius\\.co/([\\w\\d-]+)(?!/album|/playlist)/(\\S+)))|(https?://(?:www\\.)?audius\\.co/([\\w\\d-]+)/(?:album|playlist)/(\\S+))|(https?://(?:www)?audius\\.co/([^\\/]+)/?(?:[?#]|$))|((?:audius:)(?:https?://(?:www\\.)?.+/v1/tracks/)?(\\w+))" + }, + "awaan": { + "name": "awaan", + "type": "free", + "domains": [ + "dcndigital.ae", + "awaan.ae" + ], + "regexps": [ + "https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?show/(\\d+)/[^/]+(?:/(\\d+)/(\\d+))?", + "https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?live/(\\d+)", + "https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?program/(?:(\\d+)|season/(\\d+))", + "https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?(?:video(?:/[^/]+)?|media|catchup/[^/]+/[^/]+)/(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?show/(\\d+)/[^/]+(?:/(\\d+)/(\\d+))?)|(https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?live/(\\d+))|(https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?program/(?:(\\d+)|season/(\\d+)))|(https?://(?:www\\.)?(?:awaan|dcndigital)\\.ae/(?:#/)?(?:video(?:/[^/]+)?|media|catchup/[^/]+/[^/]+)/(\\d+))" + }, + "axs.tv": { + "name": "axs.tv", + "type": "free", + "domains": [ + "axs.tv" + ], + "regexps": [ + "https?://(?:www\\.)?axs\\.tv/(?:channel/(?:[^/?#]+/)+)?video/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?axs\\.tv/(?:channel/(?:[^/?#]+/)+)?video/([^/?#]+)" + }, + "azmedien": { + "name": "azmedien", + "type": "free", + "domains": [ + "tv.telezueri.ch", + "telebaern.tv" + ], + "regexps": [ + "https?://(?:www\\.|tv\\.)?(?:telezueri\\.ch|telebaern\\.tv|telem1\\.ch|tvo-online\\.ch)/[^/?#]+/([^/?#]+-\\d+)(?:\\#video=([_0-9a-z]+))?" + ], + "regexp": "https?://(?:www\\.|tv\\.)?(?:telezueri\\.ch|telebaern\\.tv|telem1\\.ch|tvo-online\\.ch)/[^/?#]+/([^/?#]+-\\d+)(?:\\#video=([_0-9a-z]+))?" + }, + "baiduvideo": { + "name": "baiduvideo", + "type": "free", + "domains": [ + "v.baidu.com" + ], + "regexps": [ + "https?://v\\.baidu\\.com/([a-z]+)/(\\d+)\\.htm" + ], + "regexp": "https?://v\\.baidu\\.com/([a-z]+)/(\\d+)\\.htm" + }, + "banbye": { + "name": "banbye", + "type": "free", + "domains": [ + "banbye.com" + ], + "regexps": [ + "https?://(?:www\\.)?banbye\\.com/(?:en/)?watch/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?banbye\\.com/(?:en/)?watch/([\\w-]+)" + }, + "banbyechannel": { + "name": "banbyechannel", + "type": "free", + "domains": [ + "banbye.com" + ], + "regexps": [ + "https?://(?:www\\.)?banbye\\.com/(?:en/)?channel/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?banbye\\.com/(?:en/)?channel/(\\w+)" + }, + "bandcamp": { + "name": "bandcamp", + "type": "free", + "domains": [ + "blazo.bandcamp.com", + "nightbringer.bandcamp.com", + "jstrecords.bandcamp.com", + "insulters.bandcamp.com", + "youtube-dl.bandcamp.com", + "benprunty.bandcamp.com", + "relapsealumni.bandcamp.com", + "diskotopia.bandcamp.com", + "adrianvonziegler.bandcamp.com", + "dotscale.bandcamp.com", + "nightcallofficial.bandcamp.com", + "steviasphere.bandcamp.com", + "coldworldofficial.bandcamp.com", + "nuclearwarnowproductions.bandcamp.com", + "bandcamp.com" + ], + "regexps": [ + "https?://(?:([^.]+)\\.)?bandcamp\\.com/album/([^/?#&]+)", + "https?://([^/]+)\\.bandcamp\\.com/track/([^/?#&]+)", + "https?://(?!www\\.)([^.]+)\\.bandcamp\\.com(?:/music)?/?(?:[#?]|$)", + "https?://(?:www\\.)?bandcamp\\.com/?\\?(?:.*?&)?show=(\\d+)" + ], + "regexp": "(https?://(?:([^.]+)\\.)?bandcamp\\.com/album/([^/?#&]+))|(https?://([^/]+)\\.bandcamp\\.com/track/([^/?#&]+))|(https?://(?!www\\.)([^.]+)\\.bandcamp\\.com(?:/music)?/?(?:[#?]|$))|(https?://(?:www\\.)?bandcamp\\.com/?\\?(?:.*?&)?show=(\\d+))" + }, + "bandlab": { + "name": "bandlab", + "type": "free", + "domains": [ + "bandlab.com" + ], + "regexps": [ + "https?://(?:www\\.)?bandlab.com/(track|post|revision)/([\\da-f_-]+)", + "https?://(?:www\\.)?bandlab.com/(embed)/\\?(?:[^#]*&)?id=([\\da-f-]+)" + ], + "regexp": "(https?://(?:www\\.)?bandlab.com/(track|post|revision)/([\\da-f_-]+))|(https?://(?:www\\.)?bandlab.com/(embed)/\\?(?:[^#]*&)?id=([\\da-f-]+))" + }, + "bandlabplaylist": { + "name": "bandlabplaylist", + "type": "free", + "domains": [ + "bandlab.com" + ], + "regexps": [ + "https?://(?:www\\.)?bandlab.com/(?:[\\w]+/)?(albums|collections)/([\\da-f-]+)", + "https?://(?:www\\.)?bandlab.com/(embed)/collection/\\?(?:[^#]*&)?id=([\\da-f-]+)" + ], + "regexp": "(https?://(?:www\\.)?bandlab.com/(?:[\\w]+/)?(albums|collections)/([\\da-f-]+))|(https?://(?:www\\.)?bandlab.com/(embed)/collection/\\?(?:[^#]*&)?id=([\\da-f-]+))" + }, + "bannedvideo": { + "name": "bannedvideo", + "type": "free", + "domains": [ + "banned.video" + ], + "regexps": [ + "https?://(?:www\\.)?banned\\.video/watch\\?id=([0-f]{24})" + ], + "regexp": "https?://(?:www\\.)?banned\\.video/watch\\?id=([0-f]{24})" + }, + "bbc": { + "name": "bbc", + "type": "free", + "domains": [ + "bbc.com", + "bbc.co.uk", + "bbcnewsd73hkzno2ini43t4gblxvycyac5aw4gnv7t2rccijh7745uqd.onion", + "bbcweb3hytmzhn5d532owbu6oqadra5z3ar726vq5kgwwn6aucdccrad.onion" + ], + "regexps": [ + "https?://(?:www\\.)?(?:bbc\\.(?:com|co\\.uk)|bbcnewsd73hkzno2ini43t4gblxvycyac5aw4gnv7t2rccijh7745uqd\\.onion|bbcweb3hytmzhn5d532owbu6oqadra5z3ar726vq5kgwwn6aucdccrad\\.onion)/(?:[^/]+/)+([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?(?:bbc\\.(?:com|co\\.uk)|bbcnewsd73hkzno2ini43t4gblxvycyac5aw4gnv7t2rccijh7745uqd\\.onion|bbcweb3hytmzhn5d532owbu6oqadra5z3ar726vq5kgwwn6aucdccrad\\.onion)/(?:[^/]+/)+([^/#?]+)" + }, + "bbc.co.uk": { + "name": "bbc.co.uk", + "type": "free", + "domains": [ + "bbc.co.uk" + ], + "regexps": [ + "https?://(?:www\\.)?bbc\\.co\\.uk/programmes/articles/([a-zA-Z0-9]+)", + "https?://(?:www\\.)?bbc\\.co\\.uk/(?:programmes/(?!articles/)|iplayer(?:/[^/]+)?/(?:episode/|playlist/)|music/(?:clips|audiovideo/popular)[/#]|radio/player/|events/[^/]+/play/[^/]+/)((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14}))(?!/(?:episodes|broadcasts|clips))", + "https?://(?:www\\.)?bbc\\.co\\.uk/iplayer/episodes/((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14}))", + "https?://(?:www\\.)?bbc\\.co\\.uk/iplayer/group/((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14}))", + "https?://(?:www\\.)?bbc\\.co\\.uk/programmes/((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14}))/(?:episodes|broadcasts|clips)" + ], + "regexp": "(https?://(?:www\\.)?bbc\\.co\\.uk/programmes/articles/([a-zA-Z0-9]+))|(https?://(?:www\\.)?bbc\\.co\\.uk/(?:programmes/(?!articles/)|iplayer(?:/[^/]+)?/(?:episode/|playlist/)|music/(?:clips|audiovideo/popular)[/#]|radio/player/|events/[^/]+/play/[^/]+/)((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14}))(?!/(?:episodes|broadcasts|clips)))|(https?://(?:www\\.)?bbc\\.co\\.uk/iplayer/episodes/((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14})))|(https?://(?:www\\.)?bbc\\.co\\.uk/iplayer/group/((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14})))|(https?://(?:www\\.)?bbc\\.co\\.uk/programmes/((?:[pbml][\\da-z]{7}|w[\\da-z]{7,14}))/(?:episodes|broadcasts|clips))" + }, + "bbvtv": { + "name": "bbvtv", + "type": "free", + "domains": [ + "bbv-tv.net" + ], + "regexps": [ + "https?://(?:www\\.)?bbv\\-tv\\.net/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?bbv\\-tv\\.net/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "bbvtvlive": { + "name": "bbvtvlive", + "type": "free", + "domains": [ + "bbv-tv.net" + ], + "regexps": [ + "https?://(?:www\\.)?bbv\\-tv\\.net/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?bbv\\-tv\\.net/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "bbvtvrecordings": { + "name": "bbvtvrecordings", + "type": "free", + "domains": [ + "bbv-tv.net" + ], + "regexps": [ + "https?://(?:www\\.)?bbv\\-tv\\.net/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?bbv\\-tv\\.net/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "beacontv": { + "name": "beacontv", + "type": "free", + "domains": [ + "beacon.tv" + ], + "regexps": [ + "https?://(?:www\\.)?beacon\\.tv/content/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?beacon\\.tv/content/([\\w-]+)" + }, + "beatbumpplaylist": { + "name": "beatbumpplaylist", + "type": "free", + "domains": [ + "beatbump.ml", + "beatbump.io" + ], + "regexps": [ + "https?://beatbump\\.(?:ml|io)/(?:release\\?id=|artist/|playlist/)([\\w-]+)" + ], + "regexp": "https?://beatbump\\.(?:ml|io)/(?:release\\?id=|artist/|playlist/)([\\w-]+)" + }, + "beatbumpvideo": { + "name": "beatbumpvideo", + "type": "free", + "domains": [ + "beatbump.ml", + "beatbump.io" + ], + "regexps": [ + "https?://beatbump\\.(?:ml|io)/listen\\?id=([\\w-]+)" + ], + "regexp": "https?://beatbump\\.(?:ml|io)/listen\\?id=([\\w-]+)" + }, + "beatport": { + "name": "beatport", + "type": "free", + "domains": [ + "beatport.com" + ], + "regexps": [ + "https?://(?:www\\.|pro\\.)?beatport\\.com/track/([^/]+)/([0-9]+)" + ], + "regexp": "https?://(?:www\\.|pro\\.)?beatport\\.com/track/([^/]+)/([0-9]+)" + }, + "beeg": { + "name": "beeg", + "type": "free", + "domains": [ + "beeg.com" + ], + "regexps": [ + "https?://(?:www\\.)?beeg\\.(?:com(?:/video)?)/-?(\\d+)" + ], + "regexp": "https?://(?:www\\.)?beeg\\.(?:com(?:/video)?)/-?(\\d+)" + }, + "behindkink": { + "name": "behindkink", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?behindkink\\.com/([0-9]{4})/([0-9]{2})/([0-9]{2})/([^/#?_]+)" + ], + "regexp": "https?://(?:www\\.)?behindkink\\.com/([0-9]{4})/([0-9]{2})/([0-9]{2})/([^/#?_]+)" + }, + "berufetv": { + "name": "berufetv", + "type": "free", + "domains": [ + "web.arbeitsagentur.de" + ], + "regexps": [ + "https?://(?:www\\.)?web\\.arbeitsagentur\\.de/berufetv/[^?#]+/film;filmId=([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?web\\.arbeitsagentur\\.de/berufetv/[^?#]+/film;filmId=([\\w-]+)" + }, + "bet": { + "name": "bet", + "type": "free", + "domains": [ + "bet.com" + ], + "regexps": [ + "https?://(?:www\\.)?bet\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + ], + "regexp": "https?://(?:www\\.)?bet\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + }, + "bfi": { + "name": "bfi", + "type": "free", + "domains": [], + "regexps": [ + "https?://player\\.bfi\\.org\\.uk/[^/]+/film/watch-([\\w-]+)-online" + ], + "regexp": "https?://player\\.bfi\\.org\\.uk/[^/]+/film/watch-([\\w-]+)-online" + }, + "bfmtv": { + "name": "bfmtv", + "type": "free", + "domains": [ + "bfmtv.com", + "rmc.bfmtv.com" + ], + "regexps": [ + "https?://(?:www\\.|rmc\\.)?bfmtv\\.com/(?:[^/]+/)*[^/?&#]+_A[A-Z]-(\\d{12})\\.html", + "https?://(?:www\\.|rmc\\.)?bfmtv\\.com/(?:[^/]+/)*[^/?&#]+_V[A-Z]-(\\d{12})\\.html", + "https?://(?:www\\.|rmc\\.)?bfmtv\\.com/((?:[^/]+/)?en-direct)" + ], + "regexp": "(https?://(?:www\\.|rmc\\.)?bfmtv\\.com/(?:[^/]+/)*[^/?&#]+_A[A-Z]-(\\d{12})\\.html)|(https?://(?:www\\.|rmc\\.)?bfmtv\\.com/(?:[^/]+/)*[^/?&#]+_V[A-Z]-(\\d{12})\\.html)|(https?://(?:www\\.|rmc\\.)?bfmtv\\.com/((?:[^/]+/)?en-direct))" + }, + "bibeltv": { + "name": "bibeltv", + "type": "free", + "domains": [ + "bibeltv.de" + ], + "regexps": [ + "https?://(?:www\\.)?bibeltv\\.de/livestreams/([\\w-]+)", + "https?://(?:www\\.)?bibeltv\\.de/mediathek/serien/(\\d+)[\\w-]+", + "https?://(?:www\\.)?bibeltv\\.de/mediathek/videos/(\\d+)[\\w-]+" + ], + "regexp": "(https?://(?:www\\.)?bibeltv\\.de/livestreams/([\\w-]+))|(https?://(?:www\\.)?bibeltv\\.de/mediathek/serien/(\\d+)[\\w-]+)|(https?://(?:www\\.)?bibeltv\\.de/mediathek/videos/(\\d+)[\\w-]+)" + }, + "bigflix": { + "name": "bigflix", + "type": "free", + "domains": [ + "bigflix.com" + ], + "regexps": [ + "https?://(?:www\\.)?bigflix\\.com/.+/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?bigflix\\.com/.+/([0-9]+)" + }, + "bigo": { + "name": "bigo", + "type": "free", + "domains": [ + "bigo.tv" + ], + "regexps": [ + "https?://(?:www\\.)?bigo\\.tv/(?:[a-z]{2,}/)?([^/]+)" + ], + "regexp": "https?://(?:www\\.)?bigo\\.tv/(?:[a-z]{2,}/)?([^/]+)" + }, + "bild": { + "name": "bild", + "type": "free", + "domains": [ + "bild.de" + ], + "regexps": [ + "https?://(?:www\\.)?bild\\.de/(?:[^/]+/)+([^/]+)-(\\d+)(?:,auto=true)?\\.bild\\.html" + ], + "regexp": "https?://(?:www\\.)?bild\\.de/(?:[^/]+/)+([^/]+)-(\\d+)(?:,auto=true)?\\.bild\\.html" + }, + "bilibili": { + "name": "bilibili", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/(?:video/|festival/[^/?#]+\\?(?:[^#]*&)?bvid=)([aAbB][vV])([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/(?:video/|festival/[^/?#]+\\?(?:[^#]*&)?bvid=)([aAbB][vV])([^/?#&]+)" + }, + "bilibiliaudio": { + "name": "bilibiliaudio", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/audio/au(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/audio/au(\\d+)" + }, + "bilibiliaudioalbum": { + "name": "bilibiliaudioalbum", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/audio/am(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/audio/am(\\d+)" + }, + "bilibilibangumi": { + "name": "bilibilibangumi", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/bangumi/play/ep(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/bangumi/play/ep(\\d+)" + }, + "bilibilibangumimedia": { + "name": "bilibilibangumimedia", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/bangumi/media/md(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/bangumi/media/md(\\d+)" + }, + "bilibilibangumiseason": { + "name": "bilibilibangumiseason", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/bangumi/play/ss(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/bangumi/play/ss(\\d+)" + }, + "bilibili category extractor": { + "name": "bilibili category extractor", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/v/[a-zA-Z]+\\/[a-zA-Z]+" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/v/[a-zA-Z]+\\/[a-zA-Z]+" + }, + "bilibilicheese": { + "name": "bilibilicheese", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/cheese/play/ep(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/cheese/play/ep(\\d+)" + }, + "bilibilicheeseseason": { + "name": "bilibilicheeseseason", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/cheese/play/ss(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/cheese/play/ss(\\d+)" + }, + "bilibilicollectionlist": { + "name": "bilibilicollectionlist", + "type": "free", + "domains": [ + "space.bilibili.com" + ], + "regexps": [ + "https?://space\\.bilibili\\.com/(\\d+)/channel/collectiondetail/?\\?sid=(\\d+)", + "https?://space\\.bilibili\\.com/(\\d+)/lists/(\\d+)" + ], + "regexp": "(https?://space\\.bilibili\\.com/(\\d+)/channel/collectiondetail/?\\?sid=(\\d+))|(https?://space\\.bilibili\\.com/(\\d+)/lists/(\\d+))" + }, + "bilibilidynamic": { + "name": "bilibilidynamic", + "type": "free", + "domains": [ + "t.bilibili.com" + ], + "regexps": [ + "https?://(?:t\\.bilibili\\.com|(?:www\\.)?bilibili\\.com/opus)/(\\d+)" + ], + "regexp": "https?://(?:t\\.bilibili\\.com|(?:www\\.)?bilibili\\.com/opus)/(\\d+)" + }, + "bilibilifavoriteslist": { + "name": "bilibilifavoriteslist", + "type": "free", + "domains": [ + "space.bilibili.com", + "bilibili.com" + ], + "regexps": [ + "https?://(?:space\\.bilibili\\.com/\\d+/favlist/?\\?fid=|(?:www\\.)?bilibili\\.com/medialist/detail/ml)(\\d+)" + ], + "regexp": "https?://(?:space\\.bilibili\\.com/\\d+/favlist/?\\?fid=|(?:www\\.)?bilibili\\.com/medialist/detail/ml)(\\d+)" + }, + "bilibiliplayer": { + "name": "bilibiliplayer", + "type": "free", + "domains": [], + "regexps": [ + "https?://player\\.bilibili\\.com/player\\.html\\?.*?\\baid=(\\d+)" + ], + "regexp": "https?://player\\.bilibili\\.com/player\\.html\\?.*?\\baid=(\\d+)" + }, + "bilibiliplaylist": { + "name": "bilibiliplaylist", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/(?:medialist/play|list)/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/(?:medialist/play|list)/(\\w+)" + }, + "bilibilisearch": { + "name": "bilibilisearch", + "type": "free", + "domains": [], + "regexps": [ + "bilisearch(|[1-9][0-9]*|all):([\\s\\S]+)" + ], + "regexp": "bilisearch(|[1-9][0-9]*|all):([\\s\\S]+)" + }, + "bilibiliserieslist": { + "name": "bilibiliserieslist", + "type": "free", + "domains": [ + "space.bilibili.com" + ], + "regexps": [ + "https?://space\\.bilibili\\.com/(\\d+)/channel/seriesdetail/?\\?\\bsid=(\\d+)", + "https?://space\\.bilibili\\.com/(\\d+)/lists/(\\d+)/?\\?(?:[^#]+&)?type=series(?:[&#]|$)" + ], + "regexp": "(https?://space\\.bilibili\\.com/(\\d+)/channel/seriesdetail/?\\?\\bsid=(\\d+))|(https?://space\\.bilibili\\.com/(\\d+)/lists/(\\d+)/?\\?(?:[^#]+&)?type=series(?:[&#]|$))" + }, + "bilibilispaceaudio": { + "name": "bilibilispaceaudio", + "type": "free", + "domains": [ + "space.bilibili.com" + ], + "regexps": [ + "https?://space\\.bilibili\\.com/(\\d+)/(?:upload/)?audio" + ], + "regexp": "https?://space\\.bilibili\\.com/(\\d+)/(?:upload/)?audio" + }, + "bilibilispacevideo": { + "name": "bilibilispacevideo", + "type": "free", + "domains": [ + "space.bilibili.com" + ], + "regexps": [ + "https?://space\\.bilibili\\.com/(\\d+)((?:/upload)?/video)?/?(?:[?#]|$)" + ], + "regexp": "https?://space\\.bilibili\\.com/(\\d+)((?:/upload)?/video)?/?(?:[?#]|$)" + }, + "bilibiliwatchlater": { + "name": "bilibiliwatchlater", + "type": "free", + "domains": [ + "bilibili.com" + ], + "regexps": [ + "https?://(?:www\\.)?bilibili\\.com/watchlater/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?bilibili\\.com/watchlater/?(?:[?#]|$)" + }, + "biliintl": { + "name": "biliintl", + "type": "free", + "domains": [ + "bilibili.tv", + "biliintl.com" + ], + "regexps": [ + "https?://(?:www\\.)?bili(?:bili\\.tv|intl\\.com)/(?:[a-zA-Z]{2}/)?(play/(\\d+)/(\\d+)|video/(\\d+))", + "https?://(?:www\\.)?bili(?:bili\\.tv|intl\\.com)/(?:[a-zA-Z]{2}/)?(?:play|media)/(\\d+)/?(?:[?#]|$)" + ], + "regexp": "(https?://(?:www\\.)?bili(?:bili\\.tv|intl\\.com)/(?:[a-zA-Z]{2}/)?(play/(\\d+)/(\\d+)|video/(\\d+)))|(https?://(?:www\\.)?bili(?:bili\\.tv|intl\\.com)/(?:[a-zA-Z]{2}/)?(?:play|media)/(\\d+)/?(?:[?#]|$))" + }, + "bililive": { + "name": "bililive", + "type": "free", + "domains": [ + "live.bilibili.com" + ], + "regexps": [ + "https?://live\\.bilibili\\.com/(?:blanc/)?(\\d+)" + ], + "regexp": "https?://live\\.bilibili\\.com/(?:blanc/)?(\\d+)" + }, + "biobiochiletv": { + "name": "biobiochiletv", + "type": "free", + "domains": [ + "tv.biobiochile.cl", + "biobiochile.cl" + ], + "regexps": [ + "https?://(?:tv|www)\\.biobiochile\\.cl/(?:notas|noticias)/(?:[^/]+/)+([^/]+)\\.shtml" + ], + "regexp": "https?://(?:tv|www)\\.biobiochile\\.cl/(?:notas|noticias)/(?:[^/]+/)+([^/]+)\\.shtml" + }, + "biography": { + "name": "biography", + "type": "free", + "domains": [ + "biography.com" + ], + "regexps": [ + "https?://(?:www\\.)?biography\\.com/video/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?biography\\.com/video/([^/?#&]+)" + }, + "bitchute": { + "name": "bitchute", + "type": "free", + "domains": [ + "bitchute.com", + "old.bitchute.com" + ], + "regexps": [ + "https?://(?:(?:www|old)\\.)?bitchute\\.com/(?:video|embed|torrent/[^/?#]+)/([^/?#&]+)" + ], + "regexp": "https?://(?:(?:www|old)\\.)?bitchute\\.com/(?:video|embed|torrent/[^/?#]+)/([^/?#&]+)" + }, + "bitchutechannel": { + "name": "bitchutechannel", + "type": "free", + "domains": [ + "bitchute.com", + "old.bitchute.com" + ], + "regexps": [ + "https?://(?:(?:www|old)\\.)?bitchute\\.com/(channel|playlist)/([^/?#&]+)" + ], + "regexp": "https?://(?:(?:www|old)\\.)?bitchute\\.com/(channel|playlist)/([^/?#&]+)" + }, + "bitmovin": { + "name": "bitmovin", + "type": "free", + "domains": [ + "streams.bitmovin.com" + ], + "regexps": [ + "https?://streams\\.bitmovin\\.com/(\\w+)" + ], + "regexp": "https?://streams\\.bitmovin\\.com/(\\w+)" + }, + "blackboardcollaborate": { + "name": "blackboardcollaborate", + "type": "free", + "domains": [ + "us-lti.bbcollab.com", + "eu.bbcollab.com", + "us.bbcollab.com", + "ca.bbcollab.com", + "au.bbcollab.com" + ], + "regexps": [ + "https?://([a-z]+)(?:-lti)?\\.bbcollab\\.com/(?:collab/ui/session/playback/load|recording)/([^/?#]+)" + ], + "regexp": "https?://([a-z]+)(?:-lti)?\\.bbcollab\\.com/(?:collab/ui/session/playback/load|recording)/([^/?#]+)" + }, + "blackboardcollaboratelaunch": { + "name": "blackboardcollaboratelaunch", + "type": "free", + "domains": [ + "au.bbcollab.com", + "us.bbcollab.com", + "eu.bbcollab.com" + ], + "regexps": [ + "https?://[a-z]+\\.bbcollab\\.com/launch/([^/?#]+)" + ], + "regexp": "https?://[a-z]+\\.bbcollab\\.com/launch/([^/?#]+)" + }, + "bleacherreport": { + "name": "bleacherreport", + "type": "free", + "domains": [ + "bleacherreport.com" + ], + "regexps": [ + "https?://(?:www\\.)?bleacherreport\\.com/articles/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?bleacherreport\\.com/articles/(\\d+)" + }, + "bleacherreportcms": { + "name": "bleacherreportcms", + "type": "free", + "domains": [ + "bleacherreport.com" + ], + "regexps": [ + "https?://(?:www\\.)?bleacherreport\\.com/video_embed\\?id=([0-9a-f-]{36}|\\d{5})" + ], + "regexp": "https?://(?:www\\.)?bleacherreport\\.com/video_embed\\?id=([0-9a-f-]{36}|\\d{5})" + }, + "blerp": { + "name": "blerp", + "type": "free", + "domains": [ + "blerp.com" + ], + "regexps": [ + "https?://(?:www\\.)?blerp\\.com/soundbites/([0-9a-zA-Z]+)" + ], + "regexp": "https?://(?:www\\.)?blerp\\.com/soundbites/([0-9a-zA-Z]+)" + }, + "blogger.com": { + "name": "blogger.com", + "type": "free", + "domains": [ + "blogger.com" + ], + "regexps": [ + "https?://(?:www\\.)?blogger\\.com/video\\.g\\?token=(.+)" + ], + "regexp": "https?://(?:www\\.)?blogger\\.com/video\\.g\\?token=(.+)" + }, + "bloomberg": { + "name": "bloomberg", + "type": "free", + "domains": [ + "bloomberg.com" + ], + "regexps": [ + "https?://(?:www\\.)?bloomberg\\.com/(?:[^/]+/)*([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?bloomberg\\.com/(?:[^/]+/)*([^/?#]+)" + }, + "bluesky": { + "name": "bluesky", + "type": "free", + "domains": [ + "bsky.app", + "main.bsky.dev" + ], + "regexps": [ + "https?://(?:www\\.)?(?:bsky\\.app|main\\.bsky\\.dev)/profile/([\\w.:%-]+)/post/(\\w+)", + "at://([\\w.:%-]+)/app\\.bsky\\.feed\\.post/(\\w+)" + ], + "regexp": "(https?://(?:www\\.)?(?:bsky\\.app|main\\.bsky\\.dev)/profile/([\\w.:%-]+)/post/(\\w+))|(at://([\\w.:%-]+)/app\\.bsky\\.feed\\.post/(\\w+))" + }, + "bokecc": { + "name": "bokecc", + "type": "free", + "domains": [ + "union.bokecc.com" + ], + "regexps": [ + "https?://union\\.bokecc\\.com/playvideo\\.bo\\?(.*)" + ], + "regexp": "https?://union\\.bokecc\\.com/playvideo\\.bo\\?(.*)" + }, + "bongacams": { + "name": "bongacams", + "type": "free", + "domains": [ + "de.bongacams.com", + "cn.bongacams.com", + "de.bongacams.net" + ], + "regexps": [ + "https?://((?:[^/]+\\.)?bongacams\\d*\\.(?:com|net))/([^/?&#]+)" + ], + "regexp": "https?://((?:[^/]+\\.)?bongacams\\d*\\.(?:com|net))/([^/?&#]+)" + }, + "boosty": { + "name": "boosty", + "type": "free", + "domains": [ + "boosty.to" + ], + "regexps": [ + "https?://(?:www\\.)?boosty\\.to/([^/#?]+)/posts/([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?boosty\\.to/([^/#?]+)/posts/([^/#?]+)" + }, + "bostonglobe": { + "name": "bostonglobe", + "type": "free", + "domains": [ + "bostonglobe.com" + ], + "regexps": [ + "(?i)https?://(?:www\\.)?bostonglobe\\.com/.*/([^/]+)/\\w+(?:\\.html)?" + ], + "regexp": "(?i)https?://(?:www\\.)?bostonglobe\\.com/.*/([^/]+)/\\w+(?:\\.html)?" + }, + "box": { + "name": "box", + "type": "free", + "domains": [ + "mlssoccer.app.box.com", + "utexas.app.box.com", + "thejacksonlaboratory.ent.box.com" + ], + "regexps": [ + "https?://(?:[^.]+\\.)?(app|ent)\\.box\\.com/s/([^/?#]+)(?:/file/(\\d+))?" + ], + "regexp": "https?://(?:[^.]+\\.)?(app|ent)\\.box\\.com/s/([^/?#]+)(?:/file/(\\d+))?" + }, + "boxcastvideo": { + "name": "boxcastvideo", + "type": "free", + "domains": [ + "boxcast.tv" + ], + "regexps": [ + "https?://boxcast\\.tv/(?:view-embed/|channel/\\w+\\?(?:[^#]+&)?b=|video-portal/(?:\\w+/){2})([\\w-]+)" + ], + "regexp": "https?://boxcast\\.tv/(?:view-embed/|channel/\\w+\\?(?:[^#]+&)?b=|video-portal/(?:\\w+/){2})([\\w-]+)" + }, + "bpb": { + "name": "bpb", + "type": "free", + "domains": [ + "bpb.de" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?bpb\\.de/(?:[^/?#]+/)*(\\d+)(?:[/?#]|$)" + ], + "regexp": "https?://(?:www\\.|m\\.)?bpb\\.de/(?:[^/?#]+/)*(\\d+)(?:[/?#]|$)" + }, + "br": { + "name": "br", + "type": "free", + "domains": [ + "br.de", + "br-klassik.de" + ], + "regexps": [ + "(https?://(?:www\\.)?br(?:-klassik)?\\.de)/(?:[a-z0-9\\-_]+/)+([a-z0-9\\-_]+)\\.html" + ], + "regexp": "(https?://(?:www\\.)?br(?:-klassik)?\\.de)/(?:[a-z0-9\\-_]+/)+([a-z0-9\\-_]+)\\.html" + }, + "brainpop": { + "name": "brainpop", + "type": "free", + "domains": [ + "brainpop.com" + ], + "regexps": [ + "https?://(?:www\\.)?brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + ], + "regexp": "https?://(?:www\\.)?brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + }, + "brainpopell": { + "name": "brainpopell", + "type": "free", + "domains": [ + "ell.brainpop.com" + ], + "regexps": [ + "https?://ell\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + ], + "regexp": "https?://ell\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + }, + "brainpopesp": { + "name": "brainpopesp", + "type": "free", + "domains": [ + "esp.brainpop.com" + ], + "regexps": [ + "https?://esp\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + ], + "regexp": "https?://esp\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + }, + "brainpopfr": { + "name": "brainpopfr", + "type": "free", + "domains": [ + "fr.brainpop.com" + ], + "regexps": [ + "https?://fr\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + ], + "regexp": "https?://fr\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + }, + "brainpopil": { + "name": "brainpopil", + "type": "free", + "domains": [ + "il.brainpop.com" + ], + "regexps": [ + "https?://il\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + ], + "regexp": "https?://il\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + }, + "brainpopjr": { + "name": "brainpopjr", + "type": "free", + "domains": [ + "jr.brainpop.com" + ], + "regexps": [ + "https?://jr\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + ], + "regexp": "https?://jr\\.brainpop\\.com/([^/]+/[^/]+/([^/?#&]+))" + }, + "bravotv": { + "name": "bravotv", + "type": "free", + "domains": [ + "bravotv.com", + "oxygen.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:bravotv|oxygen)\\.com/(?:[^/?#]+/)+([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?(?:bravotv|oxygen)\\.com/(?:[^/?#]+/)+([^/?#]+)" + }, + "breitbart": { + "name": "breitbart", + "type": "free", + "domains": [ + "breitbart.com" + ], + "regexps": [ + "https?://(?:www\\.)?breitbart\\.com/videos/v/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?breitbart\\.com/videos/v/([^/?#]+)" + }, + "brightcove": { + "name": "brightcove", + "type": "free", + "domains": [ + "c.brightcove.com", + "link.brightcove.com", + "players.brightcove.net" + ], + "regexps": [ + "(?:https?://.*brightcove\\.com/(services|viewer).*?\\?|brightcove:)(.*)", + "https?://players\\.brightcove\\.net/(\\d+)/([^/]+)_([^/]+)/index\\.html\\?.*(video|playlist)Id=(\\d+|ref:[^&]+)" + ], + "regexp": "((?:https?://.*brightcove\\.com/(services|viewer).*?\\?|brightcove:)(.*))|(https?://players\\.brightcove\\.net/(\\d+)/([^/]+)_([^/]+)/index\\.html\\?.*(video|playlist)Id=(\\d+|ref:[^&]+))" + }, + "brilliantpala": { + "name": "brilliantpala", + "type": "free", + "domains": [ + "classes.brilliantpala.org", + "elearn.brilliantpala.org" + ], + "regexps": [ + "https?://classes\\.brilliantpala\\.org/courses/(\\d+)/contents/(\\d+)/?", + "https?://elearn\\.brilliantpala\\.org/courses/(\\d+)/contents/(\\d+)/?" + ], + "regexp": "(https?://classes\\.brilliantpala\\.org/courses/(\\d+)/contents/(\\d+)/?)|(https?://elearn\\.brilliantpala\\.org/courses/(\\d+)/contents/(\\d+)/?)" + }, + "bt": { + "name": "bt", + "type": "free", + "domains": [ + "bt.no" + ], + "regexps": [ + "https?://(?:www\\.)?bt\\.no/(?:[^/]+/)+([^/]+)-\\d+\\.html", + "https?://(?:www\\.)?bt\\.no/spesial/vestlendingen/#!/(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?bt\\.no/(?:[^/]+/)+([^/]+)-\\d+\\.html)|(https?://(?:www\\.)?bt\\.no/spesial/vestlendingen/#!/(\\d+))" + }, + "btvplus": { + "name": "btvplus", + "type": "free", + "domains": [ + "btvplus.bg" + ], + "regexps": [ + "https?://(?:www\\.)?btvplus\\.bg/produkt/(?:predavaniya|seriali|novini)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?btvplus\\.bg/produkt/(?:predavaniya|seriali|novini)/(\\d+)" + }, + "bundesliga": { + "name": "bundesliga", + "type": "free", + "domains": [ + "bundesliga.com" + ], + "regexps": [ + "https?://(?:www\\.)?bundesliga\\.com/[a-z]{2}/bundesliga/videos(?:/[^?]+)?\\?vid=([a-zA-Z0-9]{8})" + ], + "regexp": "https?://(?:www\\.)?bundesliga\\.com/[a-z]{2}/bundesliga/videos(?:/[^?]+)?\\?vid=([a-zA-Z0-9]{8})" + }, + "bundestag": { + "name": "bundestag", + "type": "free", + "domains": [ + "dbtg.tv", + "bundestag.de" + ], + "regexps": [ + "https?://dbtg\\.tv/[cf]vid/(\\d+)", + "https?://www\\.bundestag\\.de/mediathek/?\\?(?:[^#]+&)?videoid=(\\d+)" + ], + "regexp": "(https?://dbtg\\.tv/[cf]vid/(\\d+))|(https?://www\\.bundestag\\.de/mediathek/?\\?(?:[^#]+&)?videoid=(\\d+))" + }, + "bunnycdn": { + "name": "bunnycdn", + "type": "free", + "domains": [ + "iframe.mediadelivery.net", + "player.mediadelivery.net" + ], + "regexps": [ + "https?://(?:(?:iframe|player)\\.mediadelivery\\.net|video\\.bunnycdn\\.com)/(?:embed|play)/(\\d+)/([\\da-f-]+)" + ], + "regexp": "https?://(?:(?:iframe|player)\\.mediadelivery\\.net|video\\.bunnycdn\\.com)/(?:embed|play)/(\\d+)/([\\da-f-]+)" + }, + "businessinsider": { + "name": "businessinsider", + "type": "free", + "domains": [ + "uk.businessinsider.com", + "businessinsider.nl", + "businessinsider.com" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?businessinsider\\.(?:com|nl)/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?businessinsider\\.(?:com|nl)/(?:[^/]+/)*([^/?#&]+)" + }, + "buzzfeed": { + "name": "buzzfeed", + "type": "free", + "domains": [ + "buzzfeed.com" + ], + "regexps": [ + "https?://(?:www\\.)?buzzfeed\\.com/[^?#]*?/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?buzzfeed\\.com/[^?#]*?/([^?#]+)" + }, + "byutv": { + "name": "byutv", + "type": "free", + "domains": [ + "byutv.org" + ], + "regexps": [ + "https?://(?:www\\.)?byutv\\.org/(?:watch|player)/(?!event/)([0-9a-f-]+)(?:/([^/?#&]+))?" + ], + "regexp": "https?://(?:www\\.)?byutv\\.org/(?:watch|player)/(?!event/)([0-9a-f-]+)(?:/([^/?#&]+))?" + }, + "caffeinetv": { + "name": "caffeinetv", + "type": "free", + "domains": [ + "caffeine.tv" + ], + "regexps": [ + "https?://(?:www\\.)?caffeine\\.tv/[^/?#]+/video/([\\da-f-]+)" + ], + "regexp": "https?://(?:www\\.)?caffeine\\.tv/[^/?#]+/video/([\\da-f-]+)" + }, + "callin": { + "name": "callin", + "type": "free", + "domains": [ + "callin.com" + ], + "regexps": [ + "https?://(?:www\\.)?callin\\.com/episode/([-a-zA-Z]+)" + ], + "regexp": "https?://(?:www\\.)?callin\\.com/episode/([-a-zA-Z]+)" + }, + "caltrans": { + "name": "caltrans", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:[^/]+\\.)?ca\\.gov/vm/loc/[^/]+/([a-z0-9_]+)\\.htm" + ], + "regexp": "https?://(?:[^/]+\\.)?ca\\.gov/vm/loc/[^/]+/([a-z0-9_]+)\\.htm" + }, + "cam4": { + "name": "cam4", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:[^/]+\\.)?cam4\\.com/([a-z0-9_]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?cam4\\.com/([a-z0-9_]+)" + }, + "camdemy": { + "name": "camdemy", + "type": "free", + "domains": [ + "camdemy.com" + ], + "regexps": [ + "https?://(?:www\\.)?camdemy\\.com/media/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?camdemy\\.com/media/(\\d+)" + }, + "camdemyfolder": { + "name": "camdemyfolder", + "type": "free", + "domains": [ + "camdemy.com" + ], + "regexps": [ + "https?://(?:www\\.)?camdemy\\.com/folder/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?camdemy\\.com/folder/(\\d+)" + }, + "camfmepisode": { + "name": "camfmepisode", + "type": "free", + "domains": [ + "camfm.co.uk" + ], + "regexps": [ + "https?://(?:www\\.)?camfm\\.co\\.uk/player/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?camfm\\.co\\.uk/player/([^/]+)" + }, + "camfmshow": { + "name": "camfmshow", + "type": "free", + "domains": [ + "camfm.co.uk" + ], + "regexps": [ + "https?://(?:www\\.)?camfm\\.co\\.uk/shows/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?camfm\\.co\\.uk/shows/([^/]+)" + }, + "cammodels": { + "name": "cammodels", + "type": "free", + "domains": [ + "cammodels.com" + ], + "regexps": [ + "https?://(?:www\\.)?cammodels\\.com/cam/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?cammodels\\.com/cam/([^/?#&]+)" + }, + "camsoda": { + "name": "camsoda", + "type": "free", + "domains": [ + "camsoda.com" + ], + "regexps": [ + "https?://www\\.camsoda\\.com/([\\w-]+)" + ], + "regexp": "https?://www\\.camsoda\\.com/([\\w-]+)" + }, + "canal1": { + "name": "canal1", + "type": "free", + "domains": [ + "canal1.com.co", + "noticias.canal1.com.co" + ], + "regexps": [ + "https?://(?:www\\.|noticias\\.)?canal1\\.com\\.co/(?:[^?#&])+/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.|noticias\\.)?canal1\\.com\\.co/(?:[^?#&])+/([\\w-]+)" + }, + "canalalpha": { + "name": "canalalpha", + "type": "free", + "domains": [ + "canalalpha.ch" + ], + "regexps": [ + "https?://(?:www\\.)?canalalpha\\.ch/play/[^/]+/[^/]+/(\\d+)/?.*" + ], + "regexp": "https?://(?:www\\.)?canalalpha\\.ch/play/[^/]+/[^/]+/(\\d+)/?.*" + }, + "canalc2.tv": { + "name": "canalc2.tv", + "type": "free", + "domains": [ + "canalc2.tv", + "archives-canalc2.u-strasbg.fr" + ], + "regexps": [ + "https?://(?:(?:www\\.)?canalc2\\.tv/video/|archives-canalc2\\.u-strasbg\\.fr/video\\.asp\\?.*\\bidVideo=)(\\d+)" + ], + "regexp": "https?://(?:(?:www\\.)?canalc2\\.tv/video/|archives-canalc2\\.u-strasbg\\.fr/video\\.asp\\?.*\\bidVideo=)(\\d+)" + }, + "canalplus": { + "name": "canalplus", + "type": "free", + "domains": [ + "mycanal.fr", + "piwiplus.fr" + ], + "regexps": [ + "https?://(?:www\\.)?(mycanal|piwiplus)\\.fr/(?:[^/]+/)*([^?/]+)(?:\\.html\\?.*\\bvid=|/p/)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?(mycanal|piwiplus)\\.fr/(?:[^/]+/)*([^?/]+)(?:\\.html\\?.*\\bvid=|/p/)(\\d+)" + }, + "canalsurmas": { + "name": "canalsurmas", + "type": "free", + "domains": [ + "canalsurmas.es" + ], + "regexps": [ + "https?://(?:www\\.)?canalsurmas\\.es/videos/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?canalsurmas\\.es/videos/(\\d+)" + }, + "caracoltvplay": { + "name": "caracoltvplay", + "type": "free", + "domains": [ + "play.caracoltv.com" + ], + "regexps": [ + "https?://play\\.caracoltv\\.com/videoDetails/([^/?#]+)" + ], + "regexp": "https?://play\\.caracoltv\\.com/videoDetails/([^/?#]+)" + }, + "cbc.ca": { + "name": "cbc.ca", + "type": "free", + "domains": [ + "cbc.ca" + ], + "regexps": [ + "https?://(?:www\\.)?cbc\\.ca/(?!player/|listen/|i/caffeine/syndicate/)(?:[^/?#]+/)+([^/?#]+)", + "https?://(?:www\\.)?cbc\\.ca/listen/(?:cbc-podcasts|live-radio)/[\\w-]+/[\\w-]+/(\\d+)", + "(?:cbcplayer:|https?://(?:www\\.)?cbc\\.ca/(?:player/play/(?:video/)?|i/caffeine/syndicate/\\?mediaId=))((?:\\d\\.)?\\d+)", + "https?://(?:www\\.)?cbc\\.ca/(?:player/)(?!play/)([^?#]+)" + ], + "regexp": "(https?://(?:www\\.)?cbc\\.ca/(?!player/|listen/|i/caffeine/syndicate/)(?:[^/?#]+/)+([^/?#]+))|(https?://(?:www\\.)?cbc\\.ca/listen/(?:cbc-podcasts|live-radio)/[\\w-]+/[\\w-]+/(\\d+))|((?:cbcplayer:|https?://(?:www\\.)?cbc\\.ca/(?:player/play/(?:video/)?|i/caffeine/syndicate/\\?mediaId=))((?:\\d\\.)?\\d+))|(https?://(?:www\\.)?cbc\\.ca/(?:player/)(?!play/)([^?#]+))" + }, + "cbs": { + "name": "cbs", + "type": "free", + "domains": [ + "cbs.com", + "colbertlateshow.com" + ], + "regexps": [ + "(?:cbs:|https?://(?:www\\.)?(?:cbs\\.com/(?:shows|movies)/(?:video|[^/]+/video|[^/]+)/|colbertlateshow\\.com/(?:video|podcasts)/))([\\w-]+)" + ], + "regexp": "(?:cbs:|https?://(?:www\\.)?(?:cbs\\.com/(?:shows|movies)/(?:video|[^/]+/video|[^/]+)/|colbertlateshow\\.com/(?:video|podcasts)/))([\\w-]+)" + }, + "cbslocal": { + "name": "cbslocal", + "type": "free", + "domains": [ + "cbsnews.com" + ], + "regexps": [ + "https?://(?:www\\.)?cbsnews\\.com/(?:atlanta|baltimore|boston|chicago|colorado|detroit|losangeles|miami|minnesota|newyork|philadelphia|pittsburgh|sacramento|sanfrancisco|texas)/(?:live/)?video/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?cbsnews\\.com/(?:atlanta|baltimore|boston|chicago|colorado|detroit|losangeles|miami|minnesota|newyork|philadelphia|pittsburgh|sacramento|sanfrancisco|texas)/(?:live/)?video/([\\w-]+)" + }, + "cbslocalarticle": { + "name": "cbslocalarticle", + "type": "free", + "domains": [ + "cbsnews.com" + ], + "regexps": [ + "https?://(?:www\\.)?cbsnews\\.com/(?:atlanta|baltimore|boston|chicago|colorado|detroit|losangeles|miami|minnesota|newyork|philadelphia|pittsburgh|sacramento|sanfrancisco|texas)/news/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?cbsnews\\.com/(?:atlanta|baltimore|boston|chicago|colorado|detroit|losangeles|miami|minnesota|newyork|philadelphia|pittsburgh|sacramento|sanfrancisco|texas)/news/([\\w-]+)" + }, + "cbslocallive": { + "name": "cbslocallive", + "type": "free", + "domains": [ + "cbsnews.com" + ], + "regexps": [ + "https?://(?:www\\.)?cbsnews\\.com/(atlanta|baltimore|boston|chicago|colorado|detroit|losangeles|miami|minnesota|newyork|philadelphia|pittsburgh|sacramento|sanfrancisco|texas)/live/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?cbsnews\\.com/(atlanta|baltimore|boston|chicago|colorado|detroit|losangeles|miami|minnesota|newyork|philadelphia|pittsburgh|sacramento|sanfrancisco|texas)/live/?(?:[?#]|$)" + }, + "cbsnews": { + "name": "cbsnews", + "type": "free", + "domains": [ + "cbsnews.com" + ], + "regexps": [ + "https?://(?:www\\.)?cbsnews\\.com/embed/video[^#]*#(.+)", + "https?://(?:www\\.)?cbsnews\\.com/(?:news|video)/([\\w-]+)", + "https?://(?:www\\.)?cbsnews\\.com/live/?(?:[?#]|$)", + "https?://(?:www\\.)?cbsnews\\.com/live/video/([^/?#]+)" + ], + "regexp": "(https?://(?:www\\.)?cbsnews\\.com/embed/video[^#]*#(.+))|(https?://(?:www\\.)?cbsnews\\.com/(?:news|video)/([\\w-]+))|(https?://(?:www\\.)?cbsnews\\.com/live/?(?:[?#]|$))|(https?://(?:www\\.)?cbsnews\\.com/live/video/([^/?#]+))" + }, + "cbssports": { + "name": "cbssports", + "type": "free", + "domains": [ + "cbssports.com", + "embed.247sports.com" + ], + "regexps": [ + "(?ix)https?://(?:(?:www\\.)?cbs|embed\\.247)sports\\.com/player/embed.+?\n (?:\n ids%3D([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})|\n pcid%3D(\\d+)\n )", + "https?://(?:www\\.)?cbssports\\.com/[^/]+/video/([^/?#&]+)" + ], + "regexp": "((?ix)https?://(?:(?:www\\.)?cbs|embed\\.247)sports\\.com/player/embed.+?\n (?:\n ids%3D([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})|\n pcid%3D(\\d+)\n ))|(https?://(?:www\\.)?cbssports\\.com/[^/]+/video/([^/?#&]+))" + }, + "ccma": { + "name": "ccma", + "type": "free", + "domains": [ + "3cat.cat" + ], + "regexps": [ + "https?://(?:www\\.)?3cat\\.cat/(?:3cat|tv3/sx3)/[^/?#]+/(video|audio)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?3cat\\.cat/(?:3cat|tv3/sx3)/[^/?#]+/(video|audio)/(\\d+)" + }, + "cctv": { + "name": "cctv", + "type": "free", + "domains": [ + "sports.cntv.cn", + "tv.cctv.com", + "english.cntv.cn", + "cctv.cntv.cn", + "ncpa-classic.com", + "news.cctv.com", + "ent.cntv.cn", + "tv.cntv.cn" + ], + "regexps": [ + "https?://(?:(?:[^/]+)\\.(?:cntv|cctv)\\.(?:com|cn)|(?:www\\.)?ncpa-classic\\.com)/(?:[^/]+/)*?([^/?#&]+?)(?:/index)?(?:\\.s?html|[?#&]|$)" + ], + "regexp": "https?://(?:(?:[^/]+)\\.(?:cntv|cctv)\\.(?:com|cn)|(?:www\\.)?ncpa-classic\\.com)/(?:[^/]+/)*?([^/?#&]+?)(?:/index)?(?:\\.s?html|[?#&]|$)" + }, + "cda": { + "name": "cda", + "type": "free", + "domains": [ + "cda.pl", + "ebd.cda.pl" + ], + "regexps": [ + "https?://(?:(?:www\\.)?cda\\.pl/video|ebd\\.cda\\.pl/[0-9]+x[0-9]+)/([0-9a-z]+)" + ], + "regexp": "https?://(?:(?:www\\.)?cda\\.pl/video|ebd\\.cda\\.pl/[0-9]+x[0-9]+)/([0-9a-z]+)" + }, + "cdafolder": { + "name": "cdafolder", + "type": "free", + "domains": [ + "cda.pl" + ], + "regexps": [ + "https?://(?:www\\.)?cda\\.pl/([\\w-]+)/folder/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?cda\\.pl/([\\w-]+)/folder/(\\d+)" + }, + "cellebrite": { + "name": "cellebrite", + "type": "free", + "domains": [ + "cellebrite.com" + ], + "regexps": [ + "https?://cellebrite\\.com/(?:\\w+)?/([\\w-]+)" + ], + "regexp": "https?://cellebrite\\.com/(?:\\w+)?/([\\w-]+)" + }, + "ceskatelevize": { + "name": "ceskatelevize", + "type": "free", + "domains": [ + "ceskatelevize.cz" + ], + "regexps": [ + "https?://(?:www\\.)?ceskatelevize\\.cz/(?:ivysilani|porady|zive)/(?:[^/?#&]+/)*([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?ceskatelevize\\.cz/(?:ivysilani|porady|zive)/(?:[^/?#&]+/)*([^/#?]+)" + }, + "cgtn": { + "name": "cgtn", + "type": "free", + "domains": [ + "news.cgtn.com" + ], + "regexps": [ + "https?://news\\.cgtn\\.com/news/[0-9]{4}-[0-9]{2}-[0-9]{2}/[a-zA-Z0-9-]+-([a-zA-Z0-9-]+)/index\\.html" + ], + "regexp": "https?://news\\.cgtn\\.com/news/[0-9]{4}-[0-9]{2}-[0-9]{2}/[a-zA-Z0-9-]+-([a-zA-Z0-9-]+)/index\\.html" + }, + "charlierose": { + "name": "charlierose", + "type": "free", + "domains": [ + "charlierose.com" + ], + "regexps": [ + "https?://(?:www\\.)?charlierose\\.com/(?:video|episode)(?:s|/player)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?charlierose\\.com/(?:video|episode)(?:s|/player)/(\\d+)" + }, + "chaturbate": { + "name": "chaturbate", + "type": "free", + "domains": [ + "chaturbate.com", + "en.chaturbate.com", + "chaturbate.eu", + "chaturbate.global" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?chaturbate\\.(com|eu|global)/(?:fullvideo/?\\?.*?\\bb=)?([^/?&#]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?chaturbate\\.(com|eu|global)/(?:fullvideo/?\\?.*?\\bb=)?([^/?&#]+)" + }, + "chilloutzone": { + "name": "chilloutzone", + "type": "free", + "domains": [ + "chilloutzone.net" + ], + "regexps": [ + "https?://(?:www\\.)?chilloutzone\\.net/video/([\\w-]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?chilloutzone\\.net/video/([\\w-]+)\\.html" + }, + "chzzk": { + "name": "chzzk", + "type": "free", + "domains": [ + "chzzk.naver.com" + ], + "regexps": [ + "https?://chzzk\\.naver\\.com/live/([\\da-f]+)", + "https?://chzzk\\.naver\\.com/video/(\\d+)" + ], + "regexp": "(https?://chzzk\\.naver\\.com/live/([\\da-f]+))|(https?://chzzk\\.naver\\.com/video/(\\d+))" + }, + "cielotv.it": { + "name": "cielotv.it", + "type": "free", + "domains": [ + "cielotv.it" + ], + "regexps": [ + "https?://(?:www\\.)?cielotv\\.it/video/([^.]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?cielotv\\.it/video/([^.]+)\\.html" + }, + "cinemax": { + "name": "cinemax", + "type": "free", + "domains": [ + "cinemax.com" + ], + "regexps": [ + "https?://(?:www\\.)?cinemax\\.com/([^/]+/video/[0-9a-z-]+-(\\d+))" + ], + "regexp": "https?://(?:www\\.)?cinemax\\.com/([^/]+/video/[0-9a-z-]+-(\\d+))" + }, + "cinetecamilano": { + "name": "cinetecamilano", + "type": "free", + "domains": [ + "cinetecamilano.it" + ], + "regexps": [ + "https?://(?:www\\.)?cinetecamilano\\.it/film/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?cinetecamilano\\.it/film/(\\d+)" + }, + "cineverse": { + "name": "cineverse", + "type": "free", + "domains": [ + "asiancrush.com", + "retrocrush.tv" + ], + "regexps": [ + "https?://www\\.(cineverse\\.com|asiancrush\\.com|dovechannel\\.com|screambox\\.com|midnightpulp\\.com|fandor\\.com|retrocrush\\.tv)/watch/([A-Z0-9]+)" + ], + "regexp": "https?://www\\.(cineverse\\.com|asiancrush\\.com|dovechannel\\.com|screambox\\.com|midnightpulp\\.com|fandor\\.com|retrocrush\\.tv)/watch/([A-Z0-9]+)" + }, + "cineversedetails": { + "name": "cineversedetails", + "type": "free", + "domains": [ + "retrocrush.tv", + "asiancrush.com" + ], + "regexps": [ + "https?://www\\.(cineverse\\.com|asiancrush\\.com|dovechannel\\.com|screambox\\.com|midnightpulp\\.com|fandor\\.com|retrocrush\\.tv)/details/([A-Z0-9]+)" + ], + "regexp": "https?://www\\.(cineverse\\.com|asiancrush\\.com|dovechannel\\.com|screambox\\.com|midnightpulp\\.com|fandor\\.com|retrocrush\\.tv)/details/([A-Z0-9]+)" + }, + "ciscolivesearch": { + "name": "ciscolivesearch", + "type": "free", + "domains": [ + "ciscolive.cisco.com", + "ciscolive.com" + ], + "regexps": [ + "https?://(?:www\\.)?ciscolive(?:\\.cisco)?\\.com/(?:global/)?on-demand-library(?:\\.html|/)" + ], + "regexp": "https?://(?:www\\.)?ciscolive(?:\\.cisco)?\\.com/(?:global/)?on-demand-library(?:\\.html|/)" + }, + "ciscolivesession": { + "name": "ciscolivesession", + "type": "free", + "domains": [ + "ciscolive.cisco.com", + "ciscolive.com" + ], + "regexps": [ + "https?://(?:www\\.)?ciscolive(?:\\.cisco)?\\.com/[^#]*#/session/([^/?&]+)" + ], + "regexp": "https?://(?:www\\.)?ciscolive(?:\\.cisco)?\\.com/[^#]*#/session/([^/?&]+)" + }, + "ciscowebex": { + "name": "ciscowebex", + "type": "free", + "domains": [ + "demosubdomain.webex.com" + ], + "regexps": [ + "(https?://([^/#?]*)\\.webex\\.com/(?:([^/#?]*)/(?:ldr|lsr).php\\?(?:[^#]*&)*RCID=([0-9a-f]{32})|(?:recordingservice|webappng)/sites/([^/#?]*)/recording/(?:playback/|play/)?([0-9a-f]{32})))" + ], + "regexp": "(https?://([^/#?]*)\\.webex\\.com/(?:([^/#?]*)/(?:ldr|lsr).php\\?(?:[^#]*&)*RCID=([0-9a-f]{32})|(?:recordingservice|webappng)/sites/([^/#?]*)/recording/(?:playback/|play/)?([0-9a-f]{32})))" + }, + "cjsw": { + "name": "cjsw", + "type": "free", + "domains": [ + "cjsw.com" + ], + "regexps": [ + "https?://(?:www\\.)?cjsw\\.com/program/([^/]+)/episode/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?cjsw\\.com/program/([^/]+)/episode/(\\d+)" + }, + "clipchamp": { + "name": "clipchamp", + "type": "free", + "domains": [ + "clipchamp.com" + ], + "regexps": [ + "https?://(?:www\\.)?clipchamp\\.com/watch/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?clipchamp\\.com/watch/([\\w-]+)" + }, + "clippit": { + "name": "clippit", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?clippituser\\.tv/c/([a-z]+)" + ], + "regexp": "https?://(?:www\\.)?clippituser\\.tv/c/([a-z]+)" + }, + "cliprs": { + "name": "cliprs", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?clip\\.rs/([^/]+)/\\d+" + ], + "regexp": "https?://(?:www\\.)?clip\\.rs/([^/]+)/\\d+" + }, + "closertotruth": { + "name": "closertotruth", + "type": "free", + "domains": [ + "closertotruth.com" + ], + "regexps": [ + "https?://(?:www\\.)?closertotruth\\.com/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?closertotruth\\.com/(?:[^/]+/)*([^/?#&]+)" + }, + "cloudflarestream": { + "name": "cloudflarestream", + "type": "free", + "domains": [ + "embed.cloudflarestream.com", + "watch.cloudflarestream.com", + "cloudflarestream.com", + "embed.videodelivery.net", + "customer-aw5py76sw8wyqzmh.cloudflarestream.com" + ], + "regexps": [ + "https?://(?:(?:(?:watch|iframe|customer-\\w+)\\.)?((?:cloudflarestream\\.com|(?:videodelivery|bytehighway)\\.net))/|(?:embed\\.|(?:(?:watch|iframe|customer-\\w+)\\.)?)(?:cloudflarestream\\.com|(?:videodelivery|bytehighway)\\.net)/embed/[^/?#]+\\.js\\?(?:[^#]+&)?video=)([\\da-f]{32}|eyJ[\\w-]+\\.[\\w-]+\\.[\\w-]+)" + ], + "regexp": "https?://(?:(?:(?:watch|iframe|customer-\\w+)\\.)?((?:cloudflarestream\\.com|(?:videodelivery|bytehighway)\\.net))/|(?:embed\\.|(?:(?:watch|iframe|customer-\\w+)\\.)?)(?:cloudflarestream\\.com|(?:videodelivery|bytehighway)\\.net)/embed/[^/?#]+\\.js\\?(?:[^#]+&)?video=)([\\da-f]{32}|eyJ[\\w-]+\\.[\\w-]+\\.[\\w-]+)" + }, + "cloudycdn": { + "name": "cloudycdn", + "type": "free", + "domains": [ + "embed.cloudycdn.services", + "embed.backscreen.com" + ], + "regexps": [ + "(?:https?:)?//embed\\.(cloudycdn\\.services|backscreen\\.com)/([^/?#]+)/media/([\\w-]+)" + ], + "regexp": "(?:https?:)?//embed\\.(cloudycdn\\.services|backscreen\\.com)/([^/?#]+)/media/([\\w-]+)" + }, + "clubic": { + "name": "clubic", + "type": "free", + "domains": [ + "clubic.com" + ], + "regexps": [ + "https?://(?:www\\.)?clubic\\.com/video/(?:[^/]+/)*video.*-([0-9]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?clubic\\.com/video/(?:[^/]+/)*video.*-([0-9]+)\\.html" + }, + "clyp": { + "name": "clyp", + "type": "free", + "domains": [ + "clyp.it" + ], + "regexps": [ + "https?://(?:www\\.)?clyp\\.it/([a-z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?clyp\\.it/([a-z0-9]+)" + }, + "cnbcvideo": { + "name": "cnbcvideo", + "type": "free", + "domains": [ + "cnbc.com" + ], + "regexps": [ + "https?://(?:www\\.)?cnbc\\.com/video/(?:[^/?#]+/)+([^./?#&]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?cnbc\\.com/video/(?:[^/?#]+/)+([^./?#&]+)\\.html" + }, + "cnn": { + "name": "cnn", + "type": "free", + "domains": [ + "cnn.com", + "edition.cnn.com", + "cnnespanol.cnn.com" + ], + "regexps": [ + "https?://(?:(?:edition|www|money|cnnespanol)\\.)?cnn\\.com/(?!audio/)([^?#]+?)(?:[?#]|$|/index\\.html)" + ], + "regexp": "https?://(?:(?:edition|www|money|cnnespanol)\\.)?cnn\\.com/(?!audio/)([^?#]+?)(?:[?#]|$|/index\\.html)" + }, + "cnnindonesia": { + "name": "cnnindonesia", + "type": "free", + "domains": [ + "cnnindonesia.com" + ], + "regexps": [ + "https?://www\\.cnnindonesia\\.com/[\\w-]+/(\\d{8})\\d+-\\d+-(\\d+)/([\\w-]+)" + ], + "regexp": "https?://www\\.cnnindonesia\\.com/[\\w-]+/(\\d{8})\\d+-\\d+-(\\d+)/([\\w-]+)" + }, + "comedycentral": { + "name": "comedycentral", + "type": "free", + "domains": [ + "cc.com" + ], + "regexps": [ + "https?://(?:www\\.)?cc\\.com/video-clips/([\\da-z]{6})" + ], + "regexp": "https?://(?:www\\.)?cc\\.com/video-clips/([\\da-z]{6})" + }, + "conanclassic": { + "name": "conanclassic", + "type": "free", + "domains": [ + "conanclassic.com", + "conan25.teamcoco.com" + ], + "regexps": [ + "https?://(?:(?:www\\.)?conanclassic|conan25\\.teamcoco)\\.com/(([^/]+/)*[^/?#]+)" + ], + "regexp": "https?://(?:(?:www\\.)?conanclassic|conan25\\.teamcoco)\\.com/(([^/]+/)*[^/?#]+)" + }, + "condenast": { + "name": "condenast", + "type": "free", + "domains": [ + "video.wired.com", + "video.gq.com", + "player.cnevids.com", + "vanityfair.com", + "player-backend.cnevids.com" + ], + "regexps": [ + "https?://(?:video|www|player(?:-backend)?)\\.(?:allure|architecturaldigest|arstechnica|bonappetit|brides|cnevids|cntraveler|details|epicurious|glamour|golfdigest|gq|newyorker|self|teenvogue|vanityfair|vogue|wired|wmagazine)\\.com/(?:(?:embed(?:js)?|(?:script|inline)/video)/([0-9a-f]{24})(?:/([0-9a-f]{24}))?(?:.+?\\btarget=([^&]+))?|(watch|series|video)/([^/?#]+))" + ], + "regexp": "https?://(?:video|www|player(?:-backend)?)\\.(?:allure|architecturaldigest|arstechnica|bonappetit|brides|cnevids|cntraveler|details|epicurious|glamour|golfdigest|gq|newyorker|self|teenvogue|vanityfair|vogue|wired|wmagazine)\\.com/(?:(?:embed(?:js)?|(?:script|inline)/video)/([0-9a-f]{24})(?:/([0-9a-f]{24}))?(?:.+?\\btarget=([^&]+))?|(watch|series|video)/([^/?#]+))" + }, + "contv": { + "name": "contv", + "type": "free", + "domains": [ + "contv.com" + ], + "regexps": [ + "https?://(?:www\\.)?contv\\.com/details-movie/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?contv\\.com/details-movie/([^/]+)" + }, + "cookingchannel": { + "name": "cookingchannel", + "type": "free", + "domains": [ + "watch.cookingchanneltv.com" + ], + "regexps": [ + "https?://(?:watch\\.)?cookingchanneltv\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:watch\\.)?cookingchanneltv\\.com/video/([^/]+/[^/?#]+)" + }, + "corus": { + "name": "corus", + "type": "free", + "domains": [ + "hgtv.ca", + "foodnetwork.ca", + "etcanada.com", + "history.ca", + "showcase.ca", + "bigbrothercanada.ca", + "seriesplus.com", + "disneychannel.ca" + ], + "regexps": [ + "https?://(?:www\\.)?((?:globaltv|etcanada|seriesplus|wnetwork|ytv)\\.com|(?:hgtv|foodnetwork|slice|history|showcase|bigbrothercanada|abcspark|disney(?:channel|lachaine))\\.ca)/(?:[^/]+/)*(?:video\\.html\\?.*?\\bv=|videos?/(?:[^/]+/)*(?:[a-z0-9-]+-)?)([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}|(?:[A-Z]{4})?\\d{12,20})" + ], + "regexp": "https?://(?:www\\.)?((?:globaltv|etcanada|seriesplus|wnetwork|ytv)\\.com|(?:hgtv|foodnetwork|slice|history|showcase|bigbrothercanada|abcspark|disney(?:channel|lachaine))\\.ca)/(?:[^/]+/)*(?:video\\.html\\?.*?\\bv=|videos?/(?:[^/]+/)*(?:[a-z0-9-]+-)?)([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}|(?:[A-Z]{4})?\\d{12,20})" + }, + "coub": { + "name": "coub", + "type": "free", + "domains": [ + "coub.com", + "c-cdn.coub.com" + ], + "regexps": [ + "(?:coub:|https?://(?:coub\\.com/(?:view|embed|coubs)/|c-cdn\\.coub\\.com/fb-player\\.swf\\?.*\\bcoub(?:ID|id)=))([\\da-z]+)" + ], + "regexp": "(?:coub:|https?://(?:coub\\.com/(?:view|embed|coubs)/|c-cdn\\.coub\\.com/fb-player\\.swf\\?.*\\bcoub(?:ID|id)=))([\\da-z]+)" + }, + "cozytv": { + "name": "cozytv", + "type": "free", + "domains": [ + "cozy.tv" + ], + "regexps": [ + "https?://(?:www\\.)?cozy\\.tv/([^/]+)/replays/([^/$#&?]+)" + ], + "regexp": "https?://(?:www\\.)?cozy\\.tv/([^/]+)/replays/([^/$#&?]+)" + }, + "cp24": { + "name": "cp24", + "type": "free", + "domains": [ + "cp24.com" + ], + "regexps": [ + "https?://(?:www\\.)?cp24\\.com/news/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?cp24\\.com/news/([^?#]+)" + }, + "cpac": { + "name": "cpac", + "type": "free", + "domains": [ + "cpac.ca" + ], + "regexps": [ + "https?://(?:www\\.)?cpac\\.ca/(l-)?episode\\?id=([\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12})", + "(?i)https?://(?:www\\.)?cpac\\.ca/(?:program|search|(emission|rechercher))\\?(?:[^&]+&)*?((?:id=\\d+|programId=\\d+|key=[^&]+))" + ], + "regexp": "(https?://(?:www\\.)?cpac\\.ca/(l-)?episode\\?id=([\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}))|((?i)https?://(?:www\\.)?cpac\\.ca/(?:program|search|(emission|rechercher))\\?(?:[^&]+&)*?((?:id=\\d+|programId=\\d+|key=[^&]+)))" + }, + "cracked": { + "name": "cracked", + "type": "free", + "domains": [ + "cracked.com" + ], + "regexps": [ + "https?://(?:www\\.)?cracked\\.com/video_(\\d+)_[\\da-z-]+\\.html" + ], + "regexp": "https?://(?:www\\.)?cracked\\.com/video_(\\d+)_[\\da-z-]+\\.html" + }, + "craftsy": { + "name": "craftsy", + "type": "free", + "domains": [ + "craftsy.com" + ], + "regexps": [ + "https?://www\\.craftsy\\.com/class/([\\w-]+)" + ], + "regexp": "https?://www\\.craftsy\\.com/class/([\\w-]+)" + }, + "crooksandliars": { + "name": "crooksandliars", + "type": "free", + "domains": [ + "embed.crooksandliars.com" + ], + "regexps": [ + "https?://embed\\.crooksandliars\\.com/(?:embed|v)/([A-Za-z0-9]+)" + ], + "regexp": "https?://embed\\.crooksandliars\\.com/(?:embed|v)/([A-Za-z0-9]+)" + }, + "crowdbunker": { + "name": "crowdbunker", + "type": "free", + "domains": [ + "crowdbunker.com" + ], + "regexps": [ + "https?://(?:www\\.)?crowdbunker\\.com/v/([^/?#$&]+)" + ], + "regexp": "https?://(?:www\\.)?crowdbunker\\.com/v/([^/?#$&]+)" + }, + "crowdbunkerchannel": { + "name": "crowdbunkerchannel", + "type": "free", + "domains": [ + "crowdbunker.com" + ], + "regexps": [ + "https?://(?:www\\.)?crowdbunker\\.com/@([^/?#$&]+)" + ], + "regexp": "https?://(?:www\\.)?crowdbunker\\.com/@([^/?#$&]+)" + }, + "crtvg": { + "name": "crtvg", + "type": "free", + "domains": [ + "crtvg.es" + ], + "regexps": [ + "https?://(?:www\\.)?crtvg\\.es/tvg/a-carta/([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?crtvg\\.es/tvg/a-carta/([^/#?]+)" + }, + "cspan": { + "name": "cspan", + "type": "free", + "domains": [ + "c-span.org" + ], + "regexps": [ + "https?://(?:www\\.)?c-span\\.org/video/\\?([0-9a-f]+)" + ], + "regexp": "https?://(?:www\\.)?c-span\\.org/video/\\?([0-9a-f]+)" + }, + "cspancongress": { + "name": "cspancongress", + "type": "free", + "domains": [ + "c-span.org" + ], + "regexps": [ + "https?://(?:www\\.)?c-span\\.org/congress/" + ], + "regexp": "https?://(?:www\\.)?c-span\\.org/congress/" + }, + "ctsnews": { + "name": "ctsnews", + "type": "free", + "domains": [ + "news.cts.com.tw" + ], + "regexps": [ + "https?://news\\.cts\\.com\\.tw/[a-z]+/[a-z]+/\\d+/(\\d+)\\.html" + ], + "regexp": "https?://news\\.cts\\.com\\.tw/[a-z]+/[a-z]+/\\d+/(\\d+)\\.html" + }, + "ctvnews": { + "name": "ctvnews", + "type": "free", + "domains": [ + "ctvnews.ca", + "barrie.ctvnews.ca", + "stox.ctvnews.ca", + "ottawa.ctvnews.ca", + "vancouverisland.ctvnews.ca" + ], + "regexps": [ + "https?://(?:[^.]+\\.)?ctvnews\\.ca/video/c(\\d{5,})", + "https?://(?:[^.]+\\.)?ctvnews\\.ca/video(?:-gallery)?/?\\?clipId=(\\d{5,})", + "https?://(?:[^.]+\\.)?ctvnews\\.ca/video/?\\?(?:playlist|bin)Id=(\\d\\.\\d{5,})", + "https?://(?:[^.]+\\.)?ctvnews\\.ca/(?!video/)[^?#]*?(\\d\\.\\d{5,})/?(?:$|[?#])", + "https?://(?:[^.]+\\.)?ctvnews\\.ca/(?!video/)[^?#]+\\?binId=(\\d\\.\\d{5,})" + ], + "regexp": "(https?://(?:[^.]+\\.)?ctvnews\\.ca/video/c(\\d{5,}))|(https?://(?:[^.]+\\.)?ctvnews\\.ca/video(?:-gallery)?/?\\?clipId=(\\d{5,}))|(https?://(?:[^.]+\\.)?ctvnews\\.ca/video/?\\?(?:playlist|bin)Id=(\\d\\.\\d{5,}))|(https?://(?:[^.]+\\.)?ctvnews\\.ca/(?!video/)[^?#]*?(\\d\\.\\d{5,})/?(?:$|[?#]))|(https?://(?:[^.]+\\.)?ctvnews\\.ca/(?!video/)[^?#]+\\?binId=(\\d\\.\\d{5,}))" + }, + "cu.ntv.co.jp": { + "name": "cu.ntv.co.jp", + "type": "free", + "domains": [ + "cu.ntv.co.jp" + ], + "regexps": [ + "https?://cu\\.ntv\\.co\\.jp/(?!program-list|search)([\\w-]+)/?(?:[?#]|$)" + ], + "regexp": "https?://cu\\.ntv\\.co\\.jp/(?!program-list|search)([\\w-]+)/?(?:[?#]|$)" + }, + "cultureunplugged": { + "name": "cultureunplugged", + "type": "free", + "domains": [ + "cultureunplugged.com" + ], + "regexps": [ + "https?://(?:www\\.)?cultureunplugged\\.com/(?:documentary/watch-online/)?play/(\\d+)(?:/([^/#?]+))?" + ], + "regexp": "https?://(?:www\\.)?cultureunplugged\\.com/(?:documentary/watch-online/)?play/(\\d+)(?:/([^/#?]+))?" + }, + "curiositystream": { + "name": "curiositystream", + "type": "free", + "domains": [ + "curiositystream.com", + "app.curiositystream.com" + ], + "regexps": [ + "https?://(?:app\\.)?curiositystream\\.com/collections/(\\d+)", + "https?://(?:app\\.)?curiositystream\\.com/video/(\\d+)", + "https?://(?:app\\.)?curiositystream\\.com/(?:series|collection)/(\\d+)" + ], + "regexp": "(https?://(?:app\\.)?curiositystream\\.com/collections/(\\d+))|(https?://(?:app\\.)?curiositystream\\.com/video/(\\d+))|(https?://(?:app\\.)?curiositystream\\.com/(?:series|collection)/(\\d+))" + }, + "cybrary": { + "name": "cybrary", + "type": "free", + "domains": [ + "app.cybrary.it" + ], + "regexps": [ + "https?://app\\.cybrary\\.it/immersive/([0-9]+)/activity/([0-9]+)" + ], + "regexp": "https?://app\\.cybrary\\.it/immersive/([0-9]+)/activity/([0-9]+)" + }, + "cybrarycourse": { + "name": "cybrarycourse", + "type": "free", + "domains": [ + "app.cybrary.it" + ], + "regexps": [ + "https?://app\\.cybrary\\.it/browse/course/([\\w-]+)/?(?:$|[#?])" + ], + "regexp": "https?://app\\.cybrary\\.it/browse/course/([\\w-]+)/?(?:$|[#?])" + }, + "dacastplaylist": { + "name": "dacastplaylist", + "type": "free", + "domains": [ + "iframe.dacast.com" + ], + "regexps": [ + "https?://iframe\\.dacast\\.com/playlist/([\\w-]+)/([\\w-]+)" + ], + "regexp": "https?://iframe\\.dacast\\.com/playlist/([\\w-]+)/([\\w-]+)" + }, + "dacastvod": { + "name": "dacastvod", + "type": "free", + "domains": [ + "iframe.dacast.com" + ], + "regexps": [ + "https?://iframe\\.dacast\\.com/vod/([\\w-]+)/([\\w-]+)" + ], + "regexp": "https?://iframe\\.dacast\\.com/vod/([\\w-]+)/([\\w-]+)" + }, + "dagelijksekost": { + "name": "dagelijksekost", + "type": "free", + "domains": [ + "dagelijksekost.een.be" + ], + "regexps": [ + "https?://dagelijksekost\\.een\\.be/gerechten/([^/?#&]+)" + ], + "regexp": "https?://dagelijksekost\\.een\\.be/gerechten/([^/?#&]+)" + }, + "dailymail": { + "name": "dailymail", + "type": "free", + "domains": [ + "dailymail.co.uk" + ], + "regexps": [ + "https?://(?:www\\.)?dailymail\\.co\\.uk/(?:video/[^/]+/video-|embed/video/)([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?dailymail\\.co\\.uk/(?:video/[^/]+/video-|embed/video/)([0-9]+)" + }, + "dailywire": { + "name": "dailywire", + "type": "free", + "domains": [ + "dailywire.com" + ], + "regexps": [ + "https?://(?:www\\.)dailywire(?:\\.com)/(episode|videos)/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)dailywire(?:\\.com)/(episode|videos)/([\\w-]+)" + }, + "dailywirepodcast": { + "name": "dailywirepodcast", + "type": "free", + "domains": [ + "dailywire.com" + ], + "regexps": [ + "https?://(?:www\\.)dailywire(?:\\.com)/(podcasts)/([\\w-]+/([\\w-]+))" + ], + "regexp": "https?://(?:www\\.)dailywire(?:\\.com)/(podcasts)/([\\w-]+/([\\w-]+))" + }, + "damtomo": { + "name": "damtomo", + "type": "free", + "domains": [ + "clubdam.com" + ], + "regexps": [ + "https?://(?:www\\.)?clubdam\\.com/app/damtomo/(?:SP/)?karaokePost/StreamingKrk\\.do\\?karaokeContributeId=(\\d+)", + "https?://(?:www\\.)?clubdam\\.com/app/damtomo/(?:SP/)?karaokeMovie/StreamingDkm\\.do\\?karaokeMovieId=(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?clubdam\\.com/app/damtomo/(?:SP/)?karaokePost/StreamingKrk\\.do\\?karaokeContributeId=(\\d+))|(https?://(?:www\\.)?clubdam\\.com/app/damtomo/(?:SP/)?karaokeMovie/StreamingDkm\\.do\\?karaokeMovieId=(\\d+))" + }, + "dangalplay": { + "name": "dangalplay", + "type": "free", + "domains": [ + "dangalplay.com" + ], + "regexps": [ + "https?://(?:www\\.)?dangalplay.com/shows/([^/?#]+)/((?!episodes)[^/?#]+)/?(?:$|[?#])", + "https?://(?:www\\.)?dangalplay.com/shows/([^/?#]+)(?:/(ep-[^/?#]+)/episodes)?/?(?:$|[?#])" + ], + "regexp": "(https?://(?:www\\.)?dangalplay.com/shows/([^/?#]+)/((?!episodes)[^/?#]+)/?(?:$|[?#]))|(https?://(?:www\\.)?dangalplay.com/shows/([^/?#]+)(?:/(ep-[^/?#]+)/episodes)?/?(?:$|[?#]))" + }, + "daum.net": { + "name": "daum.net", + "type": "free", + "domains": [ + "tvpot.daum.net", + "m.tvpot.daum.net", + "videofarm.daum.net" + ], + "regexps": [ + "https?://(?:m\\.)?tvpot\\.daum\\.net/(?:clip/ClipView.(?:do|tv)|mypot/View.do)\\?.*?clipid=(\\d+)", + "https?://(?:(?:m\\.)?tvpot\\.daum\\.net/v/|videofarm\\.daum\\.net/controller/player/VodPlayer\\.swf\\?vid=)([^?#&]+)", + "https?://(?:m\\.)?tvpot\\.daum\\.net/mypot/(?:View\\.do|Top\\.tv)\\?.*?playlistid=([0-9]+)", + "https?://(?:m\\.)?tvpot\\.daum\\.net/mypot/(?:View|Top)\\.(?:do|tv)\\?.*?ownerid=([0-9a-zA-Z]+)" + ], + "regexp": "(https?://(?:m\\.)?tvpot\\.daum\\.net/(?:clip/ClipView.(?:do|tv)|mypot/View.do)\\?.*?clipid=(\\d+))|(https?://(?:(?:m\\.)?tvpot\\.daum\\.net/v/|videofarm\\.daum\\.net/controller/player/VodPlayer\\.swf\\?vid=)([^?#&]+))|(https?://(?:m\\.)?tvpot\\.daum\\.net/mypot/(?:View\\.do|Top\\.tv)\\?.*?playlistid=([0-9]+))|(https?://(?:m\\.)?tvpot\\.daum\\.net/mypot/(?:View|Top)\\.(?:do|tv)\\?.*?ownerid=([0-9a-zA-Z]+))" + }, + "daystar": { + "name": "daystar", + "type": "free", + "domains": [ + "player.daystar.tv" + ], + "regexps": [ + "https?://player\\.daystar\\.tv/(\\w+)" + ], + "regexp": "https?://player\\.daystar\\.tv/(\\w+)" + }, + "dbtv": { + "name": "dbtv", + "type": "free", + "domains": [ + "dagbladet.no" + ], + "regexps": [ + "https?://(?:www\\.)?dagbladet\\.no/video/(?:(?:embed|([^/]+))/)?([0-9A-Za-z_-]{11}|[a-zA-Z0-9]{8})" + ], + "regexp": "https?://(?:www\\.)?dagbladet\\.no/video/(?:(?:embed|([^/]+))/)?([0-9A-Za-z_-]{11}|[a-zA-Z0-9]{8})" + }, + "dctptv": { + "name": "dctptv", + "type": "free", + "domains": [ + "dctp.tv" + ], + "regexps": [ + "https?://(?:www\\.)?dctp\\.tv/(?:#/)?filme/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?dctp\\.tv/(?:#/)?filme/([^/?#&]+)" + }, + "democracynow": { + "name": "democracynow", + "type": "free", + "domains": [ + "democracynow.org" + ], + "regexps": [ + "https?://(?:www\\.)?democracynow\\.org/([^\\?]*)" + ], + "regexp": "https?://(?:www\\.)?democracynow\\.org/([^\\?]*)" + }, + "destinationamerica": { + "name": "destinationamerica", + "type": "free", + "domains": [ + "destinationamerica.com" + ], + "regexps": [ + "https?://(?:www\\.)?destinationamerica\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?destinationamerica\\.com/video/([^/]+/[^/?#]+)" + }, + "deuxm": { + "name": "deuxm", + "type": "free", + "domains": [ + "2m.ma" + ], + "regexps": [ + "https?://(?:www\\.)?2m\\.ma/[^/]+/replay/single/(([\\w.]{1,24})+)" + ], + "regexp": "https?://(?:www\\.)?2m\\.ma/[^/]+/replay/single/(([\\w.]{1,24})+)" + }, + "deuxmnews": { + "name": "deuxmnews", + "type": "free", + "domains": [ + "2m.ma" + ], + "regexps": [ + "https?://(?:www\\.)?2m\\.ma/(\\w+)/news/([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?2m\\.ma/(\\w+)/news/([^/#?]+)" + }, + "dhm": { + "name": "dhm", + "type": "free", + "domains": [ + "dhm.de" + ], + "regexps": [ + "https?://(?:www\\.)?dhm\\.de/filmarchiv/(?:[^/]+/)+([^/]+)" + ], + "regexp": "https?://(?:www\\.)?dhm\\.de/filmarchiv/(?:[^/]+/)+([^/]+)" + }, + "digitalconcerthall": { + "name": "digitalconcerthall", + "type": "free", + "domains": [ + "digitalconcerthall.com" + ], + "regexps": [ + "https?://(?:www\\.)?digitalconcerthall\\.com/([a-z]+)/(film|concert|work)/([0-9]+)-?([0-9]+)?" + ], + "regexp": "https?://(?:www\\.)?digitalconcerthall\\.com/([a-z]+)/(film|concert|work)/([0-9]+)-?([0-9]+)?" + }, + "digitallyspeaking": { + "name": "digitallyspeaking", + "type": "free", + "domains": [ + "evt.dispeak.com", + "events.digitallyspeaking.com", + "sevt.dispeak.com" + ], + "regexps": [ + "https?://(?:s?evt\\.dispeak|events\\.digitallyspeaking)\\.com/(?:[^/]+/)+xml/([^.]+)\\.xml" + ], + "regexp": "https?://(?:s?evt\\.dispeak|events\\.digitallyspeaking)\\.com/(?:[^/]+/)+xml/([^.]+)\\.xml" + }, + "digiteka": { + "name": "digiteka", + "type": "free", + "domains": [ + "ultimedia.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:digiteka\\.net|ultimedia\\.com)/(?:deliver/(generic|musique)(?:/[^/]+)*/(?:src|article)|default/index/video(generic|music)/id)/([\\d+a-z]+)" + ], + "regexp": "https?://(?:www\\.)?(?:digiteka\\.net|ultimedia\\.com)/(?:deliver/(generic|musique)(?:/[^/]+)*/(?:src|article)|default/index/video(generic|music)/id)/([\\d+a-z]+)" + }, + "digiview": { + "name": "digiview", + "type": "free", + "domains": [ + "ladigitale.dev" + ], + "regexps": [ + "https?://(?:www\\.)?ladigitale\\.dev/digiview/#/v/([0-9a-f]+)" + ], + "regexp": "https?://(?:www\\.)?ladigitale\\.dev/digiview/#/v/([0-9a-f]+)" + }, + "discogsreleaseplaylist": { + "name": "discogsreleaseplaylist", + "type": "free", + "domains": [ + "discogs.com" + ], + "regexps": [ + "https?://(?:www\\.)?discogs\\.com/(release|master)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?discogs\\.com/(release|master)/(\\d+)" + }, + "discoverylife": { + "name": "discoverylife", + "type": "free", + "domains": [ + "discoverylife.com" + ], + "regexps": [ + "https?://(?:www\\.)?discoverylife\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?discoverylife\\.com/video/([^/]+/[^/?#]+)" + }, + "discoverynetworksde": { + "name": "discoverynetworksde", + "type": "free", + "domains": [ + "dmax.de", + "tlc.de" + ], + "regexps": [ + "https?://(?:www\\.)?((?:tlc|dmax)\\.de)/(?:programme|show|sendungen)/([^/?#]+)/(?:video/)?([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?((?:tlc|dmax)\\.de)/(?:programme|show|sendungen)/([^/?#]+)/(?:video/)?([^/?#]+)" + }, + "discoveryplus": { + "name": "discoveryplus", + "type": "free", + "domains": [ + "discoveryplus.com" + ], + "regexps": [ + "https?://(?:www\\.)?discoveryplus\\.com/(?!it/)(?:([a-z]{2})/)?video(?:/sport|/olympics)?/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?discoveryplus\\.com/(?!it/)(?:([a-z]{2})/)?video(?:/sport|/olympics)?/([^/]+/[^/?#]+)" + }, + "discoveryplusindia": { + "name": "discoveryplusindia", + "type": "free", + "domains": [ + "discoveryplus.in" + ], + "regexps": [ + "https?://(?:www\\.)?discoveryplus\\.in/videos?/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?discoveryplus\\.in/videos?/([^/]+/[^/?#]+)" + }, + "discoveryplusindiashow": { + "name": "discoveryplusindiashow", + "type": "free", + "domains": [ + "discoveryplus.in" + ], + "regexps": [ + "https?://(?:www\\.)?discoveryplus\\.in/show/([^/]+)/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?discoveryplus\\.in/show/([^/]+)/?(?:[?#]|$)" + }, + "discoveryplusitaly": { + "name": "discoveryplusitaly", + "type": "free", + "domains": [ + "discoveryplus.com" + ], + "regexps": [ + "https?://(?:www\\.)?discoveryplus\\.com/it/video(?:/sport|/olympics)?/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?discoveryplus\\.com/it/video(?:/sport|/olympics)?/([^/]+/[^/?#]+)" + }, + "discoveryplusitalyshow": { + "name": "discoveryplusitalyshow", + "type": "free", + "domains": [ + "discoveryplus.it" + ], + "regexps": [ + "https?://(?:www\\.)?discoveryplus\\.it/programmi/([^/]+)/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?discoveryplus\\.it/programmi/([^/]+)/?(?:[?#]|$)" + }, + "disney": { + "name": "disney", + "type": "free", + "domains": [ + "video.disney.com", + "starwars.com", + "videos.disneylatino.com", + "video.en.disneyme.com", + "video.disneyturkiye.com.tr", + "disneyjunior.disney.com", + "spiderman.marvelkids.com", + "disneyjunior.en.disneyme.com", + "disneychannel.de" + ], + "regexps": [ + "https?://((?:[^/]+\\.)?(?:disney\\.[a-z]{2,3}(?:\\.[a-z]{2})?|disney(?:(?:me|latino)\\.com|turkiye\\.com\\.tr|channel\\.de)|(?:starwars|marvelkids)\\.com))/(?:(?:embed/|(?:[^/]+/)+[\\w-]+-)([a-z0-9]{24})|(?:[^/]+/)?([^/?#]+))" + ], + "regexp": "https?://((?:[^/]+\\.)?(?:disney\\.[a-z]{2,3}(?:\\.[a-z]{2})?|disney(?:(?:me|latino)\\.com|turkiye\\.com\\.tr|channel\\.de)|(?:starwars|marvelkids)\\.com))/(?:(?:embed/|(?:[^/]+/)+[\\w-]+-)([a-z0-9]{24})|(?:[^/]+/)?([^/?#]+))" + }, + "dlf": { + "name": "dlf", + "type": "free", + "domains": [ + "deutschlandfunk.de" + ], + "regexps": [ + "https?://(?:www\\.)?deutschlandfunk\\.de/((?![\\w-]+-dlf-[\\da-f]{8})[\\w-]+-\\d+)\\.html", + "https?://(?:www\\.)?deutschlandfunk\\.de/[\\w-]+-dlf-([\\da-f]{8})-100\\.html" + ], + "regexp": "(https?://(?:www\\.)?deutschlandfunk\\.de/((?![\\w-]+-dlf-[\\da-f]{8})[\\w-]+-\\d+)\\.html)|(https?://(?:www\\.)?deutschlandfunk\\.de/[\\w-]+-dlf-([\\da-f]{8})-100\\.html)" + }, + "dlive": { + "name": "dlive", + "type": "free", + "domains": [ + "dlive.tv" + ], + "regexps": [ + "https?://(?:www\\.)?dlive\\.tv/(?!p/)([\\w.-]+)", + "https?://(?:www\\.)?dlive\\.tv/p/(.+?)\\+([^/?#&]+)" + ], + "regexp": "(https?://(?:www\\.)?dlive\\.tv/(?!p/)([\\w.-]+))|(https?://(?:www\\.)?dlive\\.tv/p/(.+?)\\+([^/?#&]+))" + }, + "douyin": { + "name": "douyin", + "type": "free", + "domains": [ + "douyin.com" + ], + "regexps": [ + "https?://(?:www\\.)?douyin\\.com/video/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?douyin\\.com/video/([0-9]+)" + }, + "douyushow": { + "name": "douyushow", + "type": "free", + "domains": [ + "v.douyu.com", + "vmobile.douyu.com" + ], + "regexps": [ + "https?://v(?:mobile)?\\.douyu\\.com/show/([0-9a-zA-Z]+)" + ], + "regexp": "https?://v(?:mobile)?\\.douyu\\.com/show/([0-9a-zA-Z]+)" + }, + "douyutv": { + "name": "douyutv", + "type": "free", + "domains": [ + "douyu.com", + "douyutv.com" + ], + "regexps": [ + "https?://(?:www\\.)?douyu(?:tv)?\\.com/(topic/\\w+\\?rid=|(?:[^/]+/))*([A-Za-z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?douyu(?:tv)?\\.com/(topic/\\w+\\?rid=|(?:[^/]+/))*([A-Za-z0-9]+)" + }, + "dplay": { + "name": "dplay", + "type": "free", + "domains": [ + "dplay.se", + "dplay.dk", + "dplay.no", + "it.dplay.com", + "es.dplay.com", + "dplay.fi", + "dplay.jp", + "discoveryplus.se", + "discoveryplus.dk", + "discoveryplus.no", + "discoveryplus.it", + "discoveryplus.es", + "discoveryplus.fi" + ], + "regexps": [ + "https?://((?:www\\.)?(d(?:play\\.(dk|fi|jp|se|no)|iscoveryplus\\.(dk|es|fi|it|se|no)))|(es|it)\\.dplay\\.com)/[^/]+/([^/]+/[^/?#]+)" + ], + "regexp": "https?://((?:www\\.)?(d(?:play\\.(dk|fi|jp|se|no)|iscoveryplus\\.(dk|es|fi|it|se|no)))|(es|it)\\.dplay\\.com)/[^/]+/([^/]+/[^/?#]+)" + }, + "drbonanza": { + "name": "drbonanza", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?dr\\.dk/bonanza/[^/]+/\\d+/[^/]+/(\\d+)/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?dr\\.dk/bonanza/[^/]+/\\d+/[^/]+/(\\d+)/([^/?#&]+)" + }, + "drooble": { + "name": "drooble", + "type": "free", + "domains": [ + "drooble.com" + ], + "regexps": [ + "https?://drooble\\.com/(?:(?:([^/]+)/)?(song|videos|music/albums)/(\\d+)|([^/]+)/(videos|music))" + ], + "regexp": "https?://drooble\\.com/(?:(?:([^/]+)/)?(song|videos|music/albums)/(\\d+)|([^/]+)/(videos|music))" + }, + "dropbox": { + "name": "dropbox", + "type": "free", + "domains": [ + "dropbox.com" + ], + "regexps": [ + "https?://(?:www\\.)?dropbox\\.com/(?:(?:e/)?scl/fi|sh?)/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?dropbox\\.com/(?:(?:e/)?scl/fi|sh?)/(\\w+)" + }, + "dropout": { + "name": "dropout", + "type": "free", + "domains": [ + "watch.dropout.tv" + ], + "regexps": [ + "https?://(?:watch\\.)?dropout\\.tv/(?:[^/?#]+/)*videos/([^/?#]+)/?(?:[?#]|$)" + ], + "regexp": "https?://(?:watch\\.)?dropout\\.tv/(?:[^/?#]+/)*videos/([^/?#]+)/?(?:[?#]|$)" + }, + "dropoutseason": { + "name": "dropoutseason", + "type": "free", + "domains": [ + "watch.dropout.tv" + ], + "regexps": [ + "https?://(?:watch\\.)?dropout\\.tv/([^\\/$&?#]+)(?:/?$|/season:([0-9]+)/?$)" + ], + "regexp": "https?://(?:watch\\.)?dropout\\.tv/([^\\/$&?#]+)(?:/?$|/season:([0-9]+)/?$)" + }, + "drtalks": { + "name": "drtalks", + "type": "free", + "domains": [ + "drtalks.com" + ], + "regexps": [ + "https?://(?:www\\.)?drtalks\\.com/videos/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?drtalks\\.com/videos/([\\w-]+)" + }, + "drtuber": { + "name": "drtuber", + "type": "free", + "domains": [ + "drtuber.com", + "m.drtuber.com" + ], + "regexps": [ + "https?://(?:(?:www|m)\\.)?drtuber\\.com/(?:video|embed)/(\\d+)(?:/([\\w-]+))?" + ], + "regexp": "https?://(?:(?:www|m)\\.)?drtuber\\.com/(?:video|embed)/(\\d+)(?:/([\\w-]+))?" + }, + "drtv": { + "name": "drtv", + "type": "free", + "domains": [ + "dr.dk", + "dr-massive.com" + ], + "regexps": [ + "https?://(?:(?:www\\.)?dr\\.dk/tv/se(?:/ondemand)?/(?:[^/?#]+/)*|(?:www\\.)?(?:dr\\.dk|dr-massive\\.com)/drtv/(?:se|episode|program)/)([\\da-z_-]+)", + "https?://(?:www\\.)?dr\\.dk/(?:tv|TV)/live/([\\da-z-]+)", + "https?://(?:www\\.)?(?:dr\\.dk|dr-massive\\.com)/drtv/saeson/([\\w-]+)_(\\d+)", + "https?://(?:www\\.)?(?:dr\\.dk|dr-massive\\.com)/drtv/serie/([\\w-]+)_(\\d+)" + ], + "regexp": "(https?://(?:(?:www\\.)?dr\\.dk/tv/se(?:/ondemand)?/(?:[^/?#]+/)*|(?:www\\.)?(?:dr\\.dk|dr-massive\\.com)/drtv/(?:se|episode|program)/)([\\da-z_-]+))|(https?://(?:www\\.)?dr\\.dk/(?:tv|TV)/live/([\\da-z-]+))|(https?://(?:www\\.)?(?:dr\\.dk|dr-massive\\.com)/drtv/saeson/([\\w-]+)_(\\d+))|(https?://(?:www\\.)?(?:dr\\.dk|dr-massive\\.com)/drtv/serie/([\\w-]+)_(\\d+))" + }, + "dtube": { + "name": "dtube", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?d\\.tube/(?:#!/)?v/([0-9a-z.-]+)/([0-9a-z]{8})" + ], + "regexp": "https?://(?:www\\.)?d\\.tube/(?:#!/)?v/([0-9a-z.-]+)/([0-9a-z]{8})" + }, + "duboku": { + "name": "duboku", + "type": "free", + "domains": [ + "w.duboku.io" + ], + "regexps": [ + "(?:https?://[^/]+\\.duboku\\.io/vodplay/)([0-9]+-[0-9-]+)\\.html.*", + "(?:https?://[^/]+\\.duboku\\.io/voddetail/)([0-9]+)\\.html.*" + ], + "regexp": "((?:https?://[^/]+\\.duboku\\.io/vodplay/)([0-9]+-[0-9-]+)\\.html.*)|((?:https?://[^/]+\\.duboku\\.io/voddetail/)([0-9]+)\\.html.*)" + }, + "dumpert": { + "name": "dumpert", + "type": "free", + "domains": [ + "dumpert.nl", + "legacy.dumpert.nl" + ], + "regexps": [ + "(https?)://(?:(?:www|legacy)\\.)?dumpert\\.nl/(?:(?:mediabase|embed|item)/|[^#]*[?&]selectedId=)([0-9]+[/_][0-9a-zA-Z]+)" + ], + "regexp": "(https?)://(?:(?:www|legacy)\\.)?dumpert\\.nl/(?:(?:mediabase|embed|item)/|[^#]*[?&]selectedId=)([0-9]+[/_][0-9a-zA-Z]+)" + }, + "duoplay": { + "name": "duoplay", + "type": "free", + "domains": [ + "duoplay.ee" + ], + "regexps": [ + "https?://duoplay\\.ee/(\\d+)(?:[/?#]|$)" + ], + "regexp": "https?://duoplay\\.ee/(\\d+)(?:[/?#]|$)" + }, + "dvtv": { + "name": "dvtv", + "type": "free", + "domains": [ + "video.aktualne.cz" + ], + "regexps": [ + "https?://video\\.aktualne\\.cz/(?:[^/]+/)+r~([0-9a-f]{32})" + ], + "regexp": "https?://video\\.aktualne\\.cz/(?:[^/]+/)+r~([0-9a-f]{32})" + }, + "dw": { + "name": "dw", + "type": "free", + "domains": [ + "dw.com" + ], + "regexps": [ + "https?://(?:www\\.)?dw\\.com/(?:[^/]+/)+a-(\\d+)", + "https?://(?:www\\.)?dw\\.com/(?:[^/]+/)+(?:av|e)-(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?dw\\.com/(?:[^/]+/)+a-(\\d+))|(https?://(?:www\\.)?dw\\.com/(?:[^/]+/)+(?:av|e)-(\\d+))" + }, + "dzen.ru": { + "name": "dzen.ru", + "type": "free", + "domains": [ + "zen.yandex.ru", + "dzen.ru" + ], + "regexps": [ + "https?://(zen\\.yandex|dzen)\\.ru/(?!media|video)(?:id/)?([a-z0-9-_]+)", + "https?://(zen\\.yandex|dzen)\\.ru(?:/video)?/(media|watch)/(?:(?:id/[^/]+/|[^/]+/)(?:[a-z0-9-]+)-)?([a-z0-9-]+)" + ], + "regexp": "(https?://(zen\\.yandex|dzen)\\.ru/(?!media|video)(?:id/)?([a-z0-9-_]+))|(https?://(zen\\.yandex|dzen)\\.ru(?:/video)?/(media|watch)/(?:(?:id/[^/]+/|[^/]+/)(?:[a-z0-9-]+)-)?([a-z0-9-]+))" + }, + "ebaumsworld": { + "name": "ebaumsworld", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?ebaumsworld\\.com/videos/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?ebaumsworld\\.com/videos/[^/]+/(\\d+)" + }, + "ebay": { + "name": "ebay", + "type": "free", + "domains": [ + "ebay.com" + ], + "regexps": [ + "https?://(?:www\\.)?ebay\\.com/itm/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?ebay\\.com/itm/(\\d+)" + }, + "egghead": { + "name": "egghead", + "type": "free", + "domains": [ + "egghead.io", + "app.egghead.io" + ], + "regexps": [ + "https?://(?:app\\.)?egghead\\.io/(?:course|playlist)s/([^/?#&]+)", + "https?://(?:app\\.)?egghead\\.io/(?:api/v1/)?lessons/([^/?#&]+)" + ], + "regexp": "(https?://(?:app\\.)?egghead\\.io/(?:course|playlist)s/([^/?#&]+))|(https?://(?:app\\.)?egghead\\.io/(?:api/v1/)?lessons/([^/?#&]+))" + }, + "eggs": { + "name": "eggs", + "type": "free", + "domains": [ + "eggs.mu" + ], + "regexps": [ + "https?://eggs\\.mu/artist/(\\w+)/?(?:[?#&]|$)", + "https?://eggs\\.mu/artist/[^/?#]+/song/([\\da-f-]+)" + ], + "regexp": "(https?://eggs\\.mu/artist/(\\w+)/?(?:[?#&]|$))|(https?://eggs\\.mu/artist/[^/?#]+/song/([\\da-f-]+))" + }, + "einsundeinstv": { + "name": "einsundeinstv", + "type": "free", + "domains": [ + "1und1.tv" + ], + "regexps": [ + "https?://(?:www\\.)?1und1\\.tv/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?1und1\\.tv/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "einsundeinstvlive": { + "name": "einsundeinstvlive", + "type": "free", + "domains": [ + "1und1.tv" + ], + "regexps": [ + "https?://(?:www\\.)?1und1\\.tv/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?1und1\\.tv/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "einsundeinstvrecordings": { + "name": "einsundeinstvrecordings", + "type": "free", + "domains": [ + "1und1.tv" + ], + "regexps": [ + "https?://(?:www\\.)?1und1\\.tv/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?1und1\\.tv/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "eitb.tv": { + "name": "eitb.tv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?eitb\\.tv/(?:eu/bideoa|es/video)/[^/]+/\\d+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?eitb\\.tv/(?:eu/bideoa|es/video)/[^/]+/\\d+/(\\d+)" + }, + "elonet": { + "name": "elonet", + "type": "free", + "domains": [ + "elonet.finna.fi" + ], + "regexps": [ + "https?://elonet\\.finna\\.fi/Record/kavi\\.elonet_elokuva_([0-9]+)" + ], + "regexp": "https?://elonet\\.finna\\.fi/Record/kavi\\.elonet_elokuva_([0-9]+)" + }, + "elpais": { + "name": "elpais", + "type": "free", + "domains": [ + "blogs.elpais.com", + "elcomidista.elpais.com", + "elpais.com", + "epv.elpais.com" + ], + "regexps": [ + "https?://(?:[^.]+\\.)?elpais\\.com/.*/([^/#?]+)\\.html(?:$|[?#])" + ], + "regexp": "https?://(?:[^.]+\\.)?elpais\\.com/.*/([^/#?]+)\\.html(?:$|[?#])" + }, + "eltrecetv": { + "name": "eltrecetv", + "type": "free", + "domains": [ + "eltrecetv.com.ar" + ], + "regexps": [ + "https?://(?:www\\.)?eltrecetv\\.com\\.ar/[\\w-]+/capitulos/temporada-\\d+/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?eltrecetv\\.com\\.ar/[\\w-]+/capitulos/temporada-\\d+/([\\w-]+)" + }, + "embedly": { + "name": "embedly", + "type": "free", + "domains": [ + "cdn.embedly.com" + ], + "regexps": [ + "https?://(?:www|cdn\\.)?embedly\\.com/widgets/media\\.html\\?(?:[^#]*?&)?(?:src|url)=(?:[^#&]+)" + ], + "regexp": "https?://(?:www|cdn\\.)?embedly\\.com/widgets/media\\.html\\?(?:[^#]*?&)?(?:src|url)=(?:[^#&]+)" + }, + "empflix": { + "name": "empflix", + "type": "free", + "domains": [ + "empflix.com" + ], + "regexps": [ + "https?://(?:www\\.)?(empflix)\\.com/(?:videos/(.+?)-|[^/]+/([^/]+)/video)([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?(empflix)\\.com/(?:videos/(.+?)-|[^/]+/([^/]+)/video)([0-9]+)" + }, + "epicon": { + "name": "epicon", + "type": "free", + "domains": [ + "epicon.in" + ], + "regexps": [ + "https?://(?:www\\.)?epicon\\.in/(?:documentaries|movies|tv-shows/[^/?#]+/[^/?#]+)/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?epicon\\.in/(?:documentaries|movies|tv-shows/[^/?#]+/[^/?#]+)/([^/?#]+)" + }, + "epiconseries": { + "name": "epiconseries", + "type": "free", + "domains": [ + "epicon.in" + ], + "regexps": [ + "(?!.*season)https?://(?:www\\.)?epicon\\.in/tv-shows/([^/?#]+)" + ], + "regexp": "(?!.*season)https?://(?:www\\.)?epicon\\.in/tv-shows/([^/?#]+)" + }, + "epidemicsound": { + "name": "epidemicsound", + "type": "free", + "domains": [ + "epidemicsound.com" + ], + "regexps": [ + "https?://(?:www\\.)?epidemicsound\\.com/(?:(sound-effects/tracks)|track)/([0-9a-zA-Z-]+)" + ], + "regexp": "https?://(?:www\\.)?epidemicsound\\.com/(?:(sound-effects/tracks)|track)/([0-9a-zA-Z-]+)" + }, + "eplus": { + "name": "eplus", + "type": "free", + "domains": [ + "live.eplus.jp" + ], + "regexps": [ + "https?://live\\.eplus\\.jp/ex/player\\?ib=((?:\\w|%2B|%2F){86}%3D%3D)", + "https?://live\\.eplus\\.jp/(sample|\\d+)" + ], + "regexp": "(https?://live\\.eplus\\.jp/ex/player\\?ib=((?:\\w|%2B|%2F){86}%3D%3D))|(https?://live\\.eplus\\.jp/(sample|\\d+))" + }, + "epoch": { + "name": "epoch", + "type": "free", + "domains": [ + "theepochtimes.com" + ], + "regexps": [ + "https?://www.theepochtimes\\.com/[\\w-]+_(\\d+).html" + ], + "regexp": "https?://www.theepochtimes\\.com/[\\w-]+_(\\d+).html" + }, + "eporner": { + "name": "eporner", + "type": "free", + "domains": [ + "eporner.com" + ], + "regexps": [ + "https?://(?:www\\.)?eporner\\.com/(?:(?:hd-porn|embed)/|video-)(\\w+)(?:/([\\w-]+))?" + ], + "regexp": "https?://(?:www\\.)?eporner\\.com/(?:(?:hd-porn|embed)/|video-)(\\w+)(?:/([\\w-]+))?" + }, + "erocast": { + "name": "erocast", + "type": "free", + "domains": [ + "erocast.me" + ], + "regexps": [ + "https?://(?:www\\.)?erocast\\.me/track/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?erocast\\.me/track/([0-9]+)" + }, + "eroprofile": { + "name": "eroprofile", + "type": "free", + "domains": [ + "eroprofile.com" + ], + "regexps": [ + "https?://(?:www\\.)?eroprofile\\.com/m/videos/album/([^/]+)", + "https?://(?:www\\.)?eroprofile\\.com/m/videos/view/([^/]+)" + ], + "regexp": "(https?://(?:www\\.)?eroprofile\\.com/m/videos/album/([^/]+))|(https?://(?:www\\.)?eroprofile\\.com/m/videos/view/([^/]+))" + }, + "errjupiter": { + "name": "errjupiter", + "type": "free", + "domains": [ + "jupiter.err.ee", + "jupiterpluss.err.ee", + "lasteekraan.err.ee" + ], + "regexps": [ + "https?://(?:jupiter(?:pluss)?|lasteekraan)\\.err\\.ee/(\\d+)" + ], + "regexp": "https?://(?:jupiter(?:pluss)?|lasteekraan)\\.err\\.ee/(\\d+)" + }, + "ertflix": { + "name": "ertflix", + "type": "free", + "domains": [ + "ertflix.gr" + ], + "regexps": [ + "ertflix:([\\w-]+)", + "https?://www\\.ertflix\\.gr/(?:[^/]+/)?(?:series|vod)/([a-z]{3}\\.\\d+)" + ], + "regexp": "(ertflix:([\\w-]+))|(https?://www\\.ertflix\\.gr/(?:[^/]+/)?(?:series|vod)/([a-z]{3}\\.\\d+))" + }, + "ertwebtv": { + "name": "ertwebtv", + "type": "free", + "domains": [ + "ert.gr" + ], + "regexps": [ + "https?://www\\.ert\\.gr/webtv/live\\-uni/vod/dt\\-uni\\-vod\\.php\\?([^#]+&)?f=([^#&]+)" + ], + "regexp": "https?://www\\.ert\\.gr/webtv/live\\-uni/vod/dt\\-uni\\-vod\\.php\\?([^#]+&)?f=([^#&]+)" + }, + "espn": { + "name": "espn", + "type": "free", + "domains": [ + "espn.go.com", + "broadband.espn.go.com", + "nonredline.sports.espn.go.com", + "cdn.espn.go.com", + "espn.com", + "espnfc.us", + "espnfc.com" + ], + "regexps": [ + "https?://(?:(?:(?:(?:(?:\\w+\\.)+)?espn\\.go|(?:www\\.)?espn)\\.com/(?:(?:video/(?:clip|iframe/twitter)|)(?:.*?\\?.*?\\bid=|/_/id/)|[^/]+/video/))|(?:www\\.)espnfc\\.(?:com|us)/(?:video/)?[^/]+/\\d+/video/)(\\d+)" + ], + "regexp": "https?://(?:(?:(?:(?:(?:\\w+\\.)+)?espn\\.go|(?:www\\.)?espn)\\.com/(?:(?:video/(?:clip|iframe/twitter)|)(?:.*?\\?.*?\\bid=|/_/id/)|[^/]+/video/))|(?:www\\.)espnfc\\.(?:com|us)/(?:video/)?[^/]+/\\d+/video/)(\\d+)" + }, + "espnarticle": { + "name": "espnarticle", + "type": "free", + "domains": [ + "espn.go.com" + ], + "regexps": [ + "https?://(?:espn\\.go|(?:www\\.)?espn)\\.com/(?:[^/]+/)*([^/]+)" + ], + "regexp": "https?://(?:espn\\.go|(?:www\\.)?espn)\\.com/(?:[^/]+/)*([^/]+)" + }, + "espncricinfo": { + "name": "espncricinfo", + "type": "free", + "domains": [ + "espncricinfo.com" + ], + "regexps": [ + "https?://(?:www\\.)?espncricinfo\\.com/(?:cricket-)?videos?/[^#$&?/]+-(\\d+)" + ], + "regexp": "https?://(?:www\\.)?espncricinfo\\.com/(?:cricket-)?videos?/[^#$&?/]+-(\\d+)" + }, + "ettutv": { + "name": "ettutv", + "type": "free", + "domains": [ + "ettu.tv" + ], + "regexps": [ + "https?://(?:www\\.)?ettu\\.tv/[^?#]+/playerpage/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?ettu\\.tv/[^?#]+/playerpage/([0-9]+)" + }, + "europa": { + "name": "europa", + "type": "free", + "domains": [ + "ec.europa.eu" + ], + "regexps": [ + "https?://ec\\.europa\\.eu/avservices/(?:video/player|audio/audioDetails)\\.cfm\\?.*?\\bref=([A-Za-z0-9-]+)" + ], + "regexp": "https?://ec\\.europa\\.eu/avservices/(?:video/player|audio/audioDetails)\\.cfm\\?.*?\\bref=([A-Za-z0-9-]+)" + }, + "europarlwebstream": { + "name": "europarlwebstream", + "type": "free", + "domains": [ + "multimedia.europarl.europa.eu" + ], + "regexps": [ + "https?://multimedia\\.europarl\\.europa\\.eu/(?:\\w+/)?webstreaming/(?:[\\w-]+_)?([\\w-]+)" + ], + "regexp": "https?://multimedia\\.europarl\\.europa\\.eu/(?:\\w+/)?webstreaming/(?:[\\w-]+_)?([\\w-]+)" + }, + "europeantour": { + "name": "europeantour", + "type": "free", + "domains": [ + "europeantour.com" + ], + "regexps": [ + "https?://(?:www\\.)?europeantour\\.com/dpworld-tour/news/video/([^/&?#$]+)" + ], + "regexp": "https?://(?:www\\.)?europeantour\\.com/dpworld-tour/news/video/([^/&?#$]+)" + }, + "eurosport": { + "name": "eurosport", + "type": "free", + "domains": [ + "eurosport.com", + "eurosport.de", + "eurosport.dk", + "eurosport.nl", + "eurosport.es", + "eurosport.fr", + "eurosport.it", + "eurosport.hu", + "eurosport.no", + "eurosport.ro", + "eurosport.com.tr", + "eurosport.tvn24.pl" + ], + "regexps": [ + "https?://(?:(?:(?:www|espanol)\\.)?eurosport\\.(?:com(?:\\.tr)?|de|dk|es|fr|hu|it|nl|no|ro)|eurosport\\.tvn24\\.pl)/[\\w-]+/(?:[\\w-]+/[\\d-]+/)?[\\w.-]+_(vid\\d+)" + ], + "regexp": "https?://(?:(?:(?:www|espanol)\\.)?eurosport\\.(?:com(?:\\.tr)?|de|dk|es|fr|hu|it|nl|no|ro)|eurosport\\.tvn24\\.pl)/[\\w-]+/(?:[\\w-]+/[\\d-]+/)?[\\w.-]+_(vid\\d+)" + }, + "euscreen": { + "name": "euscreen", + "type": "free", + "domains": [ + "euscreen.eu" + ], + "regexps": [ + "https?://(?:www\\.)?euscreen\\.eu/item.html\\?id=([^&?$/]+)" + ], + "regexp": "https?://(?:www\\.)?euscreen\\.eu/item.html\\?id=([^&?$/]+)" + }, + "ewetv": { + "name": "ewetv", + "type": "free", + "domains": [ + "tvonline.ewe.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvonline\\.ewe\\.de/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?tvonline\\.ewe\\.de/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "ewetvlive": { + "name": "ewetvlive", + "type": "free", + "domains": [ + "tvonline.ewe.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvonline\\.ewe\\.de/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?tvonline\\.ewe\\.de/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "ewetvrecordings": { + "name": "ewetvrecordings", + "type": "free", + "domains": [ + "tvonline.ewe.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvonline\\.ewe\\.de/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?tvonline\\.ewe\\.de/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "expressen": { + "name": "expressen", + "type": "free", + "domains": [ + "expressen.se", + "di.se" + ], + "regexps": [ + "https?://(?:www\\.)?(?:expressen|di)\\.se/(?:(?:tvspelare/video|video-?player/embed)/)?(?:tv|nyheter)/(?:[^/?#]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?(?:expressen|di)\\.se/(?:(?:tvspelare/video|video-?player/embed)/)?(?:tv|nyheter)/(?:[^/?#]+/)*([^/?#&]+)" + }, + "eyedotv": { + "name": "eyedotv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?eyedo\\.tv/[^/]+/(?:#!/)?Live/Detail/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?eyedo\\.tv/[^/]+/(?:#!/)?Live/Detail/([0-9]+)" + }, + "facebook": { + "name": "facebook", + "type": "free", + "domains": [ + "facebook.com", + "es-la.facebook.com", + "m.facebook.com", + "zh-hk.facebook.com", + "facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion" + ], + "regexps": [ + "https?://(?:[\\w-]+\\.)?facebook\\.com/ads/library/?\\?(?:[^#]+&)?id=(\\d+)", + "(?:https?://(?:[\\w-]+\\.)?(?:facebook\\.com|facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd\\.onion)/(?:[^#]*?\\#!/)?(?:(?:permalink\\.php|video/video\\.php|photo\\.php|video\\.php|video/embed|story\\.php|watch(?:/live)?/?)\\?(?:.*?)(?:v|video_id|story_fbid)=|[^/]+/videos/(?:[^/]+/)?|[^/]+/posts/|events/(?:[^/]+/)?|groups/[^/]+/(?:permalink|posts)/(?:[\\da-f]+/)?|watchparty/)|facebook:)(pfbid[A-Za-z0-9]+|\\d+)", + "https?://(?:[\\w-]+\\.)?facebook\\.com/reel/(\\d+)" + ], + "regexp": "(https?://(?:[\\w-]+\\.)?facebook\\.com/ads/library/?\\?(?:[^#]+&)?id=(\\d+))|((?:https?://(?:[\\w-]+\\.)?(?:facebook\\.com|facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd\\.onion)/(?:[^#]*?\\#!/)?(?:(?:permalink\\.php|video/video\\.php|photo\\.php|video\\.php|video/embed|story\\.php|watch(?:/live)?/?)\\?(?:.*?)(?:v|video_id|story_fbid)=|[^/]+/videos/(?:[^/]+/)?|[^/]+/posts/|events/(?:[^/]+/)?|groups/[^/]+/(?:permalink|posts)/(?:[\\da-f]+/)?|watchparty/)|facebook:)(pfbid[A-Za-z0-9]+|\\d+))|(https?://(?:[\\w-]+\\.)?facebook\\.com/reel/(\\d+))" + }, + "facebookpluginsvideo": { + "name": "facebookpluginsvideo", + "type": "free", + "domains": [ + "facebook.com" + ], + "regexps": [ + "https?://(?:[\\w-]+\\.)?facebook\\.com/plugins/video\\.php\\?.*?\\bhref=(https.+)" + ], + "regexp": "https?://(?:[\\w-]+\\.)?facebook\\.com/plugins/video\\.php\\?.*?\\bhref=(https.+)" + }, + "fancode": { + "name": "fancode", + "type": "free", + "domains": [ + "fancode.com" + ], + "regexps": [ + "https?://(www\\.)?fancode\\.com/match/([0-9]+).+", + "https?://(?:www\\.)?fancode\\.com/video/([0-9]+)\\b" + ], + "regexp": "(https?://(www\\.)?fancode\\.com/match/([0-9]+).+)|(https?://(?:www\\.)?fancode\\.com/video/([0-9]+)\\b)" + }, + "fathom": { + "name": "fathom", + "type": "free", + "domains": [ + "fathom.video" + ], + "regexps": [ + "https?://(?:www\\.)?fathom\\.video/share/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?fathom\\.video/share/([^/?#&]+)" + }, + "faulio": { + "name": "faulio", + "type": "free", + "domains": [ + "aloula.sba.sa", + "bahry.com", + "maraya.sba.net.ae", + "sat7plus.org" + ], + "regexps": [ + "https?://(?:aloula\\.sba\\.sa|bahry\\.com|maraya\\.sba\\.net\\.ae|sat7plus\\.org)/(?:(?:ar|en|fa)/)?(?:episode|media)/([a-zA-Z0-9-]+)" + ], + "regexp": "https?://(?:aloula\\.sba\\.sa|bahry\\.com|maraya\\.sba\\.net\\.ae|sat7plus\\.org)/(?:(?:ar|en|fa)/)?(?:episode|media)/([a-zA-Z0-9-]+)" + }, + "fauliolive": { + "name": "fauliolive", + "type": "free", + "domains": [ + "aloula.sba.sa", + "bahry.com", + "maraya.sba.net.ae", + "sat7plus.org" + ], + "regexps": [ + "https?://(?:aloula\\.sba\\.sa|bahry\\.com|maraya\\.sba\\.net\\.ae|sat7plus\\.org)/(?:(?:ar|en|fa)/)?live/([a-zA-Z0-9-]+)" + ], + "regexp": "https?://(?:aloula\\.sba\\.sa|bahry\\.com|maraya\\.sba\\.net\\.ae|sat7plus\\.org)/(?:(?:ar|en|fa)/)?live/([a-zA-Z0-9-]+)" + }, + "faz.net": { + "name": "faz.net", + "type": "free", + "domains": [ + "faz.net" + ], + "regexps": [ + "https?://(?:www\\.)?faz\\.net/(?:[^/]+/)*.*?-(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?faz\\.net/(?:[^/]+/)*.*?-(\\d+)\\.html" + }, + "fc2": { + "name": "fc2", + "type": "free", + "domains": [ + "video.fc2.com", + "live.fc2.com" + ], + "regexps": [ + "https?://video\\.fc2\\.com/flv2\\.swf\\?(.+)", + "(?:https?://video\\.fc2\\.com/(?:[^/]+/)*content/|fc2:)([^/]+)", + "https?://live\\.fc2\\.com/(\\d+)" + ], + "regexp": "(https?://video\\.fc2\\.com/flv2\\.swf\\?(.+))|((?:https?://video\\.fc2\\.com/(?:[^/]+/)*content/|fc2:)([^/]+))|(https?://live\\.fc2\\.com/(\\d+))" + }, + "fczenit": { + "name": "fczenit", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?fc-zenit\\.ru/video/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?fc-zenit\\.ru/video/([0-9]+)" + }, + "fifa": { + "name": "fifa", + "type": "free", + "domains": [ + "fifa.com" + ], + "regexps": [ + "https?://www\\.fifa\\.com/fifaplus/\\w{2}/watch/([^#?]+/)?(\\w+)" + ], + "regexp": "https?://www\\.fifa\\.com/fifaplus/\\w{2}/watch/([^#?]+/)?(\\w+)" + }, + "filmon": { + "name": "filmon", + "type": "free", + "domains": [ + "filmon.com" + ], + "regexps": [ + "https?://(?:www\\.)?filmon\\.com/(?:tv|channel)/([a-z0-9-]+)", + "(?:https?://(?:www\\.)?filmon\\.com/vod/view/|filmon:)(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?filmon\\.com/(?:tv|channel)/([a-z0-9-]+))|((?:https?://(?:www\\.)?filmon\\.com/vod/view/|filmon:)(\\d+))" + }, + "filmweb": { + "name": "filmweb", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?filmweb\\.no/(trailere|filmnytt)/article(\\d+)\\.ece" + ], + "regexp": "https?://(?:www\\.)?filmweb\\.no/(trailere|filmnytt)/article(\\d+)\\.ece" + }, + "fivethirtyeight": { + "name": "fivethirtyeight", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?fivethirtyeight\\.com/features/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?fivethirtyeight\\.com/features/([^/?#]+)" + }, + "fivetv": { + "name": "fivetv", + "type": "free", + "domains": [ + "5-tv.ru" + ], + "regexps": [ + "https?://(?:www\\.)?5-tv\\.ru/(?:(?:[^/]+/)+(\\d+)|([^/?#]+)(?:[/?#])?)" + ], + "regexp": "https?://(?:www\\.)?5-tv\\.ru/(?:(?:[^/]+/)+(\\d+)|([^/?#]+)(?:[/?#])?)" + }, + "flickr": { + "name": "flickr", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.|secure\\.)?flickr\\.com/photos/[\\w\\-_@]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.|secure\\.)?flickr\\.com/photos/[\\w\\-_@]+/(\\d+)" + }, + "floatplane": { + "name": "floatplane", + "type": "free", + "domains": [ + "floatplane.com", + "beta.floatplane.com" + ], + "regexps": [ + "https?://(?:(?:www|beta)\\.)?floatplane\\.com/post/(\\w+)" + ], + "regexp": "https?://(?:(?:www|beta)\\.)?floatplane\\.com/post/(\\w+)" + }, + "floatplanechannel": { + "name": "floatplanechannel", + "type": "free", + "domains": [ + "floatplane.com", + "beta.floatplane.com" + ], + "regexps": [ + "https?://(?:(?:www|beta)\\.)?floatplane\\.com/channel/([\\w-]+)/home(?:/([\\w-]+))?" + ], + "regexp": "https?://(?:(?:www|beta)\\.)?floatplane\\.com/channel/([\\w-]+)/home(?:/([\\w-]+))?" + }, + "folketinget": { + "name": "folketinget", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?ft\\.dk/webtv/video/[^?#]*?\\.([0-9]+)\\.aspx" + ], + "regexp": "https?://(?:www\\.)?ft\\.dk/webtv/video/[^?#]*?\\.([0-9]+)\\.aspx" + }, + "foodnetwork": { + "name": "foodnetwork", + "type": "free", + "domains": [ + "watch.foodnetwork.com" + ], + "regexps": [ + "https?://(?:watch\\.)?foodnetwork\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:watch\\.)?foodnetwork\\.com/video/([^/]+/[^/?#]+)" + }, + "footyroom": { + "name": "footyroom", + "type": "free", + "domains": [ + "footyroom.com" + ], + "regexps": [ + "https?://footyroom\\.com/matches/(\\d+)" + ], + "regexp": "https?://footyroom\\.com/matches/(\\d+)" + }, + "formula1": { + "name": "formula1", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?formula1\\.com/en/latest/video\\.[^.]+\\.(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?formula1\\.com/en/latest/video\\.[^.]+\\.(\\d+)\\.html" + }, + "fox": { + "name": "fox", + "type": "free", + "domains": [ + "fox.com", + "foxsports.com" + ], + "regexps": [ + "https?://(?:www\\.)?fox(?:sports)?\\.com/(?:watch|replay)/([\\da-fA-F]+)" + ], + "regexp": "https?://(?:www\\.)?fox(?:sports)?\\.com/(?:watch|replay)/([\\da-fA-F]+)" + }, + "fox9": { + "name": "fox9", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?fox9\\.com/video/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?fox9\\.com/video/(\\d+)" + }, + "fox9news": { + "name": "fox9news", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?fox9\\.com/news/([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?fox9\\.com/news/([^/?&#]+)" + }, + "foxnews": { + "name": "foxnews", + "type": "free", + "domains": [ + "foxnews.com", + "insider.foxnews.com", + "video.foxnews.com", + "video.insider.foxnews.com", + "video.foxbusiness.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:insider\\.)?foxnews\\.com/(?!v)([^/]+/)+([a-z-]+)", + "https?://video\\.(?:insider\\.)?fox(?:news|business)\\.com/v/(?:video-embed\\.html\\?video_id=)?(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?(?:insider\\.)?foxnews\\.com/(?!v)([^/]+/)+([a-z-]+))|(https?://video\\.(?:insider\\.)?fox(?:news|business)\\.com/v/(?:video-embed\\.html\\?video_id=)?(\\d+))" + }, + "foxnewsvideo": { + "name": "foxnewsvideo", + "type": "free", + "domains": [ + "foxnews.com" + ], + "regexps": [ + "https?://(?:www\\.)?foxnews\\.com/video/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?foxnews\\.com/video/(\\d+)" + }, + "foxsports": { + "name": "foxsports", + "type": "free", + "domains": [ + "foxsports.com" + ], + "regexps": [ + "https?://(?:www\\.)?foxsports\\.com/watch/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?foxsports\\.com/watch/([\\w-]+)" + }, + "fptplay": { + "name": "fptplay", + "type": "free", + "domains": [ + "fptplay.vn" + ], + "regexps": [ + "https?://fptplay\\.vn/xem-video/[^/]+\\-(\\w+)(?:/tap-(\\d+)?/?(?:[?#]|$)|)" + ], + "regexp": "https?://fptplay\\.vn/xem-video/[^/]+\\-(\\w+)(?:/tap-(\\d+)?/?(?:[?#]|$)|)" + }, + "francaisfacile": { + "name": "francaisfacile", + "type": "free", + "domains": [ + "francaisfacile.rfi.fr" + ], + "regexps": [ + "https?://francaisfacile\\.rfi\\.fr/[a-z]{2}/(?:actualit%C3%A9|podcasts/[^/#?]+)/([^/#?]+)" + ], + "regexp": "https?://francaisfacile\\.rfi\\.fr/[a-z]{2}/(?:actualit%C3%A9|podcasts/[^/#?]+)/([^/#?]+)" + }, + "franceculture": { + "name": "franceculture", + "type": "free", + "domains": [ + "radiofrance.fr" + ], + "regexps": [ + "https?://(?:www\\.)?radiofrance\\.fr/(?:franceculture|franceinfo|franceinter|francemusique|fip|mouv)/podcasts/(?:[^?#]+/)?([^?#]+)-(\\d{6,})(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?radiofrance\\.fr/(?:franceculture|franceinfo|franceinter|francemusique|fip|mouv)/podcasts/(?:[^?#]+/)?([^?#]+)-(\\d{6,})(?:$|[?#])" + }, + "franceinter": { + "name": "franceinter", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?franceinter\\.fr/emissions/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?franceinter\\.fr/emissions/([^?#]+)" + }, + "francetv": { + "name": "francetv", + "type": "free", + "domains": [ + "france.tv", + "mobile.france.tv" + ], + "regexps": [ + "francetv:([^@#]+)", + "https?://(?:(?:www\\.)?france\\.tv|mobile\\.france\\.tv)/(?:[^/]+/)*([^/]+)\\.html" + ], + "regexp": "(francetv:([^@#]+))|(https?://(?:(?:www\\.)?france\\.tv|mobile\\.france\\.tv)/(?:[^/]+/)*([^/]+)\\.html)" + }, + "francetvinfo.fr": { + "name": "francetvinfo.fr", + "type": "free", + "domains": [ + "francetvinfo.fr", + "france3-regions.francetvinfo.fr" + ], + "regexps": [ + "https?://(?:www|mobile|france3-regions)\\.francetvinfo\\.fr/(?:[^/]+/)*([^/?#&.]+)" + ], + "regexp": "https?://(?:www|mobile|france3-regions)\\.francetvinfo\\.fr/(?:[^/]+/)*([^/?#&.]+)" + }, + "freesound": { + "name": "freesound", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?freesound\\.org/people/[^/]+/sounds/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?freesound\\.org/people/[^/]+/sounds/([^/]+)" + }, + "freespeech.org": { + "name": "freespeech.org", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?freespeech\\.org/stories/(.+)" + ], + "regexp": "https?://(?:www\\.)?freespeech\\.org/stories/(.+)" + }, + "freetv": { + "name": "freetv", + "type": "free", + "domains": [ + "freetv.com" + ], + "regexps": [ + "https?://(?:www\\.)?freetv\\.com/series/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?freetv\\.com/series/([^/]+)" + }, + "freetvmovies": { + "name": "freetvmovies", + "type": "free", + "domains": [ + "freetv.com" + ], + "regexps": [ + "https?://(?:www\\.)?freetv\\.com/peliculas/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?freetv\\.com/peliculas/([^/]+)" + }, + "frontendmasters": { + "name": "frontendmasters", + "type": "free", + "domains": [ + "api.frontendmasters.com" + ], + "regexps": [ + "(?:frontendmasters:|https?://api\\.frontendmasters\\.com/v\\d+/kabuki/video/)([^/]+)" + ], + "regexp": "(?:frontendmasters:|https?://api\\.frontendmasters\\.com/v\\d+/kabuki/video/)([^/]+)" + }, + "frontendmasterscourse": { + "name": "frontendmasterscourse", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?frontendmasters\\.com/courses/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?frontendmasters\\.com/courses/([^/]+)" + }, + "frontendmasterslesson": { + "name": "frontendmasterslesson", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?frontendmasters\\.com/courses/([^/]+)/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?frontendmasters\\.com/courses/([^/]+)/([^/]+)" + }, + "fujitvfodplus7": { + "name": "fujitvfodplus7", + "type": "free", + "domains": [ + "fod.fujitv.co.jp" + ], + "regexps": [ + "https?://fod\\.fujitv\\.co\\.jp/title/([0-9a-z]{4})/([0-9a-z]+)" + ], + "regexp": "https?://fod\\.fujitv\\.co\\.jp/title/([0-9a-z]{4})/([0-9a-z]+)" + }, + "funk": { + "name": "funk", + "type": "free", + "domains": [ + "funk.net", + "play.funk.net" + ], + "regexps": [ + "https?://(?:(?:www|origin|play)\\.)?funk\\.net/(?:channel|playlist)/[^/?#]+/([0-9a-z-]+)-(\\d+)" + ], + "regexp": "https?://(?:(?:www|origin|play)\\.)?funk\\.net/(?:channel|playlist)/[^/?#]+/([0-9a-z-]+)-(\\d+)" + }, + "funker530": { + "name": "funker530", + "type": "free", + "domains": [ + "funker530.com" + ], + "regexps": [ + "https?://(?:www\\.)?funker530\\.com/video/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?funker530\\.com/video/([^/?#]+)" + }, + "fux": { + "name": "fux", + "type": "free", + "domains": [ + "fux.com" + ], + "regexps": [ + "https?://(?:(www|m)\\.)?fux\\.com/(?:video|embed)/(\\d+)(?:/([^/?#&]+))?" + ], + "regexp": "https?://(?:(www|m)\\.)?fux\\.com/(?:video|embed)/(\\d+)(?:/([^/?#&]+))?" + }, + "fuyintv": { + "name": "fuyintv", + "type": "free", + "domains": [ + "fuyin.tv" + ], + "regexps": [ + "https?://(?:www\\.)?fuyin\\.tv/html/(?:\\d+)/(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?fuyin\\.tv/html/(?:\\d+)/(\\d+)\\.html" + }, + "gab": { + "name": "gab", + "type": "free", + "domains": [ + "gab.com" + ], + "regexps": [ + "https?://(?:www\\.)?gab\\.com/[^/]+/posts/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?gab\\.com/[^/]+/posts/(\\d+)" + }, + "gabtv": { + "name": "gabtv", + "type": "free", + "domains": [ + "tv.gab.com" + ], + "regexps": [ + "https?://tv\\.gab\\.com/channel/[^/]+/view/([a-z0-9-]+)" + ], + "regexp": "https?://tv\\.gab\\.com/channel/[^/]+/view/([a-z0-9-]+)" + }, + "gaia": { + "name": "gaia", + "type": "free", + "domains": [ + "gaia.com" + ], + "regexps": [ + "https?://(?:www\\.)?gaia\\.com/video/([^/?]+).*?\\bfullplayer=(feature|preview)" + ], + "regexp": "https?://(?:www\\.)?gaia\\.com/video/([^/?]+).*?\\bfullplayer=(feature|preview)" + }, + "gamedevtvdashboard": { + "name": "gamedevtvdashboard", + "type": "free", + "domains": [ + "gamedev.tv" + ], + "regexps": [ + "https?://(?:www\\.)?gamedev\\.tv/dashboard/courses/(\\d+)(?:/(\\d+))?" + ], + "regexp": "https?://(?:www\\.)?gamedev\\.tv/dashboard/courses/(\\d+)(?:/(\\d+))?" + }, + "gamejolt": { + "name": "gamejolt", + "type": "free", + "domains": [ + "gamejolt.com" + ], + "regexps": [ + "https?://(?:www\\.)?gamejolt\\.com/p/(?:[\\w-]*-)?(\\w{8})" + ], + "regexp": "https?://(?:www\\.)?gamejolt\\.com/p/(?:[\\w-]*-)?(\\w{8})" + }, + "gamejoltcommunity": { + "name": "gamejoltcommunity", + "type": "free", + "domains": [ + "gamejolt.com" + ], + "regexps": [ + "https?://(?:www\\.)?gamejolt\\.com/c/(([\\w-]+)(?:/([\\w-]+))?)(?:(?:\\?|\\#!?)(?:.*?[&;])??sort=(\\w+))?" + ], + "regexp": "https?://(?:www\\.)?gamejolt\\.com/c/(([\\w-]+)(?:/([\\w-]+))?)(?:(?:\\?|\\#!?)(?:.*?[&;])??sort=(\\w+))?" + }, + "gamejoltgame": { + "name": "gamejoltgame", + "type": "free", + "domains": [ + "gamejolt.com" + ], + "regexps": [ + "https?://(?:www\\.)?gamejolt\\.com/games/[\\w-]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?gamejolt\\.com/games/[\\w-]+/(\\d+)" + }, + "gamejoltgamesoundtrack": { + "name": "gamejoltgamesoundtrack", + "type": "free", + "domains": [ + "gamejolt.com" + ], + "regexps": [ + "https?://(?:www\\.)?gamejolt\\.com/get/soundtrack(?:\\?|\\#!?)(?:.*?[&;])??game=((?:\\d+)+)" + ], + "regexp": "https?://(?:www\\.)?gamejolt\\.com/get/soundtrack(?:\\?|\\#!?)(?:.*?[&;])??game=((?:\\d+)+)" + }, + "gamejoltsearch": { + "name": "gamejoltsearch", + "type": "free", + "domains": [ + "gamejolt.com" + ], + "regexps": [ + "https?://(?:www\\.)?gamejolt\\.com/search(?:/(communities|users|games))?(?:\\?|\\#!?)(?:.*?[&;])??q=((?:[^&#]+)+)" + ], + "regexp": "https?://(?:www\\.)?gamejolt\\.com/search(?:/(communities|users|games))?(?:\\?|\\#!?)(?:.*?[&;])??q=((?:[^&#]+)+)" + }, + "gamejoltuser": { + "name": "gamejoltuser", + "type": "free", + "domains": [ + "gamejolt.com" + ], + "regexps": [ + "https?://(?:www\\.)?gamejolt\\.com/@([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?gamejolt\\.com/@([\\w-]+)" + }, + "gamespot": { + "name": "gamespot", + "type": "free", + "domains": [ + "gamespot.com" + ], + "regexps": [ + "https?://(?:www\\.)?gamespot\\.com/(?:video|article|review)s/(?:[^/]+/\\d+-|embed/)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?gamespot\\.com/(?:video|article|review)s/(?:[^/]+/\\d+-|embed/)(\\d+)" + }, + "gamestar": { + "name": "gamestar", + "type": "free", + "domains": [ + "gamestar.de", + "gamepro.de" + ], + "regexps": [ + "https?://(?:www\\.)?game(pro|star)\\.de/videos/.*,([0-9]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?game(pro|star)\\.de/videos/.*,([0-9]+)\\.html" + }, + "gaskrank": { + "name": "gaskrank", + "type": "free", + "domains": [ + "gaskrank.tv" + ], + "regexps": [ + "https?://(?:www\\.)?gaskrank\\.tv/tv/([^/]+)/([^/]+)\\.htm" + ], + "regexp": "https?://(?:www\\.)?gaskrank\\.tv/tv/([^/]+)/([^/]+)\\.htm" + }, + "gazeta": { + "name": "gazeta", + "type": "free", + "domains": [ + "gazeta.ru" + ], + "regexps": [ + "(https?://(?:www\\.)?gazeta\\.ru/(?:[^/]+/)?video/(?:main/)*(?:\\d{4}/\\d{2}/\\d{2}/)?([A-Za-z0-9-_.]+)\\.s?html)" + ], + "regexp": "(https?://(?:www\\.)?gazeta\\.ru/(?:[^/]+/)?video/(?:main/)*(?:\\d{4}/\\d{2}/\\d{2}/)?([A-Za-z0-9-_.]+)\\.s?html)" + }, + "gbnews": { + "name": "gbnews", + "type": "free", + "domains": [ + "gbnews.com", + "gbnews.uk" + ], + "regexps": [ + "https?://(?:www\\.)?gbnews\\.(?:uk|com)/(?:\\w+/)?([^#?]+)" + ], + "regexp": "https?://(?:www\\.)?gbnews\\.(?:uk|com)/(?:\\w+/)?([^#?]+)" + }, + "gdcvault": { + "name": "gdcvault", + "type": "free", + "domains": [ + "gdcvault.com" + ], + "regexps": [ + "https?://(?:www\\.)?gdcvault\\.com/play/(\\d+)(?:/([\\w-]+))?" + ], + "regexp": "https?://(?:www\\.)?gdcvault\\.com/play/(\\d+)(?:/([\\w-]+))?" + }, + "gedidigital": { + "name": "gedidigital", + "type": "free", + "domains": [ + "video.lastampa.it", + "video.huffingtonpost.it", + "video.espresso.repubblica.it", + "video.repubblica.it", + "video.ilsecoloxix.it", + "video.iltirreno.gelocal.it", + "video.messaggeroveneto.gelocal.it", + "video.ilpiccolo.gelocal.it", + "video.gazzettadimantova.gelocal.it", + "video.mattinopadova.gelocal.it", + "video.laprovinciapavese.gelocal.it", + "video.tribunatreviso.gelocal.it", + "video.nuovavenezia.gelocal.it", + "video.gazzettadimodena.gelocal.it", + "video.lanuovaferrara.gelocal.it", + "video.corrierealpi.gelocal.it", + "video.lasentinella.gelocal.it" + ], + "regexps": [ + "(?x:((?:https?:)//video\\.\n (?:\n (?:\n (?:espresso\\.)?repubblica\n |lastampa\n |ilsecoloxix\n |huffingtonpost\n )|\n (?:\n iltirreno\n |messaggeroveneto\n |ilpiccolo\n |gazzettadimantova\n |mattinopadova\n |laprovinciapavese\n |tribunatreviso\n |nuovavenezia\n |gazzettadimodena\n |lanuovaferrara\n |corrierealpi\n |lasentinella\n )\\.gelocal\n )\\.it(?:/[^/]+){2,4}/(\\d+))(?:$|[?&].*))" + ], + "regexp": "(?x:((?:https?:)//video\\.\n (?:\n (?:\n (?:espresso\\.)?repubblica\n |lastampa\n |ilsecoloxix\n |huffingtonpost\n )|\n (?:\n iltirreno\n |messaggeroveneto\n |ilpiccolo\n |gazzettadimantova\n |mattinopadova\n |laprovinciapavese\n |tribunatreviso\n |nuovavenezia\n |gazzettadimodena\n |lanuovaferrara\n |corrierealpi\n |lasentinella\n )\\.gelocal\n )\\.it(?:/[^/]+){2,4}/(\\d+))(?:$|[?&].*))" + }, + "gem.cbc.ca": { + "name": "gem.cbc.ca", + "type": "free", + "domains": [ + "gem.cbc.ca" + ], + "regexps": [ + "https?://gem\\.cbc\\.ca/(?:media/)?([0-9a-z-]+/s([0-9]+)[a-z][0-9]+)", + "https?://gem\\.cbc\\.ca/live(?:-event)?/(\\d+)", + "https?://gem\\.cbc\\.ca/(?:media/)?(([0-9a-z-]+)/s([0-9]+))/?(?:[?#]|$)" + ], + "regexp": "(https?://gem\\.cbc\\.ca/(?:media/)?([0-9a-z-]+/s([0-9]+)[a-z][0-9]+))|(https?://gem\\.cbc\\.ca/live(?:-event)?/(\\d+))|(https?://gem\\.cbc\\.ca/(?:media/)?(([0-9a-z-]+)/s([0-9]+))/?(?:[?#]|$))" + }, + "genius": { + "name": "genius", + "type": "free", + "domains": [ + "genius.com" + ], + "regexps": [ + "https?://(?:www\\.)?genius\\.com/(?:videos|(a))/([^?/#]+)" + ], + "regexp": "https?://(?:www\\.)?genius\\.com/(?:videos|(a))/([^?/#]+)" + }, + "geniuslyrics": { + "name": "geniuslyrics", + "type": "free", + "domains": [ + "genius.com" + ], + "regexps": [ + "https?://(?:www\\.)?genius\\.com/([^?/#]+)-lyrics(?:[?/#]|$)" + ], + "regexp": "https?://(?:www\\.)?genius\\.com/([^?/#]+)-lyrics(?:[?/#]|$)" + }, + "germanupa": { + "name": "germanupa", + "type": "free", + "domains": [ + "germanupa.de" + ], + "regexps": [ + "https?://germanupa\\.de/mediathek/([\\w-]+)" + ], + "regexp": "https?://germanupa\\.de/mediathek/([\\w-]+)" + }, + "getcourseru": { + "name": "getcourseru", + "type": "free", + "domains": [ + "academymel.online", + "academymel.getcourse.ru", + "manibeauty.getcourse.ru", + "gaismasmandalas.getcourse.io" + ], + "regexps": [ + "https?://(?:(?!player02\\.)[^.]+\\.getcourse\\.(?:ru|io)|academymel\\.online|marafon\\.mani\\-beauty\\.com|on\\.psbook\\.ru)/(?!pl/|teach/)([^?#]+)", + "https?://(?:(?!player02\\.)[^.]+\\.getcourse\\.(?:ru|io)|academymel\\.online|marafon\\.mani\\-beauty\\.com|on\\.psbook\\.ru)/(?:pl/)?teach/control/lesson/view\\?(?:[^#]+&)?id=(\\d+)" + ], + "regexp": "(https?://(?:(?!player02\\.)[^.]+\\.getcourse\\.(?:ru|io)|academymel\\.online|marafon\\.mani\\-beauty\\.com|on\\.psbook\\.ru)/(?!pl/|teach/)([^?#]+))|(https?://(?:(?!player02\\.)[^.]+\\.getcourse\\.(?:ru|io)|academymel\\.online|marafon\\.mani\\-beauty\\.com|on\\.psbook\\.ru)/(?:pl/)?teach/control/lesson/view\\?(?:[^#]+&)?id=(\\d+))" + }, + "getcourseruplayer": { + "name": "getcourseruplayer", + "type": "free", + "domains": [ + "player02.getcourse.ru", + "cf-api-2.vhcdn.com" + ], + "regexps": [ + "https?://(?:player02\\.getcourse\\.ru|cf-api-2\\.vhcdn\\.com)/sign-player/?\\?(?:[^#]+&)?json=[^#&]+" + ], + "regexp": "https?://(?:player02\\.getcourse\\.ru|cf-api-2\\.vhcdn\\.com)/sign-player/?\\?(?:[^#]+&)?json=[^#&]+" + }, + "gettr": { + "name": "gettr", + "type": "free", + "domains": [ + "gettr.com" + ], + "regexps": [ + "https?://(www\\.)?gettr\\.com/post/([a-z0-9]+)" + ], + "regexp": "https?://(www\\.)?gettr\\.com/post/([a-z0-9]+)" + }, + "gettrstreaming": { + "name": "gettrstreaming", + "type": "free", + "domains": [ + "gettr.com" + ], + "regexps": [ + "https?://(www\\.)?gettr\\.com/streaming/([a-z0-9]+)" + ], + "regexp": "https?://(www\\.)?gettr\\.com/streaming/([a-z0-9]+)" + }, + "giantbomb": { + "name": "giantbomb", + "type": "free", + "domains": [ + "giantbomb.com" + ], + "regexps": [ + "https?://(?:www\\.)?giantbomb\\.com/(?:videos|shows)/([^/]+)/(\\d+-\\d+)" + ], + "regexp": "https?://(?:www\\.)?giantbomb\\.com/(?:videos|shows)/([^/]+)/(\\d+-\\d+)" + }, + "glattvisiontv": { + "name": "glattvisiontv", + "type": "free", + "domains": [ + "iptv.glattvision.ch" + ], + "regexps": [ + "https?://(?:www\\.)?iptv\\.glattvision\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?iptv\\.glattvision\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "glattvisiontvlive": { + "name": "glattvisiontvlive", + "type": "free", + "domains": [ + "iptv.glattvision.ch" + ], + "regexps": [ + "https?://(?:www\\.)?iptv\\.glattvision\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?iptv\\.glattvision\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "glattvisiontvrecordings": { + "name": "glattvisiontvrecordings", + "type": "free", + "domains": [ + "iptv.glattvision.ch" + ], + "regexps": [ + "https?://(?:www\\.)?iptv\\.glattvision\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?iptv\\.glattvision\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "glide": { + "name": "glide", + "type": "free", + "domains": [], + "regexps": [ + "https?://share\\.glide\\.me/([A-Za-z0-9\\-=_+]+)" + ], + "regexp": "https?://share\\.glide\\.me/([A-Za-z0-9\\-=_+]+)" + }, + "globalplayeraudio": { + "name": "globalplayeraudio", + "type": "free", + "domains": [ + "globalplayer.com" + ], + "regexps": [ + "https?://www\\.globalplayer\\.com/(?:(podcasts)/|catchup/\\w+/\\w+/)(\\w+)/?(?:$|[?#])" + ], + "regexp": "https?://www\\.globalplayer\\.com/(?:(podcasts)/|catchup/\\w+/\\w+/)(\\w+)/?(?:$|[?#])" + }, + "globalplayeraudioepisode": { + "name": "globalplayeraudioepisode", + "type": "free", + "domains": [ + "globalplayer.com" + ], + "regexps": [ + "https?://www\\.globalplayer\\.com/(?:(podcasts)|catchup/\\w+/\\w+)/episodes/(\\w+)/?(?:$|[?#])" + ], + "regexp": "https?://www\\.globalplayer\\.com/(?:(podcasts)|catchup/\\w+/\\w+)/episodes/(\\w+)/?(?:$|[?#])" + }, + "globalplayerlive": { + "name": "globalplayerlive", + "type": "free", + "domains": [ + "globalplayer.com" + ], + "regexps": [ + "https?://www\\.globalplayer\\.com/live/(\\w+)/\\w+" + ], + "regexp": "https?://www\\.globalplayer\\.com/live/(\\w+)/\\w+" + }, + "globalplayerliveplaylist": { + "name": "globalplayerliveplaylist", + "type": "free", + "domains": [ + "globalplayer.com" + ], + "regexps": [ + "https?://www\\.globalplayer\\.com/playlists/(\\w+)" + ], + "regexp": "https?://www\\.globalplayer\\.com/playlists/(\\w+)" + }, + "globalplayervideo": { + "name": "globalplayervideo", + "type": "free", + "domains": [ + "globalplayer.com" + ], + "regexps": [ + "https?://www\\.globalplayer\\.com/videos/(\\w+)" + ], + "regexp": "https?://www\\.globalplayer\\.com/videos/(\\w+)" + }, + "globo": { + "name": "globo", + "type": "free", + "domains": [ + "globoplay.globo.com" + ], + "regexps": [ + "(?:globo:|https?://[^/?#]+?\\.globo\\.com/(?:[^/?#]+/))(\\d{7,})" + ], + "regexp": "(?:globo:|https?://[^/?#]+?\\.globo\\.com/(?:[^/?#]+/))(\\d{7,})" + }, + "globoarticle": { + "name": "globoarticle", + "type": "free", + "domains": [ + "g1.globo.com", + "gq.globo.com", + "gshow.globo.com", + "oglobo.globo.com", + "ge.globo.com", + "redeglobo.globo.com" + ], + "regexps": [ + "https?://(?!globoplay).+?\\.globo\\.com/(?:[^/?#]+/)*([^/?#.]+)(?:\\.html)?" + ], + "regexp": "https?://(?!globoplay).+?\\.globo\\.com/(?:[^/?#]+/)*([^/?#.]+)(?:\\.html)?" + }, + "glomex": { + "name": "glomex", + "type": "free", + "domains": [ + "player.glomex.com", + "video.glomex.com" + ], + "regexps": [ + "https?://player\\.glomex\\.com/integration/[^/]/iframe\\-player\\.html\\?([^#]+&)?playlistId=([^#&]+)", + "https?://video\\.glomex\\.com/[^/]+/(v-[^-]+)" + ], + "regexp": "(https?://player\\.glomex\\.com/integration/[^/]/iframe\\-player\\.html\\?([^#]+&)?playlistId=([^#&]+))|(https?://video\\.glomex\\.com/[^/]+/(v-[^-]+))" + }, + "gmanetworkvideo": { + "name": "gmanetworkvideo", + "type": "free", + "domains": [ + "gmanetwork.com" + ], + "regexps": [ + "https?://(?:www)\\.gmanetwork\\.com/(?:\\w+/){3}(\\d+)/([\\w-]+)/video" + ], + "regexp": "https?://(?:www)\\.gmanetwork\\.com/(?:\\w+/){3}(\\d+)/([\\w-]+)/video" + }, + "go": { + "name": "go", + "type": "free", + "domains": [ + "abc.com", + "disneynow.com", + "fxnow.fxnetworks.com", + "freeform.com", + "nationalgeographic.com" + ], + "regexps": [ + "https?://(?:www\\.)?(abc)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})", + "https?://(?:www\\.)?(freeform)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})", + "https?://(?:www\\.)?(disneynow)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})", + "https?://fxnow\\.(fxnetworks)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})", + "https?://(?:www\\.)?(nationalgeographic)\\.com/tv/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + ], + "regexp": "(https?://(?:www\\.)?(abc)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))|(https?://(?:www\\.)?(freeform)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))|(https?://(?:www\\.)?(disneynow)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))|(https?://fxnow\\.(fxnetworks)\\.com/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))|(https?://(?:www\\.)?(nationalgeographic)\\.com/tv/(?:video|episode|movies-and-specials)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))" + }, + "godiscovery": { + "name": "godiscovery", + "type": "free", + "domains": [ + "go.discovery.com", + "discovery.com" + ], + "regexps": [ + "https?://(?:go\\.)?discovery\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:go\\.)?discovery\\.com/video/([^/]+/[^/?#]+)" + }, + "godresource": { + "name": "godresource", + "type": "free", + "domains": [ + "new.godresource.com" + ], + "regexps": [ + "https?://new\\.godresource\\.com/video/(\\w+)" + ], + "regexp": "https?://new\\.godresource\\.com/video/(\\w+)" + }, + "godtube": { + "name": "godtube", + "type": "free", + "domains": [ + "godtube.com" + ], + "regexps": [ + "https?://(?:www\\.)?godtube\\.com/watch/\\?v=([\\da-zA-Z]+)" + ], + "regexp": "https?://(?:www\\.)?godtube\\.com/watch/\\?v=([\\da-zA-Z]+)" + }, + "gofile": { + "name": "gofile", + "type": "free", + "domains": [ + "gofile.io" + ], + "regexps": [ + "https?://(?:www\\.)?gofile\\.io/d/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?gofile\\.io/d/([^/]+)" + }, + "golem": { + "name": "golem", + "type": "free", + "domains": [], + "regexps": [ + "https?://video\\.golem\\.de/.+?/(.+?)/" + ], + "regexp": "https?://video\\.golem\\.de/.+?/(.+?)/" + }, + "goodgame": { + "name": "goodgame", + "type": "free", + "domains": [ + "goodgame.ru" + ], + "regexps": [ + "https?://goodgame\\.ru/(?!channel/)([\\w.*-]+)" + ], + "regexp": "https?://goodgame\\.ru/(?!channel/)([\\w.*-]+)" + }, + "google": { + "name": "google", + "type": "free", + "domains": [], + "regexps": [ + "https?://podcasts\\.google\\.com/feed/([^/?&#]+)/?(?:[?#&]|$)", + "https?://podcasts\\.google\\.com/feed/([^/]+)/episode/([^/?&#]+)" + ], + "regexp": "(https?://podcasts\\.google\\.com/feed/([^/?&#]+)/?(?:[?#&]|$))|(https?://podcasts\\.google\\.com/feed/([^/]+)/episode/([^/?&#]+))" + }, + "googledrive": { + "name": "googledrive", + "type": "free", + "domains": [ + "drive.google.com", + "drive.usercontent.google.com" + ], + "regexps": [ + "https?://(?:docs|drive)\\.google\\.com/drive/folders/([\\w-]{28,})", + "https?://(?:(?:docs|drive|drive\\.usercontent)\\.google\\.com/(?:(?:uc|open|download)\\?.*?id=|file/d/)|video\\.google\\.com/get_player\\?.*?docid=)([a-zA-Z0-9_-]{28,})" + ], + "regexp": "(https?://(?:docs|drive)\\.google\\.com/drive/folders/([\\w-]{28,}))|(https?://(?:(?:docs|drive|drive\\.usercontent)\\.google\\.com/(?:(?:uc|open|download)\\?.*?id=|file/d/)|video\\.google\\.com/get_player\\?.*?docid=)([a-zA-Z0-9_-]{28,}))" + }, + "gopro": { + "name": "gopro", + "type": "free", + "domains": [ + "gopro.com" + ], + "regexps": [ + "https?://(www\\.)?gopro\\.com/v/([A-Za-z0-9]+)" + ], + "regexp": "https?://(www\\.)?gopro\\.com/v/([A-Za-z0-9]+)" + }, + "goshgay": { + "name": "goshgay", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?goshgay\\.com/video(\\d+?)($|/)" + ], + "regexp": "https?://(?:www\\.)?goshgay\\.com/video(\\d+?)($|/)" + }, + "gotostage": { + "name": "gotostage", + "type": "free", + "domains": [ + "gotostage.com" + ], + "regexps": [ + "https?://(?:www\\.)?gotostage\\.com/channel/[a-z0-9]+/recording/([a-z0-9]+)/watch" + ], + "regexp": "https?://(?:www\\.)?gotostage\\.com/channel/[a-z0-9]+/recording/([a-z0-9]+)/watch" + }, + "gputechconf": { + "name": "gputechconf", + "type": "free", + "domains": [], + "regexps": [ + "https?://on-demand\\.gputechconf\\.com/gtc/2015/video/S(\\d+)\\.html" + ], + "regexp": "https?://on-demand\\.gputechconf\\.com/gtc/2015/video/S(\\d+)\\.html" + }, + "graspop": { + "name": "graspop", + "type": "free", + "domains": [ + "vod.graspop.be" + ], + "regexps": [ + "https?://vod\\.graspop\\.be/[a-z]{2}/(\\d+)/" + ], + "regexp": "https?://vod\\.graspop\\.be/[a-z]{2}/(\\d+)/" + }, + "gronkh": { + "name": "gronkh", + "type": "free", + "domains": [ + "gronkh.tv" + ], + "regexps": [ + "https?://(?:www\\.)?gronkh\\.tv(?:/feed)?/?(?:#|$)", + "https?://(?:www\\.)?gronkh\\.tv/(?:watch/)?streams?/(\\d+)", + "https?://(?:www\\.)?gronkh\\.tv/vods/streams/?(?:#|$)" + ], + "regexp": "(https?://(?:www\\.)?gronkh\\.tv(?:/feed)?/?(?:#|$))|(https?://(?:www\\.)?gronkh\\.tv/(?:watch/)?streams?/(\\d+))|(https?://(?:www\\.)?gronkh\\.tv/vods/streams/?(?:#|$))" + }, + "groupon": { + "name": "groupon", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?groupon\\.com/deals/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?groupon\\.com/deals/([^/?#&]+)" + }, + "harpodeon": { + "name": "harpodeon", + "type": "free", + "domains": [ + "harpodeon.com" + ], + "regexps": [ + "https?://(?:www\\.)?harpodeon\\.com/(?:video|preview)/\\w+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?harpodeon\\.com/(?:video|preview)/\\w+/(\\d+)" + }, + "hbo": { + "name": "hbo", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?hbo\\.com/(?:video|embed)(?:/[^/]+)*/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?hbo\\.com/(?:video|embed)(?:/[^/]+)*/([^/?#]+)" + }, + "hearthisat": { + "name": "hearthisat", + "type": "free", + "domains": [ + "hearthis.at" + ], + "regexps": [ + "https?://(?:www\\.)?hearthis\\.at/([^/?#]+)/([\\w.-]+)" + ], + "regexp": "https?://(?:www\\.)?hearthis\\.at/([^/?#]+)/([\\w.-]+)" + }, + "heise": { + "name": "heise", + "type": "free", + "domains": [ + "heise.de" + ], + "regexps": [ + "https?://(?:www\\.)?heise\\.de/(?:[^/]+/)+[^/]+-([0-9]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?heise\\.de/(?:[^/]+/)+[^/]+-([0-9]+)\\.html" + }, + "hellporno": { + "name": "hellporno", + "type": "free", + "domains": [ + "hellporno.com", + "hellporno.net" + ], + "regexps": [ + "https?://(?:www\\.)?hellporno\\.(?:com/videos|net/v)/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?hellporno\\.(?:com/videos|net/v)/([^/]+)" + }, + "hetklokhuis": { + "name": "hetklokhuis", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?hetklokhuis\\.nl/[^/]+/\\d+/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?hetklokhuis\\.nl/[^/]+/\\d+/([^/?#&]+)" + }, + "hgtv.com": { + "name": "hgtv.com", + "type": "free", + "domains": [ + "hgtv.com" + ], + "regexps": [ + "https?://(?:www\\.)?hgtv\\.com/shows/[^/]+/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?hgtv\\.com/shows/[^/]+/([^/?#&]+)" + }, + "hgtvde": { + "name": "hgtvde", + "type": "free", + "domains": [ + "de.hgtv.com" + ], + "regexps": [ + "https?://de\\.hgtv\\.com/sendungen/([^/]+/[^/?#]+)" + ], + "regexp": "https?://de\\.hgtv\\.com/sendungen/([^/]+/[^/?#]+)" + }, + "hgtvusa": { + "name": "hgtvusa", + "type": "free", + "domains": [ + "watch.hgtv.com" + ], + "regexps": [ + "https?://(?:watch\\.)?hgtv\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:watch\\.)?hgtv\\.com/video/([^/]+/[^/?#]+)" + }, + "hidive": { + "name": "hidive", + "type": "free", + "domains": [ + "hidive.com" + ], + "regexps": [ + "https?://(?:www\\.)?hidive\\.com/stream/(([^/]+)/([^/?#&]+))" + ], + "regexp": "https?://(?:www\\.)?hidive\\.com/stream/(([^/]+)/([^/?#&]+))" + }, + "historicfilms": { + "name": "historicfilms", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?historicfilms\\.com/(?:tapes/|play)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?historicfilms\\.com/(?:tapes/|play)(\\d+)" + }, + "history": { + "name": "history", + "type": "free", + "domains": [ + "history.com" + ], + "regexps": [ + "https?://(?:www\\.)?((?:history|biography)\\.com)/player/(\\d+)", + "https?://(?:www\\.)?history\\.com/topics/[^/]+/([\\w+-]+?)-video" + ], + "regexp": "(https?://(?:www\\.)?((?:history|biography)\\.com)/player/(\\d+))|(https?://(?:www\\.)?history\\.com/topics/[^/]+/([\\w+-]+?)-video)" + }, + "hitrecord": { + "name": "hitrecord", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?hitrecord\\.org/records/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?hitrecord\\.org/records/(\\d+)" + }, + "hketv": { + "name": "hketv", + "type": "free", + "domains": [ + "hkedcity.net" + ], + "regexps": [ + "https?://(?:www\\.)?hkedcity\\.net/etv/resource/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?hkedcity\\.net/etv/resource/([0-9]+)" + }, + "hollywoodreporter": { + "name": "hollywoodreporter", + "type": "free", + "domains": [ + "hollywoodreporter.com" + ], + "regexps": [ + "https?://(?:www\\.)?hollywoodreporter\\.com/video/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?hollywoodreporter\\.com/video/([\\w-]+)" + }, + "hollywoodreporterplaylist": { + "name": "hollywoodreporterplaylist", + "type": "free", + "domains": [ + "hollywoodreporter.com" + ], + "regexps": [ + "https?://(?:www\\.)?hollywoodreporter\\.com/vcategory/([\\w-]+)-(\\d+)" + ], + "regexp": "https?://(?:www\\.)?hollywoodreporter\\.com/vcategory/([\\w-]+)-(\\d+)" + }, + "holodex": { + "name": "holodex", + "type": "free", + "domains": [ + "holodex.net", + "staging.holodex.net" + ], + "regexps": [ + "https?://(?:www\\.|staging\\.)?holodex\\.net/(?:api/v2/playlist/(\\d+)|watch/([\\w-]{11})(?:\\?(?:[^#]+&)?playlist=(\\d+))?)" + ], + "regexp": "https?://(?:www\\.|staging\\.)?holodex\\.net/(?:api/v2/playlist/(\\d+)|watch/([\\w-]{11})(?:\\?(?:[^#]+&)?playlist=(\\d+))?)" + }, + "hotnewhiphop": { + "name": "hotnewhiphop", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?hotnewhiphop\\.com/.*\\.(.*)\\.html" + ], + "regexp": "https?://(?:www\\.)?hotnewhiphop\\.com/.*\\.(.*)\\.html" + }, + "hotstar": { + "name": "hotstar", + "type": "free", + "domains": [ + "hotstar.com" + ], + "regexps": [ + "https?://(?:www\\.)?hotstar\\.com(?:/in)?/(?!in/)(?:(movies|sports|clips|episode|(tv|shows))/((?:[^/?#]+/){2}|[^?#]*))?[^/?#]+/(\\d{10})", + "(https?://(?:www\\.)?hotstar\\.com(?:/in)?/(?:tv|shows)/[^/]+/(\\d+))/?(?:[#?]|$)" + ], + "regexp": "(https?://(?:www\\.)?hotstar\\.com(?:/in)?/(?!in/)(?:(movies|sports|clips|episode|(tv|shows))/((?:[^/?#]+/){2}|[^?#]*))?[^/?#]+/(\\d{10}))|((https?://(?:www\\.)?hotstar\\.com(?:/in)?/(?:tv|shows)/[^/]+/(\\d+))/?(?:[#?]|$))" + }, + "hrfernsehen": { + "name": "hrfernsehen", + "type": "free", + "domains": [ + "hessenschau.de", + "hr-fernsehen.de" + ], + "regexps": [ + "https?://www\\.(?:hr-fernsehen|hessenschau)\\.de/.*,video-([0-9]{6})\\.html" + ], + "regexp": "https?://www\\.(?:hr-fernsehen|hessenschau)\\.de/.*,video-([0-9]{6})\\.html" + }, + "hrti": { + "name": "hrti", + "type": "free", + "domains": [ + "hrti.hrt.hr" + ], + "regexps": [ + "(?:hrti:([0-9]+)|https?://hrti\\.hrt\\.hr/(?:\\#/)?video/show/([0-9]+)/([^/]+)?)" + ], + "regexp": "(?:hrti:([0-9]+)|https?://hrti\\.hrt\\.hr/(?:\\#/)?video/show/([0-9]+)/([^/]+)?)" + }, + "hrtiplaylist": { + "name": "hrtiplaylist", + "type": "free", + "domains": [ + "hrti.hrt.hr" + ], + "regexps": [ + "https?://hrti\\.hrt\\.hr/(?:#/)?video/list/category/([0-9]+)/([^/]+)?" + ], + "regexp": "https?://hrti\\.hrt\\.hr/(?:#/)?video/list/category/([0-9]+)/([^/]+)?" + }, + "hseproduct": { + "name": "hseproduct", + "type": "free", + "domains": [ + "hse.de" + ], + "regexps": [ + "https?://(?:www\\.)?hse\\.de/dpl/p/product/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?hse\\.de/dpl/p/product/([0-9]+)" + }, + "hseshow": { + "name": "hseshow", + "type": "free", + "domains": [ + "hse.de" + ], + "regexps": [ + "https?://(?:www\\.)?hse\\.de/dpl/c/tv-shows/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?hse\\.de/dpl/c/tv-shows/([0-9]+)" + }, + "huajiao": { + "name": "huajiao", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?huajiao\\.com/l/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?huajiao\\.com/l/([0-9]+)" + }, + "huffpost": { + "name": "huffpost", + "type": "free", + "domains": [], + "regexps": [ + "https?://(embed\\.)?live\\.huffingtonpost\\.com/(?:r/segment/[^/]+/|HPLEmbedPlayer/\\?segmentId=)([0-9a-f]+)" + ], + "regexp": "https?://(embed\\.)?live\\.huffingtonpost\\.com/(?:r/segment/[^/]+/|HPLEmbedPlayer/\\?segmentId=)([0-9a-f]+)" + }, + "hungama": { + "name": "hungama", + "type": "free", + "domains": [ + "hungama.com", + "un.hungama.com" + ], + "regexps": [ + "https?://(?:www\\.|un\\.)?hungama\\.com/(?:(?:video|movie|short-film)/[^/]+/|tv-show/(?:[^/]+/){2}\\d+/episode/[^/]+/)(\\d+)" + ], + "regexp": "https?://(?:www\\.|un\\.)?hungama\\.com/(?:(?:video|movie|short-film)/[^/]+/|tv-show/(?:[^/]+/){2}\\d+/episode/[^/]+/)(\\d+)" + }, + "hungamaalbumplaylist": { + "name": "hungamaalbumplaylist", + "type": "free", + "domains": [ + "hungama.com", + "un.hungama.com" + ], + "regexps": [ + "https?://(?:www\\.|un\\.)?hungama\\.com/(playlists|album)/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.|un\\.)?hungama\\.com/(playlists|album)/[^/]+/(\\d+)" + }, + "hungamasong": { + "name": "hungamasong", + "type": "free", + "domains": [ + "hungama.com", + "un.hungama.com" + ], + "regexps": [ + "https?://(?:www\\.|un\\.)?hungama\\.com/song/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.|un\\.)?hungama\\.com/song/[^/]+/(\\d+)" + }, + "huya": { + "name": "huya", + "type": "free", + "domains": [ + "huya.com" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?huya\\.com/(?!(?:video/play/))([^/#?&]+)(?:\\D|$)", + "https?://(?:www\\.)?huya\\.com/video/play/(\\d+)\\.html" + ], + "regexp": "(https?://(?:www\\.|m\\.)?huya\\.com/(?!(?:video/play/))([^/#?&]+)(?:\\D|$))|(https?://(?:www\\.)?huya\\.com/video/play/(\\d+)\\.html)" + }, + "hypem": { + "name": "hypem", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?hypem\\.com/track/([0-9a-z]{5})" + ], + "regexp": "https?://(?:www\\.)?hypem\\.com/track/([0-9a-z]{5})" + }, + "hytale": { + "name": "hytale", + "type": "free", + "domains": [ + "hytale.com" + ], + "regexps": [ + "https?://(?:www\\.)?hytale\\.com/news/\\d+/\\d+/([a-z0-9-]+)" + ], + "regexp": "https?://(?:www\\.)?hytale\\.com/news/\\d+/\\d+/([a-z0-9-]+)" + }, + "icareus": { + "name": "icareus", + "type": "free", + "domains": [ + "helsinkikanava.fi", + "suite.icareus.com", + "asahitv.fi", + "hyvinvointitv.fi", + "inez.fi", + "permanto.fi", + "videos.minifiddlers.org" + ], + "regexps": [ + "(https?://(?:www\\.)?(?:asahitv\\.fi|helsinkikanava\\.fi|hyvinvointitv\\.fi|inez\\.fi|permanto\\.fi|suite\\.icareus\\.com|videos\\.minifiddlers\\.org))/[^?#]+/player/[^?#]+\\?(?:[^#]+&)?(?:assetId|eventId)=(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?(?:asahitv\\.fi|helsinkikanava\\.fi|hyvinvointitv\\.fi|inez\\.fi|permanto\\.fi|suite\\.icareus\\.com|videos\\.minifiddlers\\.org))/[^?#]+/player/[^?#]+\\?(?:[^#]+&)?(?:assetId|eventId)=(\\d+)" + }, + "idagioalbum": { + "name": "idagioalbum", + "type": "free", + "domains": [ + "app.idagio.com" + ], + "regexps": [ + "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/albums/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/albums/([\\w-]+)" + }, + "idagiopersonalplaylist": { + "name": "idagiopersonalplaylist", + "type": "free", + "domains": [ + "app.idagio.com" + ], + "regexps": [ + "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/playlists/personal/([\\da-f-]+)" + ], + "regexp": "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/playlists/personal/([\\da-f-]+)" + }, + "idagioplaylist": { + "name": "idagioplaylist", + "type": "free", + "domains": [ + "app.idagio.com" + ], + "regexps": [ + "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/playlists/(?!personal/)([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/playlists/(?!personal/)([\\w-]+)" + }, + "idagiorecording": { + "name": "idagiorecording", + "type": "free", + "domains": [ + "app.idagio.com" + ], + "regexps": [ + "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/recordings/(\\d+)(?![^#]*[&?]trackId=\\d+)" + ], + "regexp": "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/recordings/(\\d+)(?![^#]*[&?]trackId=\\d+)" + }, + "idagiotrack": { + "name": "idagiotrack", + "type": "free", + "domains": [ + "app.idagio.com" + ], + "regexps": [ + "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/recordings/\\d+\\?(?:[^#]+&)?trackId=(\\d+)" + ], + "regexp": "https?://(?:www\\.)?app\\.idagio\\.com(?:/[a-z]{2})?/recordings/\\d+\\?(?:[^#]+&)?trackId=(\\d+)" + }, + "idolplus": { + "name": "idolplus", + "type": "free", + "domains": [ + "idolplus.com" + ], + "regexps": [ + "https?://(?:www\\.)?idolplus\\.com/z[us]/(?:concert/|contents/?\\?(?:[^#]+&)?albumId=)(\\w+)" + ], + "regexp": "https?://(?:www\\.)?idolplus\\.com/z[us]/(?:concert/|contents/?\\?(?:[^#]+&)?albumId=)(\\w+)" + }, + "iflix": { + "name": "iflix", + "type": "free", + "domains": [ + "iflix.com" + ], + "regexps": [ + "https?://(?:www\\.)?iflix\\.com/(?:[^?#]+/)?play/(\\w+)(?:-[^?#]+)?/(\\w+)(?:-[^?#]+)?" + ], + "regexp": "https?://(?:www\\.)?iflix\\.com/(?:[^?#]+/)?play/(\\w+)(?:-[^?#]+)?/(\\w+)(?:-[^?#]+)?" + }, + "iflixseries": { + "name": "iflixseries", + "type": "free", + "domains": [ + "iflix.com" + ], + "regexps": [ + "https?://(?:www\\.)?iflix\\.com/(?:[^?#]+/)?play/(\\w+)(?:-[^/?#]+)?/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?iflix\\.com/(?:[^?#]+/)?play/(\\w+)(?:-[^/?#]+)?/?(?:[?#]|$)" + }, + "ign.com": { + "name": "ign.com", + "type": "free", + "domains": [ + "ign.com", + "pcmag.com" + ], + "regexps": [ + "https?://(?:.+?\\.ign|www\\.pcmag)\\.com/videos(?:/(?:\\d{4}/\\d{2}/\\d{2}/)?(.+?)(?:[/?&#]|$)|(?:/?\\?([^&#]+))?)" + ], + "regexp": "https?://(?:.+?\\.ign|www\\.pcmag)\\.com/videos(?:/(?:\\d{4}/\\d{2}/\\d{2}/)?(.+?)(?:[/?&#]|$)|(?:/?\\?([^&#]+))?)" + }, + "ignarticle": { + "name": "ignarticle", + "type": "free", + "domains": [ + "me.ign.com", + "ign.com" + ], + "regexps": [ + "https?://.+?\\.ign\\.com/(?:articles(?:/\\d{4}/\\d{2}/\\d{2})?|(?:[a-z]{2}/)?(?:[\\w-]+/)*?feature/\\d+)/([^/?&#]+)" + ], + "regexp": "https?://.+?\\.ign\\.com/(?:articles(?:/\\d{4}/\\d{2}/\\d{2})?|(?:[a-z]{2}/)?(?:[\\w-]+/)*?feature/\\d+)/([^/?&#]+)" + }, + "ignvideo": { + "name": "ignvideo", + "type": "free", + "domains": [ + "me.ign.com", + "adria.ign.com", + "kr.ign.com" + ], + "regexps": [ + "https?://.+?\\.ign\\.com/(?:[a-z]{2}/)?[^/]+/(\\d+)/(?:video|trailer)/" + ], + "regexp": "https?://.+?\\.ign\\.com/(?:[a-z]{2}/)?[^/]+/(\\d+)/(?:video|trailer)/" + }, + "iheartradio": { + "name": "iheartradio", + "type": "free", + "domains": [ + "iheart.com", + "iheartpodcastnetwork.com" + ], + "regexps": [ + "(?:https?://(?:www\\.)?iheart\\.com/podcast/[^/]+/episode/([^/?&#]+)-|iheartradio:)(\\d+)", + "https?://(?:www\\.)?iheart(?:podcastnetwork)?\\.com/podcast/[^/?&#]+-(\\d+)/?(?:[?#&]|$)" + ], + "regexp": "((?:https?://(?:www\\.)?iheart\\.com/podcast/[^/]+/episode/([^/?&#]+)-|iheartradio:)(\\d+))|(https?://(?:www\\.)?iheart(?:podcastnetwork)?\\.com/podcast/[^/?&#]+-(\\d+)/?(?:[?#&]|$))" + }, + "ilpost": { + "name": "ilpost", + "type": "free", + "domains": [ + "ilpost.it" + ], + "regexps": [ + "https?://(?:www\\.)?ilpost\\.it/episodes/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?ilpost\\.it/episodes/([^/?#]+)" + }, + "iltalehti": { + "name": "iltalehti", + "type": "free", + "domains": [ + "iltalehti.fi" + ], + "regexps": [ + "https?://(?:www\\.)?iltalehti\\.fi/[^/?#]+/a/([^/?#])" + ], + "regexp": "https?://(?:www\\.)?iltalehti\\.fi/[^/?#]+/a/([^/?#])" + }, + "imdb": { + "name": "imdb", + "type": "free", + "domains": [ + "imdb.com" + ], + "regexps": [ + "https?://(?:www|m)\\.imdb\\.com/(?:video|title|list).*?[/-]vi(\\d+)", + "https?://(?:www\\.)?imdb\\.com/list/ls(\\d{9})(?!/videoplayer/vi\\d+)" + ], + "regexp": "(https?://(?:www|m)\\.imdb\\.com/(?:video|title|list).*?[/-]vi(\\d+))|(https?://(?:www\\.)?imdb\\.com/list/ls(\\d{9})(?!/videoplayer/vi\\d+))" + }, + "imgur": { + "name": "imgur", + "type": "free", + "domains": [ + "imgur.com", + "i.imgur.com" + ], + "regexps": [ + "https?://(?:i\\.)?imgur\\.com/a/(?:[^/?#]+-)?([a-zA-Z0-9]+)", + "https?://(?:i\\.)?imgur\\.com/(?:gallery|(?:t(?:opic)?|r)/[^/?#]+)/(?:[^/?#]+-)?([a-zA-Z0-9]+)", + "https?://(?:i\\.)?imgur\\.com/(?!(?:a|gallery|t|topic|r)/)(?:[^/?#]+-)?([a-zA-Z0-9]+)" + ], + "regexp": "(https?://(?:i\\.)?imgur\\.com/a/(?:[^/?#]+-)?([a-zA-Z0-9]+))|(https?://(?:i\\.)?imgur\\.com/(?:gallery|(?:t(?:opic)?|r)/[^/?#]+)/(?:[^/?#]+-)?([a-zA-Z0-9]+))|(https?://(?:i\\.)?imgur\\.com/(?!(?:a|gallery|t|topic|r)/)(?:[^/?#]+-)?([a-zA-Z0-9]+))" + }, + "ina": { + "name": "ina", + "type": "free", + "domains": [ + "ina.fr", + "m.ina.fr" + ], + "regexps": [ + "https?://(?:(?:www|m)\\.)?ina\\.fr/(?:[^?#]+/)([\\w-]+)" + ], + "regexp": "https?://(?:(?:www|m)\\.)?ina\\.fr/(?:[^?#]+/)([\\w-]+)" + }, + "inc": { + "name": "inc", + "type": "free", + "domains": [ + "inc.com" + ], + "regexps": [ + "https?://(?:www\\.)?inc\\.com/(?:[^/]+/)+([^.]+).html" + ], + "regexp": "https?://(?:www\\.)?inc\\.com/(?:[^/]+/)+([^.]+).html" + }, + "indavideoembed": { + "name": "indavideoembed", + "type": "free", + "domains": [ + "indavideo.hu", + "embed.indavideo.hu" + ], + "regexps": [ + "https?://(?:(?:embed\\.)?indavideo\\.hu/player/video/|assets\\.indavideo\\.hu/swf/player\\.swf\\?.*\\b(?:v(?:ID|id))=)([\\da-f]+)" + ], + "regexp": "https?://(?:(?:embed\\.)?indavideo\\.hu/player/video/|assets\\.indavideo\\.hu/swf/player\\.swf\\?.*\\b(?:v(?:ID|id))=)([\\da-f]+)" + }, + "infoq": { + "name": "infoq", + "type": "free", + "domains": [ + "infoq.com" + ], + "regexps": [ + "https?://(?:www\\.)?infoq\\.com/(?:[^/]+/)+([^/]+)" + ], + "regexp": "https?://(?:www\\.)?infoq\\.com/(?:[^/]+/)+([^/]+)" + }, + "instagram": { + "name": "instagram", + "type": "free", + "domains": [ + "instagram.com" + ], + "regexps": [ + "(https?://(?:www\\.)?instagram\\.com(?:/(?!share/)[^/?#]+)?/(?:p|tv|reels?(?!/audio/))/([^/?#&]+))", + "https?://(?:www\\.)?instagram\\.com/stories/([^/?#]+)(?:/(\\d+))?", + "https?://(?:www\\.)?instagram\\.com/explore/tags/([^/]+)", + "https?://(?:www\\.)?instagram\\.com/([^/]{2,})/?(?:$|[?#])" + ], + "regexp": "((https?://(?:www\\.)?instagram\\.com(?:/(?!share/)[^/?#]+)?/(?:p|tv|reels?(?!/audio/))/([^/?#&]+)))|(https?://(?:www\\.)?instagram\\.com/stories/([^/?#]+)(?:/(\\d+))?)|(https?://(?:www\\.)?instagram\\.com/explore/tags/([^/]+))|(https?://(?:www\\.)?instagram\\.com/([^/]{2,})/?(?:$|[?#]))" + }, + "instagramios": { + "name": "instagramios", + "type": "free", + "domains": [ + "media" + ], + "regexps": [ + "instagram://media\\?id=([\\d_]+)" + ], + "regexp": "instagram://media\\?id=([\\d_]+)" + }, + "internazionale": { + "name": "internazionale", + "type": "free", + "domains": [ + "internazionale.it" + ], + "regexps": [ + "https?://(?:www\\.)?internazionale\\.it/video/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?internazionale\\.it/video/(?:[^/]+/)*([^/?#&]+)" + }, + "internetvideoarchive": { + "name": "internetvideoarchive", + "type": "free", + "domains": [], + "regexps": [ + "https?://video\\.internetvideoarchive\\.net/(?:player|flash/players)/.*?\\?.*?publishedid.*?" + ], + "regexp": "https?://video\\.internetvideoarchive\\.net/(?:player|flash/players)/.*?\\?.*?publishedid.*?" + }, + "investigationdiscovery": { + "name": "investigationdiscovery", + "type": "free", + "domains": [ + "investigationdiscovery.com" + ], + "regexps": [ + "https?://(?:www\\.)?investigationdiscovery\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?investigationdiscovery\\.com/video/([^/]+/[^/?#]+)" + }, + "iprima": { + "name": "iprima", + "type": "free", + "domains": [ + "prima.iprima.cz", + "zoom.iprima.cz", + "play.iprima.cz", + "iprima.cz", + "krimi.iprima.cz", + "cool.iprima.cz", + "love.iprima.cz" + ], + "regexps": [ + "https?://(?!cnn)(?:[^/]+)\\.iprima\\.cz/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?!cnn)(?:[^/]+)\\.iprima\\.cz/(?:[^/]+/)*([^/?#&]+)" + }, + "iprimacnn": { + "name": "iprimacnn", + "type": "free", + "domains": [ + "cnn.iprima.cz" + ], + "regexps": [ + "https?://cnn\\.iprima\\.cz/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://cnn\\.iprima\\.cz/(?:[^/]+/)*([^/?#&]+)" + }, + "iq.com": { + "name": "iq.com", + "type": "free", + "domains": [ + "iq.com" + ], + "regexps": [ + "https?://(?:www\\.)?iq\\.com/album/(?:[\\w%-]*-)?(\\w+)", + "https?://(?:www\\.)?iq\\.com/play/(?:[\\w%-]*-)?(\\w+)" + ], + "regexp": "(https?://(?:www\\.)?iq\\.com/album/(?:[\\w%-]*-)?(\\w+))|(https?://(?:www\\.)?iq\\.com/play/(?:[\\w%-]*-)?(\\w+))" + }, + "iqiyi": { + "name": "iqiyi", + "type": "free", + "domains": [ + "iqiyi.com", + "yule.iqiyi.com", + "pps.tv" + ], + "regexps": [ + "https?://(?:(?:[^.]+\\.)?iqiyi\\.com|www\\.pps\\.tv)/.+\\.html" + ], + "regexp": "https?://(?:(?:[^.]+\\.)?iqiyi\\.com|www\\.pps\\.tv)/.+\\.html" + }, + "islamchannel": { + "name": "islamchannel", + "type": "free", + "domains": [ + "watch.islamchannel.tv" + ], + "regexps": [ + "https?://watch\\.islamchannel\\.tv/watch/(\\d+)" + ], + "regexp": "https?://watch\\.islamchannel\\.tv/watch/(\\d+)" + }, + "islamchannelseries": { + "name": "islamchannelseries", + "type": "free", + "domains": [ + "watch.islamchannel.tv" + ], + "regexps": [ + "https?://watch\\.islamchannel\\.tv/series/([a-f\\d-]+)" + ], + "regexp": "https?://watch\\.islamchannel\\.tv/series/([a-f\\d-]+)" + }, + "israelnationalnews": { + "name": "israelnationalnews", + "type": "free", + "domains": [ + "israelnationalnews.com" + ], + "regexps": [ + "https?://(?:www\\.)?israelnationalnews\\.com/news/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?israelnationalnews\\.com/news/(\\d+)" + }, + "itprotv": { + "name": "itprotv", + "type": "free", + "domains": [ + "app.itpro.tv" + ], + "regexps": [ + "https?://app\\.itpro\\.tv/course/([\\w-]+)/([\\w-]+)" + ], + "regexp": "https?://app\\.itpro\\.tv/course/([\\w-]+)/([\\w-]+)" + }, + "itprotvcourse": { + "name": "itprotvcourse", + "type": "free", + "domains": [ + "app.itpro.tv" + ], + "regexps": [ + "https?://app\\.itpro\\.tv/course/([\\w-]+)/?(?:$|[#?])" + ], + "regexp": "https?://app\\.itpro\\.tv/course/([\\w-]+)/?(?:$|[#?])" + }, + "itv": { + "name": "itv", + "type": "free", + "domains": [ + "itv.com" + ], + "regexps": [ + "https?://(?:www\\.)?itv\\.com/hub/[^/]+/([0-9a-zA-Z]+)" + ], + "regexp": "https?://(?:www\\.)?itv\\.com/hub/[^/]+/([0-9a-zA-Z]+)" + }, + "itvbtcc": { + "name": "itvbtcc", + "type": "free", + "domains": [ + "itv.com" + ], + "regexps": [ + "https?://(?:www\\.)?itv\\.com/(?:news|btcc)/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?itv\\.com/(?:news|btcc)/(?:[^/]+/)*([^/?#&]+)" + }, + "ivi": { + "name": "ivi", + "type": "free", + "domains": [ + "ivi.ru", + "ivi.tv" + ], + "regexps": [ + "https?://(?:www\\.)?ivi\\.ru/watch/(?!\\d+)([a-z\\d_-]+)(?:/season(\\d+))?$", + "https?://(?:www\\.)?ivi\\.(?:ru|tv)/(?:watch/(?:[^/]+/)?|video/player\\?.*?videoId=)(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?ivi\\.ru/watch/(?!\\d+)([a-z\\d_-]+)(?:/season(\\d+))?$)|(https?://(?:www\\.)?ivi\\.(?:ru|tv)/(?:watch/(?:[^/]+/)?|video/player\\?.*?videoId=)(\\d+))" + }, + "ivideon": { + "name": "ivideon", + "type": "free", + "domains": [ + "ivideon.com" + ], + "regexps": [ + "https?://(?:www\\.)?ivideon\\.com/tv/(?:[^/]+/)*camera/(\\d+-[\\da-f]+)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?ivideon\\.com/tv/(?:[^/]+/)*camera/(\\d+-[\\da-f]+)/(\\d+)" + }, + "ivoox": { + "name": "ivoox", + "type": "free", + "domains": [ + "ivoox.com", + "go.ivoox.com" + ], + "regexps": [ + "https?://(?:www\\.)?ivoox\\.com/(?:\\w{2}/)?[^/?#]+_rf_([0-9]+)_1\\.html", + "https?://go\\.ivoox\\.com/rf/([0-9]+)" + ], + "regexp": "(https?://(?:www\\.)?ivoox\\.com/(?:\\w{2}/)?[^/?#]+_rf_([0-9]+)_1\\.html)|(https?://go\\.ivoox\\.com/rf/([0-9]+))" + }, + "ivxplayer": { + "name": "ivxplayer", + "type": "free", + "domains": [], + "regexps": [ + "ivxplayer:(\\d+):(\\w+)" + ], + "regexp": "ivxplayer:(\\d+):(\\w+)" + }, + "iwara": { + "name": "iwara", + "type": "free", + "domains": [ + "iwara.tv" + ], + "regexps": [ + "https?://(?:www\\.|ecchi\\.)?iwara\\.tv/videos?/([a-zA-Z0-9]+)", + "https?://(?:www\\.)?iwara\\.tv/playlist/([0-9a-f-]+)", + "https?://(?:www\\.)?iwara\\.tv/profile/([^/?#&]+)" + ], + "regexp": "(https?://(?:www\\.|ecchi\\.)?iwara\\.tv/videos?/([a-zA-Z0-9]+))|(https?://(?:www\\.)?iwara\\.tv/playlist/([0-9a-f-]+))|(https?://(?:www\\.)?iwara\\.tv/profile/([^/?#&]+))" + }, + "ixigua": { + "name": "ixigua", + "type": "free", + "domains": [ + "ixigua.com" + ], + "regexps": [ + "https?://(?:\\w+\\.)?ixigua\\.com/(?:video/)?(\\d+).+" + ], + "regexp": "https?://(?:\\w+\\.)?ixigua\\.com/(?:video/)?(\\d+).+" + }, + "izlesene": { + "name": "izlesene", + "type": "free", + "domains": [ + "izlesene.com" + ], + "regexps": [ + "https?://(?:(?:www|m)\\.)?izlesene\\.com/(?:video|embedplayer)/(?:[^/]+/)?([0-9]+)" + ], + "regexp": "https?://(?:(?:www|m)\\.)?izlesene\\.com/(?:video|embedplayer)/(?:[^/]+/)?([0-9]+)" + }, + "jamendo": { + "name": "jamendo", + "type": "free", + "domains": [ + "jamendo.com", + "licensing.jamendo.com" + ], + "regexps": [ + "https?://(?:licensing\\.jamendo\\.com/[^/]+|(?:www\\.)?jamendo\\.com)/track/([0-9]+)(?:/([^/?#&]+))?" + ], + "regexp": "https?://(?:licensing\\.jamendo\\.com/[^/]+|(?:www\\.)?jamendo\\.com)/track/([0-9]+)(?:/([^/?#&]+))?" + }, + "jamendoalbum": { + "name": "jamendoalbum", + "type": "free", + "domains": [ + "jamendo.com" + ], + "regexps": [ + "https?://(?:www\\.)?jamendo\\.com/album/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?jamendo\\.com/album/([0-9]+)" + }, + "jeuxvideo": { + "name": "jeuxvideo", + "type": "free", + "domains": [ + "jeuxvideo.com" + ], + "regexps": [ + "https?://.*?\\.jeuxvideo\\.com/.*/(.*?)\\.htm" + ], + "regexp": "https?://.*?\\.jeuxvideo\\.com/.*/(.*?)\\.htm" + }, + "jiosaavn": { + "name": "jiosaavn", + "type": "free", + "domains": [ + "jiosaavn.com", + "saavn.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:jio)?saavn\\.com/album/[^/?#]+/([^/?#]+)", + "https?://(?:www\\.)?(?:jio)?saavn\\.com/artist/[^/?#]+/([^/?#]+)", + "https?://(?:www\\.)?(?:jio)?saavn\\.com/(?:s/playlist/(?:[^/?#]+/){2}|featured/[^/?#]+/)([^/?#]+)", + "https?://(?:www\\.)?(?:jio)?saavn\\.com/shows/[^/?#]+/([^/?#]{11,})/?(?:$|[?#])", + "https?://(?:www\\.)?(?:jio)?saavn\\.com/shows/([^#/?]+)/(\\d+)/[^/?#]+", + "https?://(?:www\\.)?(?:jio)?saavn\\.com(?:/song/[^/?#]+/|/s/song/(?:[^/?#]+/){3})([^/?#]+)" + ], + "regexp": "(https?://(?:www\\.)?(?:jio)?saavn\\.com/album/[^/?#]+/([^/?#]+))|(https?://(?:www\\.)?(?:jio)?saavn\\.com/artist/[^/?#]+/([^/?#]+))|(https?://(?:www\\.)?(?:jio)?saavn\\.com/(?:s/playlist/(?:[^/?#]+/){2}|featured/[^/?#]+/)([^/?#]+))|(https?://(?:www\\.)?(?:jio)?saavn\\.com/shows/[^/?#]+/([^/?#]{11,})/?(?:$|[?#]))|(https?://(?:www\\.)?(?:jio)?saavn\\.com/shows/([^#/?]+)/(\\d+)/[^/?#]+)|(https?://(?:www\\.)?(?:jio)?saavn\\.com(?:/song/[^/?#]+/|/s/song/(?:[^/?#]+/){3})([^/?#]+))" + }, + "joj": { + "name": "joj", + "type": "free", + "domains": [ + "media.joj.sk" + ], + "regexps": [ + "(?:joj:|https?://media\\.joj\\.sk/embed/)([^/?#^]+)" + ], + "regexp": "(?:joj:|https?://media\\.joj\\.sk/embed/)([^/?#^]+)" + }, + "jove": { + "name": "jove", + "type": "free", + "domains": [ + "jove.com" + ], + "regexps": [ + "https?://(?:www\\.)?jove\\.com/video/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?jove\\.com/video/([0-9]+)" + }, + "jstream": { + "name": "jstream", + "type": "free", + "domains": [], + "regexps": [ + "jstream:(www\\d+):(([a-z0-9]+):(\\d+))" + ], + "regexp": "jstream:(www\\d+):(([a-z0-9]+):(\\d+))" + }, + "jtbc": { + "name": "jtbc", + "type": "free", + "domains": [ + "tv.jtbc.co.kr", + "vod.jtbc.co.kr" + ], + "regexps": [ + "https?://(?:vod\\.jtbc\\.co\\.kr/player/(?:program|clip)|tv\\.jtbc\\.co\\.kr/(?:replay|trailer|clip)/pr\\d+/pm\\d+)/((?:ep|vo)\\d+)", + "https?://(?:vod\\.jtbc\\.co\\.kr/program|tv\\.jtbc\\.co\\.kr/replay)/(pr\\d+)/(?:replay|pm\\d+)/?(?:$|[?#])" + ], + "regexp": "(https?://(?:vod\\.jtbc\\.co\\.kr/player/(?:program|clip)|tv\\.jtbc\\.co\\.kr/(?:replay|trailer|clip)/pr\\d+/pm\\d+)/((?:ep|vo)\\d+))|(https?://(?:vod\\.jtbc\\.co\\.kr/program|tv\\.jtbc\\.co\\.kr/replay)/(pr\\d+)/(?:replay|pm\\d+)/?(?:$|[?#]))" + }, + "jwplatform": { + "name": "jwplatform", + "type": "free", + "domains": [ + "content.jwplatform.com", + "cdn.jwplayer.com" + ], + "regexps": [ + "(?:https?://(?:content\\.jwplatform|cdn\\.jwplayer)\\.com/(?:(?:feed|player|thumb|preview|manifest)s|jw6|v2/media)/|jwplatform:)([a-zA-Z0-9]{8})" + ], + "regexp": "(?:https?://(?:content\\.jwplatform|cdn\\.jwplayer)\\.com/(?:(?:feed|player|thumb|preview|manifest)s|jw6|v2/media)/|jwplatform:)([a-zA-Z0-9]{8})" + }, + "kakao": { + "name": "kakao", + "type": "free", + "domains": [ + "tv.kakao.com" + ], + "regexps": [ + "https?://(?:play-)?tv\\.kakao\\.com/(?:channel/\\d+|embed/player)/cliplink/(\\d+|[^?#&]+@my)" + ], + "regexp": "https?://(?:play-)?tv\\.kakao\\.com/(?:channel/\\d+|embed/player)/cliplink/(\\d+|[^?#&]+@my)" + }, + "kaltura": { + "name": "kaltura", + "type": "free", + "domains": [ + "kaltura.com", + "cdnapisec.kaltura.com" + ], + "regexps": [ + "(?:kaltura:(\\w+):(\\w+)(?::(\\w+))?|https?://(?:(?:www|cdnapi(?:sec)?)\\.)?kaltura\\.com(?::\\d+)?/(?:(?:index\\.php/(?:kwidget|extwidget/preview)|html5/html5lib/[^/]+/mwEmbedFrame\\.php))(?:/([^?]+))?(?:\\?(.*))?)" + ], + "regexp": "(?:kaltura:(\\w+):(\\w+)(?::(\\w+))?|https?://(?:(?:www|cdnapi(?:sec)?)\\.)?kaltura\\.com(?::\\d+)?/(?:(?:index\\.php/(?:kwidget|extwidget/preview)|html5/html5lib/[^/]+/mwEmbedFrame\\.php))(?:/([^?]+))?(?:\\?(.*))?)" + }, + "kankanews": { + "name": "kankanews", + "type": "free", + "domains": [ + "kankanews.com" + ], + "regexps": [ + "https?://(?:www\\.)?kankanews\\.com/a/\\d+\\-\\d+\\-\\d+/(\\d+)\\.shtml" + ], + "regexp": "https?://(?:www\\.)?kankanews\\.com/a/\\d+\\-\\d+\\-\\d+/(\\d+)\\.shtml" + }, + "karaoketv": { + "name": "karaoketv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?karaoketv\\.co\\.il/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?karaoketv\\.co\\.il/[^/]+/(\\d+)" + }, + "katsomo": { + "name": "katsomo", + "type": "free", + "domains": [ + "mtv.fi", + "katsomo.fi", + "mtvuutiset.fi" + ], + "regexps": [ + "https?://(?:www\\.)?(?:katsomo|mtv(uutiset)?)\\.fi/(?:sarja/[0-9a-z-]+-\\d+/[0-9a-z-]+-|(?:#!/)?jakso/(?:\\d+/[^/]+/)?|video/prog)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?(?:katsomo|mtv(uutiset)?)\\.fi/(?:sarja/[0-9a-z-]+-\\d+/[0-9a-z-]+-|(?:#!/)?jakso/(?:\\d+/[^/]+/)?|video/prog)(\\d+)" + }, + "kelbyone": { + "name": "kelbyone", + "type": "free", + "domains": [ + "members.kelbyone.com" + ], + "regexps": [ + "https?://members\\.kelbyone\\.com/course/([^$&?#/]+)" + ], + "regexp": "https?://members\\.kelbyone\\.com/course/([^$&?#/]+)" + }, + "kenh14playlist": { + "name": "kenh14playlist", + "type": "free", + "domains": [ + "video.kenh14.vn" + ], + "regexps": [ + "https?://video\\.kenh14\\.vn/playlist/[\\w-]+-([0-9]+)\\.chn" + ], + "regexp": "https?://video\\.kenh14\\.vn/playlist/[\\w-]+-([0-9]+)\\.chn" + }, + "kenh14video": { + "name": "kenh14video", + "type": "free", + "domains": [ + "video.kenh14.vn" + ], + "regexps": [ + "https?://video\\.kenh14\\.vn/(?:video/)?[\\w-]+-([0-9]+)\\.chn" + ], + "regexp": "https?://video\\.kenh14\\.vn/(?:video/)?[\\w-]+-([0-9]+)\\.chn" + }, + "khanacademy": { + "name": "khanacademy", + "type": "free", + "domains": [ + "khanacademy.org" + ], + "regexps": [ + "https?://(?:www\\.)?khanacademy\\.org/((?:[^/]+/){4}v/[^?#/&]+)", + "https?://(?:www\\.)?khanacademy\\.org/((?:[^/]+/){1,2}[^?#/&]+)/?(?:[?#&]|$)" + ], + "regexp": "(https?://(?:www\\.)?khanacademy\\.org/((?:[^/]+/){4}v/[^?#/&]+))|(https?://(?:www\\.)?khanacademy\\.org/((?:[^/]+/){1,2}[^?#/&]+)/?(?:[?#&]|$))" + }, + "kick": { + "name": "kick", + "type": "free", + "domains": [ + "kick.com" + ], + "regexps": [ + "https?://(?:www\\.)?kick\\.com/[\\w-]+(?:/clips/|/?\\?(?:[^#]+&)?clip=)(clip_[\\w-]+)", + "https?://(?:www\\.)?kick\\.com/(?!(?:video|categories|search|auth)(?:[/?#]|$))([\\w-]+)", + "https?://(?:www\\.)?kick\\.com/[\\w-]+/videos/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + ], + "regexp": "(https?://(?:www\\.)?kick\\.com/[\\w-]+(?:/clips/|/?\\?(?:[^#]+&)?clip=)(clip_[\\w-]+))|(https?://(?:www\\.)?kick\\.com/(?!(?:video|categories|search|auth)(?:[/?#]|$))([\\w-]+))|(https?://(?:www\\.)?kick\\.com/[\\w-]+/videos/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))" + }, + "kicker": { + "name": "kicker", + "type": "free", + "domains": [ + "kicker.de" + ], + "regexps": [ + "https?://(?:www\\.)kicker\\.(?:de)/([\\w-]+)/video" + ], + "regexp": "https?://(?:www\\.)kicker\\.(?:de)/([\\w-]+)/video" + }, + "kickstarter": { + "name": "kickstarter", + "type": "free", + "domains": [ + "kickstarter.com" + ], + "regexps": [ + "https?://(?:www\\.)?kickstarter\\.com/projects/([^/]*)/.*" + ], + "regexp": "https?://(?:www\\.)?kickstarter\\.com/projects/([^/]*)/.*" + }, + "kika": { + "name": "kika", + "type": "free", + "domains": [ + "kika.de" + ], + "regexps": [ + "https?://(?:www\\.)?kika\\.de/[\\w/-]+/videos/([a-z-]+\\d+)" + ], + "regexp": "https?://(?:www\\.)?kika\\.de/[\\w/-]+/videos/([a-z-]+\\d+)" + }, + "kikaplaylist": { + "name": "kikaplaylist", + "type": "free", + "domains": [ + "kika.de" + ], + "regexps": [ + "https?://(?:www\\.)?kika\\.de/[\\w-]+/([a-z-]+\\d+)" + ], + "regexp": "https?://(?:www\\.)?kika\\.de/[\\w-]+/([a-z-]+\\d+)" + }, + "kinja": { + "name": "kinja", + "type": "free", + "domains": [ + "kinja.com" + ], + "regexps": [ + "https?://(?:[^.]+\\.)?(?:avclub|clickhole|deadspin|gizmodo|jalopnik|jezebel|kinja|kotaku|lifehacker|splinternews|the(?:inventory|onion|root|takeout))\\.com/(?:ajax/inset|embed/video)/iframe\\?.*?\\bid=(fb|imgur|instagram|jwp(?:layer)?-video|kinjavideo|mcp|megaphone|soundcloud(?:-playlist)?|tumblr-post|twitch-stream|twitter|ustream-channel|vimeo|vine|youtube-(?:list|video))-([^&]+)" + ], + "regexp": "https?://(?:[^.]+\\.)?(?:avclub|clickhole|deadspin|gizmodo|jalopnik|jezebel|kinja|kotaku|lifehacker|splinternews|the(?:inventory|onion|root|takeout))\\.com/(?:ajax/inset|embed/video)/iframe\\?.*?\\bid=(fb|imgur|instagram|jwp(?:layer)?-video|kinjavideo|mcp|megaphone|soundcloud(?:-playlist)?|tumblr-post|twitch-stream|twitter|ustream-channel|vimeo|vine|youtube-(?:list|video))-([^&]+)" + }, + "kinopoisk": { + "name": "kinopoisk", + "type": "free", + "domains": [ + "kinopoisk.ru" + ], + "regexps": [ + "https?://(?:www\\.)?kinopoisk\\.ru/film/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?kinopoisk\\.ru/film/(\\d+)" + }, + "kommunetv": { + "name": "kommunetv", + "type": "free", + "domains": [], + "regexps": [ + "https?://\\w+\\.kommunetv\\.no/archive/(\\w+)" + ], + "regexp": "https?://\\w+\\.kommunetv\\.no/archive/(\\w+)" + }, + "kompasvideo": { + "name": "kompasvideo", + "type": "free", + "domains": [ + "video.kompas.com" + ], + "regexps": [ + "https?://video\\.kompas\\.com/\\w+/(\\d+)/([\\w-]+)" + ], + "regexp": "https?://video\\.kompas\\.com/\\w+/(\\d+)/([\\w-]+)" + }, + "koo": { + "name": "koo", + "type": "free", + "domains": [ + "kooapp.com" + ], + "regexps": [ + "https?://(?:www\\.)?kooapp\\.com/koo/[^/]+/([^/&#$?]+)" + ], + "regexp": "https?://(?:www\\.)?kooapp\\.com/koo/[^/]+/([^/&#$?]+)" + }, + "krasview": { + "name": "krasview", + "type": "free", + "domains": [], + "regexps": [ + "https?://krasview\\.ru/(?:video|embed)/(\\d+)" + ], + "regexp": "https?://krasview\\.ru/(?:video|embed)/(\\d+)" + }, + "kth": { + "name": "kth", + "type": "free", + "domains": [], + "regexps": [ + "https?://play\\.kth\\.se/(?:[^/]+/)+([a-z0-9_]+)" + ], + "regexp": "https?://play\\.kth\\.se/(?:[^/]+/)+([a-z0-9_]+)" + }, + "ku6": { + "name": "ku6", + "type": "free", + "domains": [], + "regexps": [ + "https?://v\\.ku6\\.com/show/([a-zA-Z0-9\\-\\_]+)(?:\\.)*html" + ], + "regexp": "https?://v\\.ku6\\.com/show/([a-zA-Z0-9\\-\\_]+)(?:\\.)*html" + }, + "kukululive": { + "name": "kukululive", + "type": "free", + "domains": [ + "live.erinn.biz" + ], + "regexps": [ + "https?://live\\.erinn\\.biz/live\\.php\\?h(\\d+)" + ], + "regexp": "https?://live\\.erinn\\.biz/live\\.php\\?h(\\d+)" + }, + "kuwo": { + "name": "kuwo", + "type": "free", + "domains": [ + "kuwo.cn" + ], + "regexps": [ + "https?://(?:www\\.)?kuwo\\.cn/album/(\\d+?)/", + "https?://yinyue\\.kuwo\\.cn/yy/cinfo_(\\d+?).htm", + "https?://yinyue\\.kuwo\\.cn/billboard_([^.]+).htm", + "https?://(?:www\\.)?kuwo\\.cn/yinyue/(\\d+)", + "https?://(?:www\\.)?kuwo\\.cn/mv/(\\d+?)/", + "https?://(?:www\\.)?kuwo\\.cn/mingxing/([^/]+)" + ], + "regexp": "(https?://(?:www\\.)?kuwo\\.cn/album/(\\d+?)/)|(https?://yinyue\\.kuwo\\.cn/yy/cinfo_(\\d+?).htm)|(https?://yinyue\\.kuwo\\.cn/billboard_([^.]+).htm)|(https?://(?:www\\.)?kuwo\\.cn/yinyue/(\\d+))|(https?://(?:www\\.)?kuwo\\.cn/mv/(\\d+?)/)|(https?://(?:www\\.)?kuwo\\.cn/mingxing/([^/]+))" + }, + "la7.it": { + "name": "la7.it", + "type": "free", + "domains": [ + "la7.it" + ], + "regexps": [ + "https?://(?:(?:www\\.)?la7\\.it/([^/]+)/(?:rivedila7|video|news)/|tg\\.la7\\.it/repliche-tgla7\\?id=)(.+)", + "https?://(?:www\\.)?la7\\.it/[^/]+/podcast/([^/]+-)?(\\d+)", + "https?://(?:www\\.)?la7\\.it/([^/]+)/podcast/?(?:$|[#?])" + ], + "regexp": "(https?://(?:(?:www\\.)?la7\\.it/([^/]+)/(?:rivedila7|video|news)/|tg\\.la7\\.it/repliche-tgla7\\?id=)(.+))|(https?://(?:www\\.)?la7\\.it/[^/]+/podcast/([^/]+-)?(\\d+))|(https?://(?:www\\.)?la7\\.it/([^/]+)/podcast/?(?:$|[#?]))" + }, + "laracasts": { + "name": "laracasts", + "type": "free", + "domains": [ + "laracasts.com" + ], + "regexps": [ + "https?://(?:www\\.)?laracasts\\.com/series/([\\w-]+/episodes/\\d+)/?(?:[?#]|$)", + "https?://(?:www\\.)?laracasts\\.com/series/([\\w-]+)/?(?:[?#]|$)" + ], + "regexp": "(https?://(?:www\\.)?laracasts\\.com/series/([\\w-]+/episodes/\\d+)/?(?:[?#]|$))|(https?://(?:www\\.)?laracasts\\.com/series/([\\w-]+)/?(?:[?#]|$))" + }, + "lastfm": { + "name": "lastfm", + "type": "free", + "domains": [ + "last.fm" + ], + "regexps": [ + "https?://(?:www\\.)?last\\.fm/music(?:/[^/]+){2}/([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?last\\.fm/music(?:/[^/]+){2}/([^/#?]+)" + }, + "lastfmplaylist": { + "name": "lastfmplaylist", + "type": "free", + "domains": [ + "last.fm" + ], + "regexps": [ + "https?://(?:www\\.)?last\\.fm/(music|tag)/([^/]+)(?:/[^/]+)?/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?last\\.fm/(music|tag)/([^/]+)(?:/[^/]+)?/?(?:[?#]|$)" + }, + "lastfmuser": { + "name": "lastfmuser", + "type": "free", + "domains": [ + "last.fm" + ], + "regexps": [ + "https?://(?:www\\.)?last\\.fm/user/[^/]+/playlists/([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?last\\.fm/user/[^/]+/playlists/([^/#?]+)" + }, + "laxarxames": { + "name": "laxarxames", + "type": "free", + "domains": [ + "laxarxames.cat" + ], + "regexps": [ + "https?://(?:www\\.)?laxarxames\\.cat/(?:[^/?#]+/)*?(player|movie-details)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?laxarxames\\.cat/(?:[^/?#]+/)*?(player|movie-details)/(\\d+)" + }, + "lbry": { + "name": "lbry", + "type": "free", + "domains": [ + "lbry.tv", + "lbry", + "odysee.com" + ], + "regexps": [ + "(?:https?://(?:www\\.)?(?:lbry\\.tv|odysee\\.com)/|lbry://)(@[^$@:/?#&]+(?:[:#][0-9a-f]{1,40})?)/?(?:[?&]|$)", + "(?:https?://(?:www\\.)?(?:lbry\\.tv|odysee\\.com)/|lbry://)(?:\\$/(?:download|embed)/)?([^$@:/?#]+/[0-9a-f]{1,40}|(?:@[^$@:/?#&]+(?:[:#][0-9a-f]{1,40})?/)?[^$@:/?#&]+(?:[:#][0-9a-f]{1,40})?)", + "(?:https?://(?:www\\.)?(?:lbry\\.tv|odysee\\.com)/|lbry://)\\$/(?:play)?list/([0-9a-f-]+)" + ], + "regexp": "((?:https?://(?:www\\.)?(?:lbry\\.tv|odysee\\.com)/|lbry://)(@[^$@:/?#&]+(?:[:#][0-9a-f]{1,40})?)/?(?:[?&]|$))|((?:https?://(?:www\\.)?(?:lbry\\.tv|odysee\\.com)/|lbry://)(?:\\$/(?:download|embed)/)?([^$@:/?#]+/[0-9a-f]{1,40}|(?:@[^$@:/?#&]+(?:[:#][0-9a-f]{1,40})?/)?[^$@:/?#&]+(?:[:#][0-9a-f]{1,40})?))|((?:https?://(?:www\\.)?(?:lbry\\.tv|odysee\\.com)/|lbry://)\\$/(?:play)?list/([0-9a-f-]+))" + }, + "lci": { + "name": "lci", + "type": "free", + "domains": [ + "tf1info.fr", + "lci.fr" + ], + "regexps": [ + "https?://(?:www\\.)?(?:lci|tf1info)\\.fr/(?:[^/?#]+/)+[\\w-]+-(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?(?:lci|tf1info)\\.fr/(?:[^/?#]+/)+[\\w-]+-(\\d+)\\.html" + }, + "lcp": { + "name": "lcp", + "type": "free", + "domains": [ + "lcp.fr" + ], + "regexps": [ + "https?://(?:www\\.)?lcp\\.fr/(?:[^/]+/)*([^/]+)" + ], + "regexp": "https?://(?:www\\.)?lcp\\.fr/(?:[^/]+/)*([^/]+)" + }, + "lcpplay": { + "name": "lcpplay", + "type": "free", + "domains": [ + "play.lcp.fr" + ], + "regexps": [ + "https?://play\\.lcp\\.fr/embed/([^/]+)/([^/]+)/[^/]+/[^/]+" + ], + "regexp": "https?://play\\.lcp\\.fr/embed/([^/]+)/([^/]+)/[^/]+/[^/]+" + }, + "le": { + "name": "le", + "type": "free", + "domains": [ + "le.com", + "sports.le.com", + "lesports.com" + ], + "regexps": [ + "https?://(?:www\\.le\\.com/ptv/vplay|(?:sports\\.le|(?:www\\.)?lesports)\\.com/(?:match|video))/(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.le\\.com/ptv/vplay|(?:sports\\.le|(?:www\\.)?lesports)\\.com/(?:match|video))/(\\d+)\\.html" + }, + "learningonscreen": { + "name": "learningonscreen", + "type": "free", + "domains": [ + "learningonscreen.ac.uk" + ], + "regexps": [ + "https?://learningonscreen\\.ac\\.uk/ondemand/index\\.php/prog/(\\w+)" + ], + "regexp": "https?://learningonscreen\\.ac\\.uk/ondemand/index\\.php/prog/(\\w+)" + }, + "lecture2go": { + "name": "lecture2go", + "type": "free", + "domains": [], + "regexps": [ + "https?://lecture2go\\.uni-hamburg\\.de/veranstaltungen/-/v/(\\d+)" + ], + "regexp": "https?://lecture2go\\.uni-hamburg\\.de/veranstaltungen/-/v/(\\d+)" + }, + "lecturio": { + "name": "lecturio", + "type": "free", + "domains": [ + "app.lecturio.com", + "lecturio.de" + ], + "regexps": [ + "https://(?:app\\.lecturio\\.com/([^/?#]+/([^/?#&]+)\\.lecture|(?:\\#/)?lecture/c/\\d+/(\\d+))|(?:www\\.)?lecturio\\.de/(?:[^/?#]+/)+([^/?#&]+)\\.vortrag)" + ], + "regexp": "https://(?:app\\.lecturio\\.com/([^/?#]+/([^/?#&]+)\\.lecture|(?:\\#/)?lecture/c/\\d+/(\\d+))|(?:www\\.)?lecturio\\.de/(?:[^/?#]+/)+([^/?#&]+)\\.vortrag)" + }, + "lecturiocourse": { + "name": "lecturiocourse", + "type": "free", + "domains": [ + "app.lecturio.com" + ], + "regexps": [ + "https?://app\\.lecturio\\.com/(?:[^/]+/([^/?#&]+)\\.course|(?:#/)?course/c/(\\d+))" + ], + "regexp": "https?://app\\.lecturio\\.com/(?:[^/]+/([^/?#&]+)\\.course|(?:#/)?course/c/(\\d+))" + }, + "lecturiodecourse": { + "name": "lecturiodecourse", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?lecturio\\.de/[^/]+/([^/?#&]+)\\.kurs" + ], + "regexp": "https?://(?:www\\.)?lecturio\\.de/[^/]+/([^/?#&]+)\\.kurs" + }, + "lefigarovideoembed": { + "name": "lefigarovideoembed", + "type": "free", + "domains": [ + "video.lefigaro.fr" + ], + "regexps": [ + "https?://video\\.lefigaro\\.fr/embed/[^?#]+/([\\w-]+)" + ], + "regexp": "https?://video\\.lefigaro\\.fr/embed/[^?#]+/([\\w-]+)" + }, + "lefigarovideosection": { + "name": "lefigarovideosection", + "type": "free", + "domains": [ + "video.lefigaro.fr" + ], + "regexps": [ + "https?://video\\.lefigaro\\.fr/figaro/([\\w-]+)/?(?:[#?]|$)" + ], + "regexp": "https?://video\\.lefigaro\\.fr/figaro/([\\w-]+)/?(?:[#?]|$)" + }, + "lego": { + "name": "lego", + "type": "free", + "domains": [ + "lego.com" + ], + "regexps": [ + "https?://(?:www\\.)?lego\\.com/([a-z]{2}-[a-z]{2})/(?:[^/]+/)*videos/(?:[^/]+/)*[^/?#]+-([0-9a-f]{32})" + ], + "regexp": "https?://(?:www\\.)?lego\\.com/([a-z]{2}-[a-z]{2})/(?:[^/]+/)*videos/(?:[^/]+/)*[^/?#]+-([0-9a-f]{32})" + }, + "lemonde": { + "name": "lemonde", + "type": "free", + "domains": [ + "lemonde.fr", + "redaction.actu.lemonde.fr" + ], + "regexps": [ + "https?://(?:.+?\\.)?lemonde\\.fr/(?:[^/]+/)*([^/]+)\\.html" + ], + "regexp": "https?://(?:.+?\\.)?lemonde\\.fr/(?:[^/]+/)*([^/]+)\\.html" + }, + "lenta": { + "name": "lenta", + "type": "free", + "domains": [ + "lenta.ru" + ], + "regexps": [ + "https?://(?:www\\.)?lenta\\.ru/[^/]+/\\d+/\\d+/\\d+/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?lenta\\.ru/[^/]+/\\d+/\\d+/\\d+/([^/?#&]+)" + }, + "leplaylist": { + "name": "leplaylist", + "type": "free", + "domains": [ + "le.com", + "tv.le.com", + "list.le.com" + ], + "regexps": [ + "https?://[a-z]+\\.le\\.com/(?!video)[a-z]+/([a-z0-9_]+)" + ], + "regexp": "https?://[a-z]+\\.le\\.com/(?!video)[a-z]+/([a-z0-9_]+)" + }, + "letvcloud": { + "name": "letvcloud", + "type": "free", + "domains": [ + "yuntv.letv.com" + ], + "regexps": [ + "https?://yuntv\\.letv\\.com/bcloud.html\\?.+" + ], + "regexp": "https?://yuntv\\.letv\\.com/bcloud.html\\?.+" + }, + "libsyn": { + "name": "libsyn", + "type": "free", + "domains": [ + "html5-player.libsyn.com" + ], + "regexps": [ + "(https?://html5-player\\.libsyn\\.com/embed/episode/id/([0-9]+))" + ], + "regexp": "(https?://html5-player\\.libsyn\\.com/embed/episode/id/([0-9]+))" + }, + "life": { + "name": "life", + "type": "free", + "domains": [ + "embed.life.ru", + "life.ru" + ], + "regexps": [ + "https?://embed\\.life\\.ru/(?:embed|video)/([\\da-f]{32})", + "https?://life\\.ru/t/[^/]+/(\\d+)" + ], + "regexp": "(https?://embed\\.life\\.ru/(?:embed|video)/([\\da-f]{32}))|(https?://life\\.ru/t/[^/]+/(\\d+))" + }, + "likee": { + "name": "likee", + "type": "free", + "domains": [ + "likee.video" + ], + "regexps": [ + "https?://(www\\.)?likee\\.video/(?:([^/]+)/video/|v/)(\\w+)", + "https?://(www\\.)?likee\\.video/([^/]+)/?$" + ], + "regexp": "(https?://(www\\.)?likee\\.video/(?:([^/]+)/video/|v/)(\\w+))|(https?://(www\\.)?likee\\.video/([^/]+)/?$)" + }, + "linkedin": { + "name": "linkedin", + "type": "free", + "domains": [ + "linkedin.com" + ], + "regexps": [ + "https?://(?:www\\.)?linkedin\\.com/events/([\\w-]+)", + "https?://(?:www\\.)?linkedin\\.com/posts/[^/?#]+-(\\d+)-\\w{4}/?(?:[?#]|$)", + "https?://(?:www\\.)?linkedin\\.com/feed/update/urn:li:activity:(\\d+)", + "https?://(?:www\\.)?linkedin\\.com/learning/([^/?#]+)", + "https?://(?:www\\.)?linkedin\\.com/learning/([^/]+)/([^/?#]+)" + ], + "regexp": "(https?://(?:www\\.)?linkedin\\.com/events/([\\w-]+))|(https?://(?:www\\.)?linkedin\\.com/posts/[^/?#]+-(\\d+)-\\w{4}/?(?:[?#]|$))|(https?://(?:www\\.)?linkedin\\.com/feed/update/urn:li:activity:(\\d+))|(https?://(?:www\\.)?linkedin\\.com/learning/([^/?#]+))|(https?://(?:www\\.)?linkedin\\.com/learning/([^/]+)/([^/?#]+))" + }, + "liputan6": { + "name": "liputan6", + "type": "free", + "domains": [ + "liputan6.com" + ], + "regexps": [ + "https?://www\\.liputan6\\.com/\\w+/read/\\d+/([\\w-]+)" + ], + "regexp": "https?://www\\.liputan6\\.com/\\w+/read/\\d+/([\\w-]+)" + }, + "listennotes": { + "name": "listennotes", + "type": "free", + "domains": [ + "listennotes.com" + ], + "regexps": [ + "https?://(?:www\\.)?listennotes\\.com/podcasts/[^/]+/[^/]+-(.+)/" + ], + "regexp": "https?://(?:www\\.)?listennotes\\.com/podcasts/[^/]+/[^/]+-(.+)/" + }, + "litv": { + "name": "litv", + "type": "free", + "domains": [ + "litv.tv" + ], + "regexps": [ + "https?://(?:www\\.)?litv\\.tv/(?:[^/?#]+/watch/|vod/[^/?#]+/content\\.do\\?content_id=)([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?litv\\.tv/(?:[^/?#]+/watch/|vod/[^/?#]+/content\\.do\\?content_id=)([\\w-]+)" + }, + "livejournal": { + "name": "livejournal", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:[^.]+\\.)?livejournal\\.com/video/album/\\d+.+?\\bid=(\\d+)" + ], + "regexp": "https?://(?:[^.]+\\.)?livejournal\\.com/video/album/\\d+.+?\\bid=(\\d+)" + }, + "livestream": { + "name": "livestream", + "type": "free", + "domains": [ + "new.livestream.com", + "livestream.com", + "original.livestream.com" + ], + "regexps": [ + "https?://(?:new\\.)?livestream\\.com/(?:accounts/(\\d+)|([^/]+))(?:/events/(\\d+)|/([^/]+))?(?:/videos/(\\d+))?", + "https?://original\\.livestream\\.com/([^/\\?#]+)(?:/(video|folder)(?:(?:\\?.*?Id=|/)(.*?)(&|$))?)?" + ], + "regexp": "(https?://(?:new\\.)?livestream\\.com/(?:accounts/(\\d+)|([^/]+))(?:/events/(\\d+)|/([^/]+))?(?:/videos/(\\d+))?)|(https?://original\\.livestream\\.com/([^/\\?#]+)(?:/(video|folder)(?:(?:\\?.*?Id=|/)(.*?)(&|$))?)?)" + }, + "livestreamfails": { + "name": "livestreamfails", + "type": "free", + "domains": [ + "livestreamfails.com" + ], + "regexps": [ + "https?://(?:www\\.)?livestreamfails\\.com/(?:clip|post)/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?livestreamfails\\.com/(?:clip|post)/([0-9]+)" + }, + "lnk": { + "name": "lnk", + "type": "free", + "domains": [ + "lnk.lt" + ], + "regexps": [ + "https?://(?:www\\.)?lnk\\.lt/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?lnk\\.lt/[^/]+/(\\d+)" + }, + "loc": { + "name": "loc", + "type": "free", + "domains": [ + "loc.gov" + ], + "regexps": [ + "https?://(?:www\\.)?loc\\.gov/(?:item/|today/cyberlc/feature_wdesc\\.php\\?.*\\brec=)([0-9a-z_.]+)" + ], + "regexp": "https?://(?:www\\.)?loc\\.gov/(?:item/|today/cyberlc/feature_wdesc\\.php\\?.*\\brec=)([0-9a-z_.]+)" + }, + "loco": { + "name": "loco", + "type": "free", + "domains": [ + "loco.com" + ], + "regexps": [ + "https?://(?:www\\.)?loco\\.com/(streamers|stream)/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?loco\\.com/(streamers|stream)/([^/?#]+)" + }, + "loom": { + "name": "loom", + "type": "free", + "domains": [ + "loom.com" + ], + "regexps": [ + "https?://(?:www\\.)?loom\\.com/share/folder/([\\da-f]{32})", + "https?://(?:www\\.)?loom\\.com/(?:share|embed)/([\\da-f]{32})" + ], + "regexp": "(https?://(?:www\\.)?loom\\.com/share/folder/([\\da-f]{32}))|(https?://(?:www\\.)?loom\\.com/(?:share|embed)/([\\da-f]{32}))" + }, + "lovehomeporn": { + "name": "lovehomeporn", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?lovehomeporn\\.com/video/(\\d+)(?:/([^/?#&]+))?" + ], + "regexp": "https?://(?:www\\.)?lovehomeporn\\.com/video/(\\d+)(?:/([^/?#&]+))?" + }, + "lrtradio": { + "name": "lrtradio", + "type": "free", + "domains": [ + "lrt.lt" + ], + "regexps": [ + "https?://(?:www\\.)?lrt\\.lt/radioteka/irasas/(\\d+)/([^?#/]+)" + ], + "regexp": "https?://(?:www\\.)?lrt\\.lt/radioteka/irasas/(\\d+)/([^?#/]+)" + }, + "lrtstream": { + "name": "lrtstream", + "type": "free", + "domains": [ + "lrt.lt" + ], + "regexps": [ + "https?://(?:www\\.)?lrt\\.lt/mediateka/tiesiogiai/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?lrt\\.lt/mediateka/tiesiogiai/([\\w-]+)" + }, + "lrtvod": { + "name": "lrtvod", + "type": "free", + "domains": [ + "lrt.lt", + "archyvai.lrt.lt" + ], + "regexps": [ + "https?://(?:(?:www|archyvai)\\.)?lrt\\.lt/mediateka/irasas/([0-9]+)", + "https?://(?:(?:www|archyvai)\\.)?lrt\\.lt/mediateka/video/[^?#]+\\?(?:[^#]*&)?episode=([0-9]+)" + ], + "regexp": "(https?://(?:(?:www|archyvai)\\.)?lrt\\.lt/mediateka/irasas/([0-9]+))|(https?://(?:(?:www|archyvai)\\.)?lrt\\.lt/mediateka/video/[^?#]+\\?(?:[^#]*&)?episode=([0-9]+))" + }, + "lsmlrembed": { + "name": "lsmlrembed", + "type": "free", + "domains": [ + "latvijasradio.lsm.lv", + "radioteatris.lsm.lv", + "lr1.lsm.lv", + "lr2.lsm.lv", + "klasika.lsm.lv", + "lr4.lsm.lv", + "pieci.lv", + "naba.lsm.lv" + ], + "regexps": [ + "https?://(?:(?:latvijasradio|lr1|lr2|klasika|lr4|naba|radioteatris)\\.lsm|pieci)\\.lv/[^/?#]+/(?:pleijeris|embed)/?\\?(?:[^#]+&)?(?:show|id)=(\\d+)" + ], + "regexp": "https?://(?:(?:latvijasradio|lr1|lr2|klasika|lr4|naba|radioteatris)\\.lsm|pieci)\\.lv/[^/?#]+/(?:pleijeris|embed)/?\\?(?:[^#]+&)?(?:show|id)=(\\d+)" + }, + "lsmltvembed": { + "name": "lsmltvembed", + "type": "free", + "domains": [ + "ltv.lsm.lv" + ], + "regexps": [ + "https?://ltv\\.lsm\\.lv/embed\\?(?:[^#]+&)?c=([^#&]+)" + ], + "regexp": "https?://ltv\\.lsm\\.lv/embed\\?(?:[^#]+&)?c=([^#&]+)" + }, + "lsmreplay": { + "name": "lsmreplay", + "type": "free", + "domains": [ + "replay.lsm.lv" + ], + "regexps": [ + "https?://replay\\.lsm\\.lv/[^/?#]+/(?:skaties/|klausies/)?(?:ieraksts|statja)/[^/?#]+/(\\d+)" + ], + "regexp": "https?://replay\\.lsm\\.lv/[^/?#]+/(?:skaties/|klausies/)?(?:ieraksts|statja)/[^/?#]+/(\\d+)" + }, + "lumni": { + "name": "lumni", + "type": "free", + "domains": [ + "lumni.fr" + ], + "regexps": [ + "https?://(?:www\\.)?lumni\\.fr/video/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?lumni\\.fr/video/([\\w-]+)" + }, + "lynda": { + "name": "lynda", + "type": "free", + "domains": [ + "lynda.com", + "educourse.ga" + ], + "regexps": [ + "https?://(?:www|m)\\.(?:lynda\\.com|educourse\\.ga)/((?:[^/]+/){2,3}(\\d+))-2\\.html", + "https?://(?:www\\.)?(?:lynda\\.com|educourse\\.ga)/(?:(?:[^/]+/){2,3}(\\d+)|player/embed)/(\\d+)" + ], + "regexp": "(https?://(?:www|m)\\.(?:lynda\\.com|educourse\\.ga)/((?:[^/]+/){2,3}(\\d+))-2\\.html)|(https?://(?:www\\.)?(?:lynda\\.com|educourse\\.ga)/(?:(?:[^/]+/){2,3}(\\d+)|player/embed)/(\\d+))" + }, + "maariv.co.il": { + "name": "maariv.co.il", + "type": "free", + "domains": [ + "player.maariv.co.il" + ], + "regexps": [ + "https?://player\\.maariv\\.co\\.il/public/player\\.html\\?(?:[^#]+&)?media=(\\d+)" + ], + "regexp": "https?://player\\.maariv\\.co\\.il/public/player\\.html\\?(?:[^#]+&)?media=(\\d+)" + }, + "magellantv": { + "name": "magellantv", + "type": "free", + "domains": [ + "magellantv.com" + ], + "regexps": [ + "https?://(?:www\\.)?magellantv\\.com/(?:watch|video)/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?magellantv\\.com/(?:watch|video)/([\\w-]+)" + }, + "magentamusik": { + "name": "magentamusik", + "type": "free", + "domains": [ + "magentamusik.de" + ], + "regexps": [ + "https?://(?:www\\.)?magentamusik\\.de/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?magentamusik\\.de/([^/?#]+)" + }, + "mailru": { + "name": "mailru", + "type": "free", + "domains": [ + "my.mail.ru", + "m.my.mail.ru", + "videoapi.my.mail.ru" + ], + "regexps": [ + "https?://(?:(?:www|m|videoapi)\\.)?my\\.mail\\.ru/+(?:video/.*\\#video=/?((?:[^/]+/){3}\\d+)|(?:videos/embed/)?(?:((?:[^/]+/+){2})(?:video/(?:embed/)?)?([^/]+/\\d+))(?:\\.html)?|(?:video/embed|\\+/video/meta)/(\\d+))", + "https?://my\\.mail\\.ru/+music/+songs/+[^/?#&]+-([\\da-f]+)", + "https?://my\\.mail\\.ru/+music/+search/+([^/?#&]+)" + ], + "regexp": "(https?://(?:(?:www|m|videoapi)\\.)?my\\.mail\\.ru/+(?:video/.*\\#video=/?((?:[^/]+/){3}\\d+)|(?:videos/embed/)?(?:((?:[^/]+/+){2})(?:video/(?:embed/)?)?([^/]+/\\d+))(?:\\.html)?|(?:video/embed|\\+/video/meta)/(\\d+)))|(https?://my\\.mail\\.ru/+music/+songs/+[^/?#&]+-([\\da-f]+))|(https?://my\\.mail\\.ru/+music/+search/+([^/?#&]+))" + }, + "mainstreaming": { + "name": "mainstreaming", + "type": "free", + "domains": [ + "webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net", + "webtools-859c1818ed614cc5b0047439470927b0.msvdn.net", + "webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net", + "f5842579ff984c1c98d63b8d789673eb.msvdn.net", + "webtools.msvdn.net", + "859c1818ed614cc5b0047439470927b0.msvdn.net" + ], + "regexps": [ + "https?://(?:webtools-?)?([A-Za-z0-9-]*\\.msvdn\\.net)/(?:embed|amp_embed|content)/(\\w+)" + ], + "regexp": "https?://(?:webtools-?)?([A-Za-z0-9-]*\\.msvdn\\.net)/(?:embed|amp_embed|content)/(\\w+)" + }, + "mangomolo": { + "name": "mangomolo", + "type": "free", + "domains": [], + "regexps": [ + "(?:https?:)?//(?:admin\\.mangomolo\\.com/analytics/index\\.php/customers/embed/|player\\.mangomolo\\.com/v1/)(?:live|index)\\?.*?\\bchannelid=((?:[A-Za-z0-9+/=]|%2B|%2F|%3D)+)", + "(?:https?:)?//(?:admin\\.mangomolo\\.com/analytics/index\\.php/customers/embed/|player\\.mangomolo\\.com/v1/)video\\?.*?\\bid=(\\d+)" + ], + "regexp": "((?:https?:)?//(?:admin\\.mangomolo\\.com/analytics/index\\.php/customers/embed/|player\\.mangomolo\\.com/v1/)(?:live|index)\\?.*?\\bchannelid=((?:[A-Za-z0-9+/=]|%2B|%2F|%3D)+))|((?:https?:)?//(?:admin\\.mangomolo\\.com/analytics/index\\.php/customers/embed/|player\\.mangomolo\\.com/v1/)video\\?.*?\\bid=(\\d+))" + }, + "mangotv": { + "name": "mangotv", + "type": "free", + "domains": [ + "mgtv.com", + "w.mgtv.com" + ], + "regexps": [ + "https?://(?:w(?:ww)?\\.)?mgtv\\.com/[bv]/(?:[^/]+/)*(\\d+)\\.html" + ], + "regexp": "https?://(?:w(?:ww)?\\.)?mgtv\\.com/[bv]/(?:[^/]+/)*(\\d+)\\.html" + }, + "manototv": { + "name": "manototv", + "type": "free", + "domains": [ + "manototv.com" + ], + "regexps": [ + "https?://(?:www\\.)?manototv\\.com/episode/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?manototv\\.com/episode/([0-9]+)" + }, + "manototvlive": { + "name": "manototvlive", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?manototv\\.com/live/" + ], + "regexp": "https?://(?:www\\.)?manototv\\.com/live/" + }, + "manototvshow": { + "name": "manototvshow", + "type": "free", + "domains": [ + "manototv.com" + ], + "regexps": [ + "https?://(?:www\\.)?manototv\\.com/show/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?manototv\\.com/show/([0-9]+)" + }, + "manyvids": { + "name": "manyvids", + "type": "free", + "domains": [ + "manyvids.com" + ], + "regexps": [ + "(?i)https?://(?:www\\.)?manyvids\\.com/video/(\\d+)" + ], + "regexp": "(?i)https?://(?:www\\.)?manyvids\\.com/video/(\\d+)" + }, + "maoritv": { + "name": "maoritv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?maoritelevision\\.com/shows/(?:[^/]+/)+([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?maoritelevision\\.com/shows/(?:[^/]+/)+([^/?&#]+)" + }, + "markiza": { + "name": "markiza", + "type": "free", + "domains": [ + "videoarchiv.markiza.sk" + ], + "regexps": [ + "https?://(?:www\\.)?videoarchiv\\.markiza\\.sk/(?:video/(?:[^/]+/)*|embed/)(\\d+)(?:[_/]|$)" + ], + "regexp": "https?://(?:www\\.)?videoarchiv\\.markiza\\.sk/(?:video/(?:[^/]+/)*|embed/)(\\d+)(?:[_/]|$)" + }, + "markizapage": { + "name": "markizapage", + "type": "free", + "domains": [ + "markiza.sk", + "dajto.markiza.sk", + "superstar.markiza.sk", + "hybsa.markiza.sk", + "doma.markiza.sk", + "tvnoviny.sk" + ], + "regexps": [ + "https?://(?:www\\.)?(?:(?:[^/]+\\.)?markiza|tvnoviny)\\.sk/(?:[^/]+/)*(\\d+)_" + ], + "regexp": "https?://(?:www\\.)?(?:(?:[^/]+\\.)?markiza|tvnoviny)\\.sk/(?:[^/]+/)*(\\d+)_" + }, + "massengeschmack.tv": { + "name": "massengeschmack.tv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?massengeschmack\\.tv/play/([^?&#]+)" + ], + "regexp": "https?://(?:www\\.)?massengeschmack\\.tv/play/([^?&#]+)" + }, + "masters": { + "name": "masters", + "type": "free", + "domains": [ + "masters.com" + ], + "regexps": [ + "https?://(?:www\\.)?masters\\.com/en_US/watch/(\\d{4}-\\d{2}-\\d{2})/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?masters\\.com/en_US/watch/(\\d{4}-\\d{2}-\\d{2})/(\\d+)" + }, + "matchtv": { + "name": "matchtv", + "type": "free", + "domains": [ + "matchtv.ru", + "video.matchtv.ru" + ], + "regexps": [ + "https?://matchtv\\.ru/on-air/?(?:$|[?#])", + "https?://video\\.matchtv\\.ru/iframe/channel/106/?(?:$|[?#])" + ], + "regexp": "(https?://matchtv\\.ru/on-air/?(?:$|[?#]))|(https?://video\\.matchtv\\.ru/iframe/channel/106/?(?:$|[?#]))" + }, + "mave": { + "name": "mave", + "type": "free", + "domains": [ + "budem.mave.digital", + "ochenlichnoe.mave.digital", + "geekcity.mave.digital" + ], + "regexps": [ + "https?://([\\w-]+)\\.mave\\.digital/?(?:$|[?#])", + "https?://([\\w-]+)\\.mave\\.digital/ep-(\\d+)" + ], + "regexp": "(https?://([\\w-]+)\\.mave\\.digital/?(?:$|[?#]))|(https?://([\\w-]+)\\.mave\\.digital/ep-(\\d+))" + }, + "mbn": { + "name": "mbn", + "type": "free", + "domains": [ + "mbn.co.kr" + ], + "regexps": [ + "https?://(?:www\\.)?mbn\\.co\\.kr/vod/programContents/preview(?:list)?/\\d+/\\d+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?mbn\\.co\\.kr/vod/programContents/preview(?:list)?/\\d+/\\d+/(\\d+)" + }, + "mdr": { + "name": "mdr", + "type": "free", + "domains": [ + "mdr.de" + ], + "regexps": [ + "https?://(?:www\\.)?mdr\\.de/(?:.*)/[a-z-]+-?(\\d+)(?:_.+?)?\\.html" + ], + "regexp": "https?://(?:www\\.)?mdr\\.de/(?:.*)/[a-z-]+-?(\\d+)(?:_.+?)?\\.html" + }, + "medaltv": { + "name": "medaltv", + "type": "free", + "domains": [ + "medal.tv" + ], + "regexps": [ + "https?://(?:www\\.)?medal\\.tv/games/[^/?#&]+/clips/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?medal\\.tv/games/[^/?#&]+/clips/([^/?#&]+)" + }, + "media.ccc.de": { + "name": "media.ccc.de", + "type": "free", + "domains": [ + "media.ccc.de" + ], + "regexps": [ + "https?://(?:www\\.)?media\\.ccc\\.de/v/([^/?#&]+)", + "https?://(?:www\\.)?media\\.ccc\\.de/c/([^/?#&]+)" + ], + "regexp": "(https?://(?:www\\.)?media\\.ccc\\.de/v/([^/?#&]+))|(https?://(?:www\\.)?media\\.ccc\\.de/c/([^/?#&]+))" + }, + "mediaite": { + "name": "mediaite", + "type": "free", + "domains": [ + "mediaite.com" + ], + "regexps": [ + "https?://(?:www\\.)?mediaite\\.com(?!/category)(?:/[\\w-]+){2}" + ], + "regexp": "https?://(?:www\\.)?mediaite\\.com(?!/category)(?:/[\\w-]+){2}" + }, + "mediaklikk": { + "name": "mediaklikk", + "type": "free", + "domains": [ + "mediaklikk.hu", + "m4sport.hu", + "hirado.hu" + ], + "regexps": [ + "https?://(?:www\\.)?(?:mediaklikk|m4sport|hirado)\\.hu/.*?(?:videok?|cikk)/(?:([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/)?([^/#?_]+)" + ], + "regexp": "https?://(?:www\\.)?(?:mediaklikk|m4sport|hirado)\\.hu/.*?(?:videok?|cikk)/(?:([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/)?([^/#?_]+)" + }, + "medialaan": { + "name": "medialaan", + "type": "free", + "domains": [ + "bndestem.nl", + "gelderlander.nl", + "7sur7.be", + "mychannels.video", + "embed.mychannels.video" + ], + "regexps": [ + "https?://(?:(?:embed\\.)?mychannels.video/embed/|embed\\.mychannels\\.video/(?:s(?:dk|cript)/)?production/|(?:www\\.)?(?:(?:7sur7|demorgen|hln|joe|qmusic)\\.be|(?:[abe]d|bndestem|destentor|gelderlander|pzc|tubantia|volkskrant)\\.nl)/videos?/(?:[^/?#]+/)*[^/?&#]+(?:-|~p))(\\d+)" + ], + "regexp": "https?://(?:(?:embed\\.)?mychannels.video/embed/|embed\\.mychannels\\.video/(?:s(?:dk|cript)/)?production/|(?:www\\.)?(?:(?:7sur7|demorgen|hln|joe|qmusic)\\.be|(?:[abe]d|bndestem|destentor|gelderlander|pzc|tubantia|volkskrant)\\.nl)/videos?/(?:[^/?#]+/)*[^/?&#]+(?:-|~p))(\\d+)" + }, + "mediaset": { + "name": "mediaset", + "type": "free", + "domains": [ + "mediasetinfinity.mediaset.it", + "mediasetplay.mediaset.it", + "static3.mediasetplay.mediaset.it" + ], + "regexps": [ + "(?:mediaset:|https?://(?:\\w+\\.)+mediaset\\.it/(?:(?:video|on-demand|movie)/(?:[^/]+/)+[^/]+_|player/(?:v\\d+/)?index\\.html\\?\\S*?\\bprogramGuid=))(F[0-9A-Z]{15})" + ], + "regexp": "(?:mediaset:|https?://(?:\\w+\\.)+mediaset\\.it/(?:(?:video|on-demand|movie)/(?:[^/]+/)+[^/]+_|player/(?:v\\d+/)?index\\.html\\?\\S*?\\bprogramGuid=))(F[0-9A-Z]{15})" + }, + "mediasetshow": { + "name": "mediasetshow", + "type": "free", + "domains": [ + "mediasetinfinity.mediaset.it" + ], + "regexps": [ + "(?:https?://(\\w+\\.)+mediaset\\.it/(?:(?:fiction|programmi-tv|serie-tv|kids)/(?:.+?/)?(?:[a-z-]+)_SE(\\d{12})(?:,ST(\\d{12}))?(?:,sb(\\d{9}))?$))" + ], + "regexp": "(?:https?://(\\w+\\.)+mediaset\\.it/(?:(?:fiction|programmi-tv|serie-tv|kids)/(?:.+?/)?(?:[a-z-]+)_SE(\\d{12})(?:,ST(\\d{12}))?(?:,sb(\\d{9}))?$))" + }, + "mediasite": { + "name": "mediasite", + "type": "free", + "domains": [ + "hitsmediaweb.h-its.org", + "mediasite.uib.no", + "collegerama.tudelft.nl", + "digitalops.sandia.gov", + "mediasite.ntnu.no" + ], + "regexps": [ + "(?xi)https?://[^/]+/Mediasite/(?:Play|Showcase/[^/#?]+/Presentation)/((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))(\\?[^#]+|)" + ], + "regexp": "(?xi)https?://[^/]+/Mediasite/(?:Play|Showcase/[^/#?]+/Presentation)/((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))(\\?[^#]+|)" + }, + "mediasitecatalog": { + "name": "mediasitecatalog", + "type": "free", + "domains": [ + "events7.mediasite.com", + "medaudio.medicine.iu.edu", + "uipsyc.mediasite.com", + "live.libraries.psu.edu" + ], + "regexps": [ + "(?xi)\n (https?://[^/]+/Mediasite)\n /Catalog/Full/\n ((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))\n (?:\n /((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))\n /((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))\n )?\n " + ], + "regexp": "(?xi)\n (https?://[^/]+/Mediasite)\n /Catalog/Full/\n ((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))\n (?:\n /((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))\n /((?:[0-9a-f]{32,34}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12,14}))\n )?\n " + }, + "mediasitenamedcatalog": { + "name": "mediasitenamedcatalog", + "type": "free", + "domains": [ + "msite.misis.ru" + ], + "regexps": [ + "(?xi)(https?://[^/]+/Mediasite)/Catalog/catalogs/([^/?#&]+)" + ], + "regexp": "(?xi)(https?://[^/]+/Mediasite)/Catalog/catalogs/([^/?#&]+)" + }, + "mediastream": { + "name": "mediastream", + "type": "free", + "domains": [ + "mdstrm.com" + ], + "regexps": [ + "https?://mdstrm\\.com/(?:embed|live-stream)/(\\w+)" + ], + "regexp": "https?://mdstrm\\.com/(?:embed|live-stream)/(\\w+)" + }, + "mediaworksnzvod": { + "name": "mediaworksnzvod", + "type": "free", + "domains": [ + "vodupload-api.mediaworks.nz" + ], + "regexps": [ + "https?://vodupload-api\\.mediaworks\\.nz/library/asset/published/([A-Za-z0-9-]+)" + ], + "regexp": "https?://vodupload-api\\.mediaworks\\.nz/library/asset/published/([A-Za-z0-9-]+)" + }, + "medici": { + "name": "medici", + "type": "free", + "domains": [ + "medici.tv", + "edu.medici.tv" + ], + "regexps": [ + "https?://(?:(www|edu)\\.)?medici\\.tv/[a-z]{2}/[\\w.-]+/([^/?#&]+)" + ], + "regexp": "https?://(?:(www|edu)\\.)?medici\\.tv/[a-z]{2}/[\\w.-]+/([^/?#&]+)" + }, + "megaphone.fm": { + "name": "megaphone.fm", + "type": "free", + "domains": [], + "regexps": [ + "https?://player\\.megaphone\\.fm/([A-Z0-9]+)" + ], + "regexp": "https?://player\\.megaphone\\.fm/([A-Z0-9]+)" + }, + "megatvcom": { + "name": "megatvcom", + "type": "free", + "domains": [ + "megatv.com" + ], + "regexps": [ + "(?:https?:)?//(?:www\\.)?megatv\\.com/embed/?\\?p=(\\d+)", + "https?://(?:www\\.)?megatv\\.com/(?:\\d{4}/\\d{2}/\\d{2}|[^/]+/(\\d+))/([^/]+)" + ], + "regexp": "((?:https?:)?//(?:www\\.)?megatv\\.com/embed/?\\?p=(\\d+))|(https?://(?:www\\.)?megatv\\.com/(?:\\d{4}/\\d{2}/\\d{2}|[^/]+/(\\d+))/([^/]+))" + }, + "meipai": { + "name": "meipai", + "type": "free", + "domains": [ + "meipai.com" + ], + "regexps": [ + "https?://(?:www\\.)?meipai\\.com/media/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?meipai\\.com/media/([0-9]+)" + }, + "melonvod": { + "name": "melonvod", + "type": "free", + "domains": [], + "regexps": [ + "https?://vod\\.melon\\.com/video/detail2\\.html?\\?.*?mvId=([0-9]+)" + ], + "regexp": "https?://vod\\.melon\\.com/video/detail2\\.html?\\?.*?mvId=([0-9]+)" + }, + "metacritic": { + "name": "metacritic", + "type": "free", + "domains": [ + "metacritic.com" + ], + "regexps": [ + "https?://(?:www\\.)?metacritic\\.com/.+?/trailers/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?metacritic\\.com/.+?/trailers/(\\d+)" + }, + "mewatch": { + "name": "mewatch", + "type": "free", + "domains": [ + "mewatch.sg", + "live.mewatch.sg" + ], + "regexps": [ + "https?://(?:(?:www|live)\\.)?mewatch\\.sg/watch/[^/?#&]+-([0-9]+)" + ], + "regexp": "https?://(?:(?:www|live)\\.)?mewatch\\.sg/watch/[^/?#&]+-([0-9]+)" + }, + "microsoftbuild": { + "name": "microsoftbuild", + "type": "free", + "domains": [ + "build.microsoft.com" + ], + "regexps": [ + "https?://build\\.microsoft\\.com/[\\w-]+/sessions/([\\da-f-]+)", + "https?://build\\.microsoft\\.com/[\\w-]+/(sessions)/?(?:[?#]|$)" + ], + "regexp": "(https?://build\\.microsoft\\.com/[\\w-]+/sessions/([\\da-f-]+))|(https?://build\\.microsoft\\.com/[\\w-]+/(sessions)/?(?:[?#]|$))" + }, + "microsoftembed": { + "name": "microsoftembed", + "type": "free", + "domains": [ + "microsoft.com" + ], + "regexps": [ + "https?://(?:www\\.)?microsoft\\.com/(?:[^/]+/)?videoplayer/embed/([a-z0-9A-Z]+)" + ], + "regexp": "https?://(?:www\\.)?microsoft\\.com/(?:[^/]+/)?videoplayer/embed/([a-z0-9A-Z]+)" + }, + "microsoftlearnepisode": { + "name": "microsoftlearnepisode", + "type": "free", + "domains": [ + "learn.microsoft.com" + ], + "regexps": [ + "https?://learn\\.microsoft\\.com/(?:[\\w-]+/)?shows/[\\w-]+/([^?#/]+)" + ], + "regexp": "https?://learn\\.microsoft\\.com/(?:[\\w-]+/)?shows/[\\w-]+/([^?#/]+)" + }, + "microsoftlearnplaylist": { + "name": "microsoftlearnplaylist", + "type": "free", + "domains": [ + "learn.microsoft.com" + ], + "regexps": [ + "https?://learn\\.microsoft\\.com/(?:[\\w-]+/)?(shows|events)/([\\w-]+)/?(?:[?#]|$)" + ], + "regexp": "https?://learn\\.microsoft\\.com/(?:[\\w-]+/)?(shows|events)/([\\w-]+)/?(?:[?#]|$)" + }, + "microsoftlearnsession": { + "name": "microsoftlearnsession", + "type": "free", + "domains": [ + "learn.microsoft.com" + ], + "regexps": [ + "https?://learn\\.microsoft\\.com/(?:[\\w-]+/)?events/[\\w-]+/([^?#/]+)" + ], + "regexp": "https?://learn\\.microsoft\\.com/(?:[\\w-]+/)?events/[\\w-]+/([^?#/]+)" + }, + "microsoftmedius": { + "name": "microsoftmedius", + "type": "free", + "domains": [ + "medius.microsoft.com" + ], + "regexps": [ + "https?://medius\\.microsoft\\.com/Embed/(?:Video\\?id=|video-nc/|VideoDetails/)([\\da-f-]+)" + ], + "regexp": "https?://medius\\.microsoft\\.com/Embed/(?:Video\\?id=|video-nc/|VideoDetails/)([\\da-f-]+)" + }, + "microsoftstream": { + "name": "microsoftstream", + "type": "free", + "domains": [ + "web.microsoftstream.com", + "msit.microsoftstream.com" + ], + "regexps": [ + "https?://(?:web|www|msit)\\.microsoftstream\\.com/video/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + ], + "regexp": "https?://(?:web|www|msit)\\.microsoftstream\\.com/video/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + }, + "minds": { + "name": "minds", + "type": "free", + "domains": [ + "minds.com" + ], + "regexps": [ + "https?://(?:www\\.)?minds\\.com/(?!(?:newsfeed|media|api|archive|groups)/)([^/?&#]+)", + "https?://(?:www\\.)?minds\\.com/groups/profile/([0-9]+)", + "https?://(?:www\\.)?minds\\.com/(?:media|newsfeed|archive/view)/([0-9]+)" + ], + "regexp": "(https?://(?:www\\.)?minds\\.com/(?!(?:newsfeed|media|api|archive|groups)/)([^/?&#]+))|(https?://(?:www\\.)?minds\\.com/groups/profile/([0-9]+))|(https?://(?:www\\.)?minds\\.com/(?:media|newsfeed|archive/view)/([0-9]+))" + }, + "minoto": { + "name": "minoto", + "type": "free", + "domains": [], + "regexps": [ + "(?:minoto:|https?://(?:play|iframe|embed)\\.minoto-video\\.com/([0-9]+)/)([a-zA-Z0-9]+)" + ], + "regexp": "(?:minoto:|https?://(?:play|iframe|embed)\\.minoto-video\\.com/([0-9]+)/)([a-zA-Z0-9]+)" + }, + "mir24.tv": { + "name": "mir24.tv", + "type": "free", + "domains": [ + "mir24.tv" + ], + "regexps": [ + "https?://(?:www\\.)?mir24\\.tv/news/([0-9]+)/[^/?#]+" + ], + "regexp": "https?://(?:www\\.)?mir24\\.tv/news/([0-9]+)/[^/?#]+" + }, + "mirrativ": { + "name": "mirrativ", + "type": "free", + "domains": [ + "mirrativ.com" + ], + "regexps": [ + "https?://(?:www\\.)?mirrativ\\.com/live/([^/?#&]+)", + "https?://(?:www\\.)?mirrativ\\.com/user/(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?mirrativ\\.com/live/([^/?#&]+))|(https?://(?:www\\.)?mirrativ\\.com/user/(\\d+))" + }, + "mirrorcouk": { + "name": "mirrorcouk", + "type": "free", + "domains": [ + "mirror.co.uk" + ], + "regexps": [ + "https?://(?:www\\.)?mirror\\.co\\.uk/[/+[\\w-]+-(\\d+)" + ], + "regexp": "https?://(?:www\\.)?mirror\\.co\\.uk/[/+[\\w-]+-(\\d+)" + }, + "mixch": { + "name": "mixch", + "type": "free", + "domains": [ + "mixch.tv" + ], + "regexps": [ + "https?://mixch\\.tv/archive/(\\d+)", + "https?://mixch\\.tv/u/(\\d+)", + "https?://mixch\\.tv/m/(\\w+)" + ], + "regexp": "(https?://mixch\\.tv/archive/(\\d+))|(https?://mixch\\.tv/u/(\\d+))|(https?://mixch\\.tv/m/(\\w+))" + }, + "mixcloud": { + "name": "mixcloud", + "type": "free", + "domains": [ + "mixcloud.com", + "beta.mixcloud.com" + ], + "regexps": [ + "https?://(?:(?:www|beta|m)\\.)?mixcloud\\.com/([^/]+)/(?!stream|uploads|favorites|listens|playlists)([^/]+)", + "https?://(?:www\\.)?mixcloud\\.com/([^/]+)/playlists/([^/]+)/?$", + "https?://(?:www\\.)?mixcloud\\.com/([^/]+)/(uploads|favorites|listens|stream)?/?$" + ], + "regexp": "(https?://(?:(?:www|beta|m)\\.)?mixcloud\\.com/([^/]+)/(?!stream|uploads|favorites|listens|playlists)([^/]+))|(https?://(?:www\\.)?mixcloud\\.com/([^/]+)/playlists/([^/]+)/?$)|(https?://(?:www\\.)?mixcloud\\.com/([^/]+)/(uploads|favorites|listens|stream)?/?$)" + }, + "mixlr": { + "name": "mixlr", + "type": "free", + "domains": [ + "suncity-104-9fm.mixlr.com", + "brcountdown.mixlr.com" + ], + "regexps": [ + "https?://(?:www\\.)?([\\w-]+)\\.mixlr\\.com/events/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?([\\w-]+)\\.mixlr\\.com/events/(\\d+)" + }, + "mixlrrecoring": { + "name": "mixlrrecoring", + "type": "free", + "domains": [ + "biblewayng.mixlr.com" + ], + "regexps": [ + "https?://(?:www\\.)?([\\w-]+)\\.mixlr\\.com/recordings/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?([\\w-]+)\\.mixlr\\.com/recordings/(\\d+)" + }, + "mlb": { + "name": "mlb", + "type": "free", + "domains": [ + "mlb.com", + "m.mlb.com", + "mlb.mlb.com" + ], + "regexps": [ + "https?://(?:[\\da-z_-]+\\.)*mlb\\.com/(?:(?:(?:[^/]+/)*video/[^/]+/c-|(?:shared/video/embed/(?:embed|m-internal-embed)\\.html|(?:[^/]+/)+(?:play|index)\\.jsp|)\\?.*?\\bcontent_id=)(\\d+))" + ], + "regexp": "https?://(?:[\\da-z_-]+\\.)*mlb\\.com/(?:(?:(?:[^/]+/)*video/[^/]+/c-|(?:shared/video/embed/(?:embed|m-internal-embed)\\.html|(?:[^/]+/)+(?:play|index)\\.jsp|)\\?.*?\\bcontent_id=)(\\d+))" + }, + "mlbarticle": { + "name": "mlbarticle", + "type": "free", + "domains": [ + "mlb.com" + ], + "regexps": [ + "https?://www\\.mlb\\.com/news/([\\w-]+)" + ], + "regexp": "https?://www\\.mlb\\.com/news/([\\w-]+)" + }, + "mlbtv": { + "name": "mlbtv", + "type": "free", + "domains": [ + "mlb.com" + ], + "regexps": [ + "https?://(?:www\\.)?mlb\\.com/tv/g(\\d{6})" + ], + "regexp": "https?://(?:www\\.)?mlb\\.com/tv/g(\\d{6})" + }, + "mlbvideo": { + "name": "mlbvideo", + "type": "free", + "domains": [ + "mlb.com" + ], + "regexps": [ + "https?://(?:www\\.)?mlb\\.com/(?:[^/]+/)*video/([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?mlb\\.com/(?:[^/]+/)*video/([^/?&#]+)" + }, + "mlssoccer": { + "name": "mlssoccer", + "type": "free", + "domains": [ + "mlssoccer.com", + "whitecapsfc.com", + "torontofc.ca", + "sportingkc.com", + "soundersfc.com", + "sjearthquakes.com", + "rsl.com", + "timbers.com", + "philadelphiaunion.com", + "orlandocitysc.com", + "newyorkredbulls.com", + "nycfc.com", + "revolutionsoccer.net", + "nashvillesc.com", + "cfmontreal.com", + "intermiamicf.com", + "lagalaxy.com", + "lafc.com", + "houstondynamofc.com", + "dcunited.com", + "fcdallas.com", + "columbuscrew.com", + "coloradorapids.com", + "fccincinnati.com", + "chicagofirefc.com", + "austinfc.com", + "atlutd.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:(?:cfmontreal|intermiamicf|lagalaxy|lafc|houstondynamofc|dcunited|atlutd|mlssoccer|fcdallas|columbuscrew|coloradorapids|fccincinnati|chicagofirefc|austinfc|nashvillesc|whitecapsfc|sportingkc|soundersfc|sjearthquakes|rsl|timbers|philadelphiaunion|orlandocitysc|newyorkredbulls|nycfc)\\.com|(?:torontofc)\\.ca|(?:revolutionsoccer)\\.net)/video/#?([^/&$#?]+)" + ], + "regexp": "https?://(?:www\\.)?(?:(?:cfmontreal|intermiamicf|lagalaxy|lafc|houstondynamofc|dcunited|atlutd|mlssoccer|fcdallas|columbuscrew|coloradorapids|fccincinnati|chicagofirefc|austinfc|nashvillesc|whitecapsfc|sportingkc|soundersfc|sjearthquakes|rsl|timbers|philadelphiaunion|orlandocitysc|newyorkredbulls|nycfc)\\.com|(?:torontofc)\\.ca|(?:revolutionsoccer)\\.net)/video/#?([^/&$#?]+)" + }, + "mnettv": { + "name": "mnettv", + "type": "free", + "domains": [ + "tvplus.m-net.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvplus\\.m\\-net\\.de/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?tvplus\\.m\\-net\\.de/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "mnettvlive": { + "name": "mnettvlive", + "type": "free", + "domains": [ + "tvplus.m-net.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvplus\\.m\\-net\\.de/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?tvplus\\.m\\-net\\.de/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "mnettvrecordings": { + "name": "mnettvrecordings", + "type": "free", + "domains": [ + "tvplus.m-net.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvplus\\.m\\-net\\.de/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?tvplus\\.m\\-net\\.de/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "mochavideo": { + "name": "mochavideo", + "type": "free", + "domains": [ + "video.mocha.com.vn" + ], + "regexps": [ + "https?://video\\.mocha\\.com\\.vn/([\\w-]+)" + ], + "regexp": "https?://video\\.mocha\\.com\\.vn/([\\w-]+)" + }, + "mojevideo": { + "name": "mojevideo", + "type": "free", + "domains": [ + "mojevideo.sk" + ], + "regexps": [ + "https?://(?:www\\.)?mojevideo\\.sk/video/(\\w+)/([\\w()]+?)\\.html" + ], + "regexp": "https?://(?:www\\.)?mojevideo\\.sk/video/(\\w+)/([\\w()]+?)\\.html" + }, + "mojvideo": { + "name": "mojvideo", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?mojvideo\\.com/video-([^/]+)/([a-f0-9]+)" + ], + "regexp": "https?://(?:www\\.)?mojvideo\\.com/video-([^/]+)/([a-f0-9]+)" + }, + "monstercat": { + "name": "monstercat", + "type": "free", + "domains": [ + "monstercat.com" + ], + "regexps": [ + "https?://www\\.monstercat\\.com/release/(\\d+)" + ], + "regexp": "https?://www\\.monstercat\\.com/release/(\\d+)" + }, + "monstersiren": { + "name": "monstersiren", + "type": "free", + "domains": [ + "monster-siren.hypergryph.com" + ], + "regexps": [ + "https?://monster-siren\\.hypergryph\\.com/music/(\\d+)" + ], + "regexp": "https?://monster-siren\\.hypergryph\\.com/music/(\\d+)" + }, + "motherless": { + "name": "motherless", + "type": "free", + "domains": [ + "motherless.com" + ], + "regexps": [ + "https?://(?:www\\.)?motherless\\.com/(?:g/[a-z0-9_]+/|G[VIG]?[A-F0-9]+/)?([A-F0-9]+)" + ], + "regexp": "https?://(?:www\\.)?motherless\\.com/(?:g/[a-z0-9_]+/|G[VIG]?[A-F0-9]+/)?([A-F0-9]+)" + }, + "motherlessgallery": { + "name": "motherlessgallery", + "type": "free", + "domains": [ + "motherless.com" + ], + "regexps": [ + "https?://(?:www\\.)?motherless\\.com/G[VIG]?([A-F0-9]+)/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?motherless\\.com/G[VIG]?([A-F0-9]+)/?(?:$|[#?])" + }, + "motherlessgroup": { + "name": "motherlessgroup", + "type": "free", + "domains": [ + "motherless.com" + ], + "regexps": [ + "https?://(?:www\\.)?motherless\\.com/g[vifm]?/([a-z0-9_]+)/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?motherless\\.com/g[vifm]?/([a-z0-9_]+)/?(?:$|[#?])" + }, + "motherlessuploader": { + "name": "motherlessuploader", + "type": "free", + "domains": [ + "motherless.com" + ], + "regexps": [ + "https?://(?:www\\.)?motherless\\.com/u/(\\w+)/?(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?motherless\\.com/u/(\\w+)/?(?:$|[?#])" + }, + "motorsport": { + "name": "motorsport", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?motorsport\\.com/[^/?#]+/video/(?:[^/?#]+/)([^/]+)/?(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?motorsport\\.com/[^/?#]+/video/(?:[^/?#]+/)([^/]+)/?(?:$|[?#])" + }, + "moviefap": { + "name": "moviefap", + "type": "free", + "domains": [ + "moviefap.com" + ], + "regexps": [ + "https?://(?:www\\.)?(moviefap)\\.com/videos/([0-9a-f]+)/([^/]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?(moviefap)\\.com/videos/([0-9a-f]+)/([^/]+)\\.html" + }, + "moviepilot": { + "name": "moviepilot", + "type": "free", + "domains": [ + "moviepilot.de" + ], + "regexps": [ + "https?://(?:www\\.)?moviepilot\\.de/movies/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?moviepilot\\.de/movies/([^/]+)" + }, + "moviewplay": { + "name": "moviewplay", + "type": "free", + "domains": [ + "moview.id" + ], + "regexps": [ + "https?://www\\.moview\\.id/play/\\d+/([\\w-]+)" + ], + "regexp": "https?://www\\.moview\\.id/play/\\d+/([\\w-]+)" + }, + "moviezine": { + "name": "moviezine", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?moviezine\\.se/video/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?moviezine\\.se/video/([^?#]+)" + }, + "movingimage": { + "name": "movingimage", + "type": "free", + "domains": [], + "regexps": [ + "https?://movingimage\\.nls\\.uk/film/(\\d+)" + ], + "regexp": "https?://movingimage\\.nls\\.uk/film/(\\d+)" + }, + "msn": { + "name": "msn", + "type": "free", + "domains": [ + "msn.com" + ], + "regexps": [ + "https?://(?:(?:www|preview)\\.)?msn\\.com/([a-z]{2}-[a-z]{2})/(?:[^/?#]+/)+([^/?#]+)/[a-z]{2}-([\\da-zA-Z]+)" + ], + "regexp": "https?://(?:(?:www|preview)\\.)?msn\\.com/([a-z]{2}-[a-z]{2})/(?:[^/?#]+/)+([^/?#]+)/[a-z]{2}-([\\da-zA-Z]+)" + }, + "mtg": { + "name": "mtg", + "type": "free", + "domains": [ + "tvplay.lv", + "play.tv3.lt", + "tv3play.ee", + "tvplay.skaties.lv", + "tv3play.tv3.ee" + ], + "regexps": [ + "(?:mtg:|https?://(?:www\\.)?(?:tvplay(?:\\.skaties)?\\.lv(?:/parraides)?|(?:tv3play|play\\.tv3)\\.lt(?:/programos)?|tv3play(?:\\.tv3)?\\.ee/sisu)/(?:[^/]+/)+)(\\d+)" + ], + "regexp": "(?:mtg:|https?://(?:www\\.)?(?:tvplay(?:\\.skaties)?\\.lv(?:/parraides)?|(?:tv3play|play\\.tv3)\\.lt(?:/programos)?|tv3play(?:\\.tv3)?\\.ee/sisu)/(?:[^/]+/)+)(\\d+)" + }, + "mtv": { + "name": "mtv", + "type": "free", + "domains": [ + "mtv.com" + ], + "regexps": [ + "https?://(?:www\\.)?mtv\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + ], + "regexp": "https?://(?:www\\.)?mtv\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + }, + "mtvuutisetarticle": { + "name": "mtvuutisetarticle", + "type": "free", + "domains": [ + "mtvuutiset.fi" + ], + "regexps": [ + "https?://(?:www\\.)mtvuutiset\\.fi/artikkeli/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)mtvuutiset\\.fi/artikkeli/[^/]+/(\\d+)" + }, + "muenchentv": { + "name": "muenchentv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?muenchen\\.tv/livestream" + ], + "regexp": "https?://(?:www\\.)?muenchen\\.tv/livestream" + }, + "mujrozhlas": { + "name": "mujrozhlas", + "type": "free", + "domains": [ + "mujrozhlas.cz" + ], + "regexps": [ + "https?://(?:www\\.)?mujrozhlas\\.cz/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?mujrozhlas\\.cz/(?:[^/]+/)*([^/?#&]+)" + }, + "murrtube": { + "name": "murrtube", + "type": "free", + "domains": [ + "murrtube.net" + ], + "regexps": [ + "(?:murrtube:|https?://murrtube\\.net/(?:v/|videos/([a-z0-9-]+?)-))([A-Z0-9]{4}|[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})" + ], + "regexp": "(?:murrtube:|https?://murrtube\\.net/(?:v/|videos/([a-z0-9-]+?)-))([A-Z0-9]{4}|[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})" + }, + "murrtubeuser": { + "name": "murrtubeuser", + "type": "free", + "domains": [ + "murrtube.net" + ], + "regexps": [ + "https?://murrtube\\.net/([^/]+)$" + ], + "regexp": "https?://murrtube\\.net/([^/]+)$" + }, + "museai": { + "name": "museai", + "type": "free", + "domains": [ + "muse.ai" + ], + "regexps": [ + "https?://(?:www\\.)?muse\\.ai/(?:v|embed)/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?muse\\.ai/(?:v|embed)/(\\w+)" + }, + "musescore": { + "name": "musescore", + "type": "free", + "domains": [ + "musescore.com" + ], + "regexps": [ + "https?://(?:www\\.)?musescore\\.com/(?:user/\\d+|[^/]+)(?:/scores)?/([^#&?]+)" + ], + "regexp": "https?://(?:www\\.)?musescore\\.com/(?:user/\\d+|[^/]+)(?:/scores)?/([^#&?]+)" + }, + "musicdexalbum": { + "name": "musicdexalbum", + "type": "free", + "domains": [ + "musicdex.org" + ], + "regexps": [ + "https?://(?:www\\.)?musicdex\\.org/album/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?musicdex\\.org/album/(\\d+)" + }, + "musicdexartist": { + "name": "musicdexartist", + "type": "free", + "domains": [ + "musicdex.org" + ], + "regexps": [ + "https?://(?:www\\.)?musicdex\\.org/artist/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?musicdex\\.org/artist/(\\d+)" + }, + "musicdexplaylist": { + "name": "musicdexplaylist", + "type": "free", + "domains": [ + "musicdex.org" + ], + "regexps": [ + "https?://(?:www\\.)?musicdex\\.org/playlist/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?musicdex\\.org/playlist/(\\d+)" + }, + "musicdexsong": { + "name": "musicdexsong", + "type": "free", + "domains": [ + "musicdex.org" + ], + "regexps": [ + "https?://(?:www\\.)?musicdex\\.org/track/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?musicdex\\.org/track/(\\d+)" + }, + "mux": { + "name": "mux", + "type": "free", + "domains": [ + "stream.new", + "player.mux.com" + ], + "regexps": [ + "https?://(?:stream\\.new/v|player\\.mux\\.com)/([A-Za-z0-9-]+)" + ], + "regexp": "https?://(?:stream\\.new/v|player\\.mux\\.com)/([A-Za-z0-9-]+)" + }, + "mx3": { + "name": "mx3", + "type": "free", + "domains": [ + "mx3.ch" + ], + "regexps": [ + "https?://(?:www\\.)?mx3\\.ch/t/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?mx3\\.ch/t/(\\w+)" + }, + "mx3neo": { + "name": "mx3neo", + "type": "free", + "domains": [ + "neo.mx3.ch" + ], + "regexps": [ + "https?://(?:www\\.)?neo\\.mx3\\.ch/t/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?neo\\.mx3\\.ch/t/(\\w+)" + }, + "mx3volksmusik": { + "name": "mx3volksmusik", + "type": "free", + "domains": [ + "volksmusik.mx3.ch" + ], + "regexps": [ + "https?://(?:www\\.)?volksmusik\\.mx3\\.ch/t/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?volksmusik\\.mx3\\.ch/t/(\\w+)" + }, + "mxplayer": { + "name": "mxplayer", + "type": "free", + "domains": [ + "mxplayer.in" + ], + "regexps": [ + "https?://(?:www\\.)?mxplayer\\.in/(movie|show/[-\\w]+/[-\\w]+)/([-\\w]+)-(\\w+)" + ], + "regexp": "https?://(?:www\\.)?mxplayer\\.in/(movie|show/[-\\w]+/[-\\w]+)/([-\\w]+)-(\\w+)" + }, + "mxplayershow": { + "name": "mxplayershow", + "type": "free", + "domains": [ + "mxplayer.in" + ], + "regexps": [ + "https?://(?:www\\.)?mxplayer\\.in/show/([-\\w]+)-(\\w+)/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?mxplayer\\.in/show/([-\\w]+)-(\\w+)/?(?:$|[#?])" + }, + "myspace": { + "name": "myspace", + "type": "free", + "domains": [ + "myspace.com" + ], + "regexps": [ + "https?://myspace\\.com/([^/]+)/music/album/(.*-)(\\d+)", + "https?://myspace\\.com/[^/]+/(video/[^/]+/(\\d+)|music/song/[^/?#&]+-(\\d+)-\\d+(?:[/?#&]|$))" + ], + "regexp": "(https?://myspace\\.com/([^/]+)/music/album/(.*-)(\\d+))|(https?://myspace\\.com/[^/]+/(video/[^/]+/(\\d+)|music/song/[^/?#&]+-(\\d+)-\\d+(?:[/?#&]|$)))" + }, + "myspass": { + "name": "myspass", + "type": "free", + "domains": [ + "myspass.de" + ], + "regexps": [ + "https?://(?:www\\.)?myspass\\.de/(?:[^/]+/)*(\\d+)/?[^/]*$" + ], + "regexp": "https?://(?:www\\.)?myspass\\.de/(?:[^/]+/)*(\\d+)/?[^/]*$" + }, + "myvideoge": { + "name": "myvideoge", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?myvideo\\.ge/v/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?myvideo\\.ge/v/([0-9]+)" + }, + "myvidster": { + "name": "myvidster", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?myvidster\\.com/video/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?myvidster\\.com/video/(\\d+)" + }, + "mzaalo": { + "name": "mzaalo", + "type": "free", + "domains": [ + "mzaalo.com" + ], + "regexps": [ + "(?i)https?://(?:www\\.)?mzaalo\\.com/(?:play|watch)/(movie|original|clip)/([a-f0-9-]+)/[\\w-]+" + ], + "regexp": "(?i)https?://(?:www\\.)?mzaalo\\.com/(?:play|watch)/(movie|original|clip)/([a-f0-9-]+)/[\\w-]+" + }, + "n-tv.de": { + "name": "n-tv.de", + "type": "free", + "domains": [ + "n-tv.de" + ], + "regexps": [ + "https?://(?:www\\.)?n-tv\\.de/mediathek/(?:videos|magazine)/[^/?#]+/[^/?#]+-article([^/?#]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?n-tv\\.de/mediathek/(?:videos|magazine)/[^/?#]+/[^/?#]+-article([^/?#]+)\\.html" + }, + "n1info": { + "name": "n1info", + "type": "free", + "domains": [ + "sportklub.n1info.rs", + "n1info.si", + "nova.rs", + "n1info.rs", + "hr.n1info.com" + ], + "regexps": [ + "https?://(?:(?:\\w+\\.)?n1info\\.\\w+|nova\\.rs)/(?:[^/?#]+/){1,2}([^/?#]+)" + ], + "regexp": "https?://(?:(?:\\w+\\.)?n1info\\.\\w+|nova\\.rs)/(?:[^/?#]+/){1,2}([^/?#]+)" + }, + "n1infoasset": { + "name": "n1infoasset", + "type": "free", + "domains": [ + "best-vod.umn.cdn.united.cloud" + ], + "regexps": [ + "https?://best-vod\\.umn\\.cdn\\.united\\.cloud/stream\\?asset=([^&]+)" + ], + "regexp": "https?://best-vod\\.umn\\.cdn\\.united\\.cloud/stream\\?asset=([^&]+)" + }, + "nascarclassics": { + "name": "nascarclassics", + "type": "free", + "domains": [ + "classics.nascar.com" + ], + "regexps": [ + "https?://(?:www\\.)?classics\\.nascar\\.com/video/([\\w~-]+)" + ], + "regexp": "https?://(?:www\\.)?classics\\.nascar\\.com/video/([\\w~-]+)" + }, + "nate": { + "name": "nate", + "type": "free", + "domains": [ + "tv.nate.com" + ], + "regexps": [ + "https?://tv\\.nate\\.com/clip/([0-9]+)" + ], + "regexp": "https?://tv\\.nate\\.com/clip/([0-9]+)" + }, + "nateprogram": { + "name": "nateprogram", + "type": "free", + "domains": [ + "tv.nate.com" + ], + "regexps": [ + "https?://tv\\.nate\\.com/program/clips/([0-9]+)" + ], + "regexp": "https?://tv\\.nate\\.com/program/clips/([0-9]+)" + }, + "natgeo": { + "name": "natgeo", + "type": "free", + "domains": [ + "video.nationalgeographic.com" + ], + "regexps": [ + "https?://video\\.nationalgeographic\\.com/.*?" + ], + "regexp": "https?://video\\.nationalgeographic\\.com/.*?" + }, + "nationalgeographictv": { + "name": "nationalgeographictv", + "type": "free", + "domains": [ + "nationalgeographic.com" + ], + "regexps": [ + "https?://(?:www\\.)?nationalgeographic\\.com/tv/watch/([\\da-fA-F]+)" + ], + "regexp": "https?://(?:www\\.)?nationalgeographic\\.com/tv/watch/([\\da-fA-F]+)" + }, + "naver": { + "name": "naver", + "type": "free", + "domains": [ + "tv.naver.com", + "tvcast.naver.com" + ], + "regexps": [ + "https?://(?:m\\.)?tv(?:cast)?\\.naver\\.com/(?:v|embed)/(\\d+)", + "https?://(?:m\\.)?tv(?:cast)?\\.naver\\.com/l/(\\d+)" + ], + "regexp": "(https?://(?:m\\.)?tv(?:cast)?\\.naver\\.com/(?:v|embed)/(\\d+))|(https?://(?:m\\.)?tv(?:cast)?\\.naver\\.com/l/(\\d+))" + }, + "navernow": { + "name": "navernow", + "type": "free", + "domains": [ + "now.naver.com" + ], + "regexps": [ + "https?://now\\.naver\\.com/s/now\\.(\\w+)" + ], + "regexp": "https?://now\\.naver\\.com/s/now\\.(\\w+)" + }, + "nba": { + "name": "nba", + "type": "free", + "domains": [ + "nba.com", + "secure.nba.com", + "watch.nba.com" + ], + "regexps": [ + "https?://(?:www\\.)?nba\\.com/(blazers|bucks|bulls|cavaliers|celtics|clippers|grizzlies|hawks|heat|hornets|jazz|kings|knicks|lakers|magic|mavericks|nets|nuggets|pacers|pelicans|pistons|raptors|rockets|sixers|spurs|suns|thunder|timberwolves|warriors|wizards)(?:/play\\#)?/(?:video/channel|series)/([^/?#&]+)", + "https?://secure\\.nba\\.com/assets/amp/include/video/(?:topI|i)frame\\.html\\?.*?\\bcontentId=([^?#&]+)", + "https?://(?:www\\.)?nba\\.com/(blazers|bucks|bulls|cavaliers|celtics|clippers|grizzlies|hawks|heat|hornets|jazz|kings|knicks|lakers|magic|mavericks|nets|nuggets|pacers|pelicans|pistons|raptors|rockets|sixers|spurs|suns|thunder|timberwolves|warriors|wizards)(?:/play\\#)?/(?!video/channel|series)video/((?:[^/]+/)*[^/?#&]+)", + "https?://(?:(?:www\\.)?nba\\.com(?:/watch)?|watch\\.nba\\.com)/list/collection/([^/?#&]+)", + "https?://(?:(?:www\\.)?nba\\.com(?:/watch)?|watch\\.nba\\.com)/embed\\?.*?\\bid=(\\d+)", + "https?://(?:(?:www\\.)?nba\\.com(?:/watch)?|watch\\.nba\\.com)/(?:nba/)?video/(.+?(?=/index\\.html)|(?:[^/]+/)*[^/?#&]+)" + ], + "regexp": "(https?://(?:www\\.)?nba\\.com/(blazers|bucks|bulls|cavaliers|celtics|clippers|grizzlies|hawks|heat|hornets|jazz|kings|knicks|lakers|magic|mavericks|nets|nuggets|pacers|pelicans|pistons|raptors|rockets|sixers|spurs|suns|thunder|timberwolves|warriors|wizards)(?:/play\\#)?/(?:video/channel|series)/([^/?#&]+))|(https?://secure\\.nba\\.com/assets/amp/include/video/(?:topI|i)frame\\.html\\?.*?\\bcontentId=([^?#&]+))|(https?://(?:www\\.)?nba\\.com/(blazers|bucks|bulls|cavaliers|celtics|clippers|grizzlies|hawks|heat|hornets|jazz|kings|knicks|lakers|magic|mavericks|nets|nuggets|pacers|pelicans|pistons|raptors|rockets|sixers|spurs|suns|thunder|timberwolves|warriors|wizards)(?:/play\\#)?/(?!video/channel|series)video/((?:[^/]+/)*[^/?#&]+))|(https?://(?:(?:www\\.)?nba\\.com(?:/watch)?|watch\\.nba\\.com)/list/collection/([^/?#&]+))|(https?://(?:(?:www\\.)?nba\\.com(?:/watch)?|watch\\.nba\\.com)/embed\\?.*?\\bid=(\\d+))|(https?://(?:(?:www\\.)?nba\\.com(?:/watch)?|watch\\.nba\\.com)/(?:nba/)?video/(.+?(?=/index\\.html)|(?:[^/]+/)*[^/?#&]+))" + }, + "nbc": { + "name": "nbc", + "type": "free", + "domains": [ + "nbc.com" + ], + "regexps": [ + "https?(://(?:www\\.)?nbc\\.com/(?:classic-tv/)?[^/?#]+/video/[^/?#]+/(\\w+))" + ], + "regexp": "https?(://(?:www\\.)?nbc\\.com/(?:classic-tv/)?[^/?#]+/video/[^/?#]+/(\\w+))" + }, + "nbcnews": { + "name": "nbcnews", + "type": "free", + "domains": [ + "nbcnews.com", + "today.com", + "msnbc.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:nbcnews|today|msnbc)\\.com/([^/]+/)*(?:.*-)?([^/?]+)" + ], + "regexp": "https?://(?:www\\.)?(?:nbcnews|today|msnbc)\\.com/([^/]+/)*(?:.*-)?([^/?]+)" + }, + "nbcolympics": { + "name": "nbcolympics", + "type": "free", + "domains": [ + "nbcolympics.com", + "stream.nbcolympics.com" + ], + "regexps": [ + "https?://www\\.nbcolympics\\.com/videos?/([0-9a-z-]+)", + "https?://stream\\.nbcolympics\\.com/([0-9a-z-]+)" + ], + "regexp": "(https?://www\\.nbcolympics\\.com/videos?/([0-9a-z-]+))|(https?://stream\\.nbcolympics\\.com/([0-9a-z-]+))" + }, + "nbcsports": { + "name": "nbcsports", + "type": "free", + "domains": [ + "nbcsports.com" + ], + "regexps": [ + "https?://(?:www\\.)?nbcsports\\.com//?(?!vplayer/)(?:[^/]+/)+([0-9a-z-]+)" + ], + "regexp": "https?://(?:www\\.)?nbcsports\\.com//?(?!vplayer/)(?:[^/]+/)+([0-9a-z-]+)" + }, + "nbcsportsstream": { + "name": "nbcsportsstream", + "type": "free", + "domains": [ + "stream.nbcsports.com" + ], + "regexps": [ + "https?://stream\\.nbcsports\\.com/.+?\\bpid=(\\d+)" + ], + "regexp": "https?://stream\\.nbcsports\\.com/.+?\\bpid=(\\d+)" + }, + "nbcsportsvplayer": { + "name": "nbcsportsvplayer", + "type": "free", + "domains": [ + "vplayer.nbcsports.com", + "nbcsports.com" + ], + "regexps": [ + "https?://(?:vplayer\\.nbcsports\\.com|(?:www\\.)?nbcsports\\.com/vplayer)/(?:[^/]+/)+([0-9a-zA-Z_]+)" + ], + "regexp": "https?://(?:vplayer\\.nbcsports\\.com|(?:www\\.)?nbcsports\\.com/vplayer)/(?:[^/]+/)+([0-9a-zA-Z_]+)" + }, + "nbcstations": { + "name": "nbcstations", + "type": "free", + "domains": [ + "nbclosangeles.com", + "telemundoarizona.com", + "nbcboston.com" + ], + "regexps": [ + "https?://(?:www\\.)?(nbcbayarea|nbcboston|nbcchicago|nbcconnecticut|nbcdfw|nbclosangeles|nbcmiami|nbcnewyork|nbcphiladelphia|nbcsandiego|nbcwashington|necn|telemundo52|telemundoarizona|telemundochicago|telemundonuevainglaterra)\\.com/(?:[^/?#]+/)*([^/?#]+)/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?(nbcbayarea|nbcboston|nbcchicago|nbcconnecticut|nbcdfw|nbclosangeles|nbcmiami|nbcnewyork|nbcphiladelphia|nbcsandiego|nbcwashington|necn|telemundo52|telemundoarizona|telemundochicago|telemundonuevainglaterra)\\.com/(?:[^/?#]+/)*([^/?#]+)/?(?:$|[#?])" + }, + "ndr": { + "name": "ndr", + "type": "free", + "domains": [ + "ndr.de" + ], + "regexps": [ + "(?:ndr:([\\da-z]+)|https?://www\\.ndr\\.de/([\\da-z]+)-ppjson\\.json)", + "https?://(?:\\w+\\.)*ndr\\.de/(?:[^/]+/)*([\\da-z]+)-(?:(?:ard)?player|externalPlayer)\\.html", + "https?://(?:\\w+\\.)*ndr\\.de/(?:[^/]+/)*([^/?#]+),[\\da-z]+\\.html" + ], + "regexp": "((?:ndr:([\\da-z]+)|https?://www\\.ndr\\.de/([\\da-z]+)-ppjson\\.json))|(https?://(?:\\w+\\.)*ndr\\.de/(?:[^/]+/)*([\\da-z]+)-(?:(?:ard)?player|externalPlayer)\\.html)|(https?://(?:\\w+\\.)*ndr\\.de/(?:[^/]+/)*([^/?#]+),[\\da-z]+\\.html)" + }, + "ndtv": { + "name": "ndtv", + "type": "free", + "domains": [ + "khabar.ndtv.com", + "movies.ndtv.com", + "ndtv.com", + "auto.ndtv.com", + "sports.ndtv.com", + "gadgets.ndtv.com", + "profit.ndtv.com", + "food.ndtv.com", + "doctor.ndtv.com", + "swirlster.ndtv.com" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?ndtv\\.com/(?:[^/]+/)*videos?/?(?:[^/]+/)*[^/?^&]+-(\\d+)" + ], + "regexp": "https?://(?:[^/]+\\.)?ndtv\\.com/(?:[^/]+/)*videos?/?(?:[^/]+/)*[^/?^&]+-(\\d+)" + }, + "nebula": { + "name": "nebula", + "type": "free", + "domains": [ + "nebula.tv", + "watchnebula.com", + "beta.nebula.tv" + ], + "regexps": [ + "https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/(?!myshows|library|videos)([\\w-]+)/?(?:$|[?#])", + "https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/(?!(?:myshows|library|videos)/)([\\w-]+)/([\\w-]+)/?(?:$|[?#])", + "https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/videos/([\\w-]+)", + "https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/(myshows|library/latest-videos)/?(?:$|[?#])" + ], + "regexp": "(https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/(?!myshows|library|videos)([\\w-]+)/?(?:$|[?#]))|(https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/(?!(?:myshows|library|videos)/)([\\w-]+)/([\\w-]+)/?(?:$|[?#]))|(https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/videos/([\\w-]+))|(https?://(?:www\\.|beta\\.)?(?:watchnebula\\.com|nebula\\.app|nebula\\.tv)/(myshows|library/latest-videos)/?(?:$|[?#]))" + }, + "nekohacker": { + "name": "nekohacker", + "type": "free", + "domains": [ + "nekohacker.com" + ], + "regexps": [ + "https?://(?:www\\.)?nekohacker\\.com/((?!free-dl)[\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?nekohacker\\.com/((?!free-dl)[\\w-]+)" + }, + "nerdcubedfeed": { + "name": "nerdcubedfeed", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?nerdcubed\\.co\\.uk/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?nerdcubed\\.co\\.uk/?(?:$|[#?])" + }, + "nest": { + "name": "nest", + "type": "free", + "domains": [ + "video.nest.com" + ], + "regexps": [ + "https?://video\\.nest\\.com/(?:embedded/)?live/(\\w+)" + ], + "regexp": "https?://video\\.nest\\.com/(?:embedded/)?live/(\\w+)" + }, + "nestclip": { + "name": "nestclip", + "type": "free", + "domains": [ + "video.nest.com" + ], + "regexps": [ + "https?://video\\.nest\\.com/(?:embedded/)?clip/(\\w+)" + ], + "regexp": "https?://video\\.nest\\.com/(?:embedded/)?clip/(\\w+)" + }, + "netappcollection": { + "name": "netappcollection", + "type": "free", + "domains": [ + "media.netapp.com" + ], + "regexps": [ + "https?://media\\.netapp\\.com/collection/([0-9a-f-]+)" + ], + "regexp": "https?://media\\.netapp\\.com/collection/([0-9a-f-]+)" + }, + "netappvideo": { + "name": "netappvideo", + "type": "free", + "domains": [ + "media.netapp.com" + ], + "regexps": [ + "https?://media\\.netapp\\.com/video-detail/([0-9a-f-]+)" + ], + "regexp": "https?://media\\.netapp\\.com/video-detail/([0-9a-f-]+)" + }, + "netease": { + "name": "netease", + "type": "free", + "domains": [ + "music.163.com", + "y.music.163.com" + ], + "regexps": [ + "https?://music\\.163\\.com/(?:#/)?album\\?id=([0-9]+)", + "https?://music\\.163\\.com/(?:#/)?djradio\\?id=([0-9]+)", + "https?://(?:y\\.)?music\\.163\\.com/(?:[#m]/)?song\\?.*?\\bid=([0-9]+)", + "https?://music\\.163\\.com/(?:#/)?(?:playlist|discover/toplist)\\?id=([0-9]+)", + "https?://music\\.163\\.com/(?:#/)?mv\\?id=([0-9]+)", + "https?://music\\.163\\.com/(?:#/)?program\\?id=([0-9]+)", + "https?://music\\.163\\.com/(?:#/)?artist\\?id=([0-9]+)" + ], + "regexp": "(https?://music\\.163\\.com/(?:#/)?album\\?id=([0-9]+))|(https?://music\\.163\\.com/(?:#/)?djradio\\?id=([0-9]+))|(https?://(?:y\\.)?music\\.163\\.com/(?:[#m]/)?song\\?.*?\\bid=([0-9]+))|(https?://music\\.163\\.com/(?:#/)?(?:playlist|discover/toplist)\\?id=([0-9]+))|(https?://music\\.163\\.com/(?:#/)?mv\\?id=([0-9]+))|(https?://music\\.163\\.com/(?:#/)?program\\?id=([0-9]+))|(https?://music\\.163\\.com/(?:#/)?artist\\?id=([0-9]+))" + }, + "netplustv": { + "name": "netplustv", + "type": "free", + "domains": [ + "netplus.tv" + ], + "regexps": [ + "https?://(?:www\\.)?netplus\\.tv/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?netplus\\.tv/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "netplustvlive": { + "name": "netplustvlive", + "type": "free", + "domains": [ + "netplus.tv" + ], + "regexps": [ + "https?://(?:www\\.)?netplus\\.tv/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?netplus\\.tv/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "netplustvrecordings": { + "name": "netplustvrecordings", + "type": "free", + "domains": [ + "netplus.tv" + ], + "regexps": [ + "https?://(?:www\\.)?netplus\\.tv/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?netplus\\.tv/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "netverse": { + "name": "netverse", + "type": "free", + "domains": [ + "netverse.id" + ], + "regexps": [ + "https?://(?:\\w+\\.)?netverse\\.id/(watch|video)/([^/?#&]+)" + ], + "regexp": "https?://(?:\\w+\\.)?netverse\\.id/(watch|video)/([^/?#&]+)" + }, + "netverseplaylist": { + "name": "netverseplaylist", + "type": "free", + "domains": [ + "netverse.id" + ], + "regexps": [ + "https?://(?:\\w+\\.)?netverse\\.id/(webseries)/([^/?#&]+)" + ], + "regexp": "https?://(?:\\w+\\.)?netverse\\.id/(webseries)/([^/?#&]+)" + }, + "netversesearch": { + "name": "netversesearch", + "type": "free", + "domains": [], + "regexps": [ + "netsearch(|[1-9][0-9]*|all):([\\s\\S]+)" + ], + "regexp": "netsearch(|[1-9][0-9]*|all):([\\s\\S]+)" + }, + "netzkino": { + "name": "netzkino", + "type": "free", + "domains": [ + "netzkino.de" + ], + "regexps": [ + "https?://(?:www\\.)?netzkino\\.de/\\#!/[^/]+/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?netzkino\\.de/\\#!/[^/]+/([^/]+)" + }, + "newgrounds": { + "name": "newgrounds", + "type": "free", + "domains": [ + "newgrounds.com", + "burn7.newgrounds.com", + "brian-beaton.newgrounds.com" + ], + "regexps": [ + "https?://(?:www\\.)?newgrounds\\.com/(?:audio/listen|portal/view)/(\\d+)(?:/format/flash)?", + "https?://(?:www\\.)?newgrounds\\.com/(?:collection|[^/]+/search/[^/]+)/([^/?#&]+)", + "https?://([^\\.]+)\\.newgrounds\\.com/(?:movies|audio)/?(?:[#?]|$)" + ], + "regexp": "(https?://(?:www\\.)?newgrounds\\.com/(?:audio/listen|portal/view)/(\\d+)(?:/format/flash)?)|(https?://(?:www\\.)?newgrounds\\.com/(?:collection|[^/]+/search/[^/]+)/([^/?#&]+))|(https?://([^\\.]+)\\.newgrounds\\.com/(?:movies|audio)/?(?:[#?]|$))" + }, + "newspicks": { + "name": "newspicks", + "type": "free", + "domains": [ + "newspicks.com" + ], + "regexps": [ + "https?://newspicks\\.com/movie-series/([^?/#]+)" + ], + "regexp": "https?://newspicks\\.com/movie-series/([^?/#]+)" + }, + "newsy": { + "name": "newsy", + "type": "free", + "domains": [ + "newsy.com" + ], + "regexps": [ + "https?://(?:www\\.)?newsy\\.com/stories/([^/?#$&]+)" + ], + "regexp": "https?://(?:www\\.)?newsy\\.com/stories/([^/?#$&]+)" + }, + "nextmedia": { + "name": "nextmedia", + "type": "free", + "domains": [ + "hk.apple.nextmedia.com" + ], + "regexps": [ + "https?://hk\\.apple\\.nextmedia\\.com/[^/]+/[^/]+/(\\d+)/(\\d+)" + ], + "regexp": "https?://hk\\.apple\\.nextmedia\\.com/[^/]+/[^/]+/(\\d+)/(\\d+)" + }, + "nextmediaactionnews": { + "name": "nextmediaactionnews", + "type": "free", + "domains": [ + "hk.dv.nextmedia.com" + ], + "regexps": [ + "https?://hk\\.dv\\.nextmedia\\.com/actionnews/[^/]+/(\\d+)/(\\d+)/\\d+" + ], + "regexp": "https?://hk\\.dv\\.nextmedia\\.com/actionnews/[^/]+/(\\d+)/(\\d+)/\\d+" + }, + "nexttv": { + "name": "nexttv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?nexttv\\.com\\.tw/(?:[^/]+/)+(\\d+)" + ], + "regexp": "https?://(?:www\\.)?nexttv\\.com\\.tw/(?:[^/]+/)+(\\d+)" + }, + "nexx": { + "name": "nexx", + "type": "free", + "domains": [ + "api.nexx.cloud", + "api.nexxcdn.com", + "arc.nexx.cloud" + ], + "regexps": [ + "(?:https?://api\\.nexx(?:\\.cloud|cdn\\.com)/v3(?:\\.\\d)?/(\\d+)/videos/byid/|nexx:(?:(\\d+):)?|https?://arc\\.nexx\\.cloud/api/video/)(\\d+)" + ], + "regexp": "(?:https?://api\\.nexx(?:\\.cloud|cdn\\.com)/v3(?:\\.\\d)?/(\\d+)/videos/byid/|nexx:(?:(\\d+):)?|https?://arc\\.nexx\\.cloud/api/video/)(\\d+)" + }, + "nexxembed": { + "name": "nexxembed", + "type": "free", + "domains": [ + "embed.nexx.cloud" + ], + "regexps": [ + "https?://embed\\.nexx(?:\\.cloud|cdn\\.com)/\\d+/(?:video/)?([^/?#&]+)" + ], + "regexp": "https?://embed\\.nexx(?:\\.cloud|cdn\\.com)/\\d+/(?:video/)?([^/?#&]+)" + }, + "nfb": { + "name": "nfb", + "type": "free", + "domains": [ + "nfb.ca", + "onf.ca" + ], + "regexps": [ + "https?://(?:www\\.)?(nfb|onf)\\.ca/(film)/([^/?#&]+)", + "https?://(?:www\\.)?(nfb|onf)\\.ca/(series?)/([^/?#&]+/s(?:ea|ai)son\\d+/episode\\d+)", + "https?://(?:www\\.)?(nfb|onf)\\.ca/(series?)/([^/?#&]+)/?(?:[?#]|$)" + ], + "regexp": "(https?://(?:www\\.)?(nfb|onf)\\.ca/(film)/([^/?#&]+))|(https?://(?:www\\.)?(nfb|onf)\\.ca/(series?)/([^/?#&]+/s(?:ea|ai)son\\d+/episode\\d+))|(https?://(?:www\\.)?(nfb|onf)\\.ca/(series?)/([^/?#&]+)/?(?:[?#]|$))" + }, + "nfhsnetwork": { + "name": "nfhsnetwork", + "type": "free", + "domains": [ + "nfhsnetwork.com" + ], + "regexps": [ + "https?://(?:www\\.)?nfhsnetwork\\.com/events/[\\w-]+/((?:gam|evt|dd|)?[\\w\\d]{0,10})" + ], + "regexp": "https?://(?:www\\.)?nfhsnetwork\\.com/events/[\\w-]+/((?:gam|evt|dd|)?[\\w\\d]{0,10})" + }, + "nfl.com": { + "name": "nfl.com", + "type": "free", + "domains": [ + "nfl.com", + "chiefs.com", + "buffalobills.com", + "raiders.com" + ], + "regexps": [ + "https?://((?:www\\.)?(?:(?:nfl|buffalobills|miamidolphins|patriots|newyorkjets|baltimoreravens|bengals|clevelandbrowns|steelers|houstontexans|colts|jaguars|(?:titansonline|tennesseetitans)|denverbroncos|(?:kc)?chiefs|raiders|chargers|dallascowboys|giants|philadelphiaeagles|(?:redskins|washingtonfootball)|chicagobears|detroitlions|packers|vikings|atlantafalcons|panthers|neworleanssaints|buccaneers|azcardinals|(?:stlouis|the)rams|49ers|seahawks)\\.com|.+?\\.clubs\\.nfl\\.com))/news/([^/#?&]+)", + "https?://((?:www\\.)?(?:(?:nfl|buffalobills|miamidolphins|patriots|newyorkjets|baltimoreravens|bengals|clevelandbrowns|steelers|houstontexans|colts|jaguars|(?:titansonline|tennesseetitans)|denverbroncos|(?:kc)?chiefs|raiders|chargers|dallascowboys|giants|philadelphiaeagles|(?:redskins|washingtonfootball)|chicagobears|detroitlions|packers|vikings|atlantafalcons|panthers|neworleanssaints|buccaneers|azcardinals|(?:stlouis|the)rams|49ers|seahawks)\\.com|.+?\\.clubs\\.nfl\\.com))/(?:videos?|listen|audio)/([^/#?&]+)", + "https?://(?:www\\.)?nfl\\.com/plus/episodes/([\\w-]+)", + "https?://(?:www\\.)?nfl\\.com/plus/games/([\\w-]+)(?:/(\\d+))?" + ], + "regexp": "(https?://((?:www\\.)?(?:(?:nfl|buffalobills|miamidolphins|patriots|newyorkjets|baltimoreravens|bengals|clevelandbrowns|steelers|houstontexans|colts|jaguars|(?:titansonline|tennesseetitans)|denverbroncos|(?:kc)?chiefs|raiders|chargers|dallascowboys|giants|philadelphiaeagles|(?:redskins|washingtonfootball)|chicagobears|detroitlions|packers|vikings|atlantafalcons|panthers|neworleanssaints|buccaneers|azcardinals|(?:stlouis|the)rams|49ers|seahawks)\\.com|.+?\\.clubs\\.nfl\\.com))/news/([^/#?&]+))|(https?://((?:www\\.)?(?:(?:nfl|buffalobills|miamidolphins|patriots|newyorkjets|baltimoreravens|bengals|clevelandbrowns|steelers|houstontexans|colts|jaguars|(?:titansonline|tennesseetitans)|denverbroncos|(?:kc)?chiefs|raiders|chargers|dallascowboys|giants|philadelphiaeagles|(?:redskins|washingtonfootball)|chicagobears|detroitlions|packers|vikings|atlantafalcons|panthers|neworleanssaints|buccaneers|azcardinals|(?:stlouis|the)rams|49ers|seahawks)\\.com|.+?\\.clubs\\.nfl\\.com))/(?:videos?|listen|audio)/([^/#?&]+))|(https?://(?:www\\.)?nfl\\.com/plus/episodes/([\\w-]+))|(https?://(?:www\\.)?nfl\\.com/plus/games/([\\w-]+)(?:/(\\d+))?)" + }, + "nhkforschoolbangumi": { + "name": "nhkforschoolbangumi", + "type": "free", + "domains": [ + "www2.nhk.or.jp" + ], + "regexps": [ + "https?://www2\\.nhk\\.or\\.jp/school/movie/(bangumi|clip)\\.cgi\\?das_id=([a-zA-Z0-9_-]+)" + ], + "regexp": "https?://www2\\.nhk\\.or\\.jp/school/movie/(bangumi|clip)\\.cgi\\?das_id=([a-zA-Z0-9_-]+)" + }, + "nhkforschoolprogramlist": { + "name": "nhkforschoolprogramlist", + "type": "free", + "domains": [ + "nhk.or.jp" + ], + "regexps": [ + "https?://www\\.nhk\\.or\\.jp/school/((?:rika|syakai|kokugo|sansuu|seikatsu|doutoku|ongaku|taiiku|zukou|gijutsu|katei|sougou|eigo|tokkatsu|tokushi|sonota)/[a-zA-Z0-9_-]+)" + ], + "regexp": "https?://www\\.nhk\\.or\\.jp/school/((?:rika|syakai|kokugo|sansuu|seikatsu|doutoku|ongaku|taiiku|zukou|gijutsu|katei|sougou|eigo|tokkatsu|tokushi|sonota)/[a-zA-Z0-9_-]+)" + }, + "nhkforschoolsubject": { + "name": "nhkforschoolsubject", + "type": "free", + "domains": [ + "nhk.or.jp" + ], + "regexps": [ + "https?://www\\.nhk\\.or\\.jp/school/(rika|syakai|kokugo|sansuu|seikatsu|doutoku|ongaku|taiiku|zukou|gijutsu|katei|sougou|eigo|tokkatsu|tokushi|sonota)/?(?:[\\?#].*)?$" + ], + "regexp": "https?://www\\.nhk\\.or\\.jp/school/(rika|syakai|kokugo|sansuu|seikatsu|doutoku|ongaku|taiiku|zukou|gijutsu|katei|sougou|eigo|tokkatsu|tokushi|sonota)/?(?:[\\?#].*)?$" + }, + "nhkradionewspage": { + "name": "nhkradionewspage", + "type": "free", + "domains": [ + "nhk.or.jp" + ], + "regexps": [ + "https?://www\\.nhk\\.or\\.jp/radionews/?(?:$|[?#])" + ], + "regexp": "https?://www\\.nhk\\.or\\.jp/radionews/?(?:$|[?#])" + }, + "nhkradiru": { + "name": "nhkradiru", + "type": "free", + "domains": [ + "nhk.or.jp" + ], + "regexps": [ + "https?://www\\.nhk\\.or\\.jp/radio/(?:player/ondemand|ondemand/detail)\\.html\\?p=([\\da-zA-Z]+)_([\\da-zA-Z]+)(?:_([\\da-zA-Z]+))?" + ], + "regexp": "https?://www\\.nhk\\.or\\.jp/radio/(?:player/ondemand|ondemand/detail)\\.html\\?p=([\\da-zA-Z]+)_([\\da-zA-Z]+)(?:_([\\da-zA-Z]+))?" + }, + "nhkradirulive": { + "name": "nhkradirulive", + "type": "free", + "domains": [ + "nhk.or.jp" + ], + "regexps": [ + "https?://www\\.nhk\\.or\\.jp/radio/player/\\?ch=(r[12]|fm)" + ], + "regexp": "https?://www\\.nhk\\.or\\.jp/radio/player/\\?ch=(r[12]|fm)" + }, + "nhkvod": { + "name": "nhkvod", + "type": "free", + "domains": [ + "www3.nhk.or.jp" + ], + "regexps": [ + "https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/shows/(?:(video)/)?(\\d{4}[\\da-z]\\d+)/?(?:$|[?#])", + "https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/(?:ondemand|shows)/(audio)/([^/?#]+?-\\d{8}-[\\da-z]+)", + "https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/ondemand/(video)/(\\d{4}[\\da-z]\\d+)" + ], + "regexp": "(https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/shows/(?:(video)/)?(\\d{4}[\\da-z]\\d+)/?(?:$|[?#]))|(https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/(?:ondemand|shows)/(audio)/([^/?#]+?-\\d{8}-[\\da-z]+))|(https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/ondemand/(video)/(\\d{4}[\\da-z]\\d+))" + }, + "nhkvodprogram": { + "name": "nhkvodprogram", + "type": "free", + "domains": [ + "www3.nhk.or.jp" + ], + "regexps": [ + "https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/(?:shows|tv)/(?:(audio)/programs/)?(\\w+)/?(?:\\?(?:[^#]+&)?type=(clip|(?:radio|tv)Episode))?" + ], + "regexp": "https?://www3\\.nhk\\.or\\.jp/nhkworld/([a-z]{2})/(?:shows|tv)/(?:(audio)/programs/)?(\\w+)/?(?:\\?(?:[^#]+&)?type=(clip|(?:radio|tv)Episode))?" + }, + "nhl.com": { + "name": "nhl.com", + "type": "free", + "domains": [ + "nhl.com", + "wch2016.com" + ], + "regexps": [ + "https?://(?:www\\.)?(nhl|wch2016)\\.com/(?:[^/]+/)*c-(\\d+)" + ], + "regexp": "https?://(?:www\\.)?(nhl|wch2016)\\.com/(?:[^/]+/)*c-(\\d+)" + }, + "nick.com": { + "name": "nick.com", + "type": "free", + "domains": [ + "nick.com" + ], + "regexps": [ + "https?://(?:www\\.)?nick\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + ], + "regexp": "https?://(?:www\\.)?nick\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + }, + "niconico": { + "name": "niconico", + "type": "free", + "domains": [ + "nicovideo.jp", + "sp.nicovideo.jp", + "live.nicovideo.jp", + "nico.ms" + ], + "regexps": [ + "https?://(?:www\\.|sp\\.)?nicovideo\\.jp/my/(history(?:/like)?)", + "https?://(?:(?:embed|sp|www)\\.)?nicovideo\\.jp/watch/((?:[a-z]{2})?\\d+)", + "https?://(?:sp\\.)?live2?\\.nicovideo\\.jp/(?:watch|gate)/(lv\\d+)", + "https?://(?:(?:www\\.|sp\\.)?nicovideo\\.jp|nico\\.ms)/(?:user/\\d+/)?(?:my/)?mylist/(?:#/)?(\\d+)", + "https?://(?:(?:www\\.|sp\\.)?nicovideo\\.jp(?:/user/\\d+)?|nico\\.ms)/series/(\\d+)", + "https?://(?:www\\.)?nicovideo\\.jp/tag/([^?#&]+)?" + ], + "regexp": "(https?://(?:www\\.|sp\\.)?nicovideo\\.jp/my/(history(?:/like)?))|(https?://(?:(?:embed|sp|www)\\.)?nicovideo\\.jp/watch/((?:[a-z]{2})?\\d+))|(https?://(?:sp\\.)?live2?\\.nicovideo\\.jp/(?:watch|gate)/(lv\\d+))|(https?://(?:(?:www\\.|sp\\.)?nicovideo\\.jp|nico\\.ms)/(?:user/\\d+/)?(?:my/)?mylist/(?:#/)?(\\d+))|(https?://(?:(?:www\\.|sp\\.)?nicovideo\\.jp(?:/user/\\d+)?|nico\\.ms)/series/(\\d+))|(https?://(?:www\\.)?nicovideo\\.jp/tag/([^?#&]+)?)" + }, + "niconicochannelplus": { + "name": "niconicochannelplus", + "type": "free", + "domains": [ + "nicochannel.jp" + ], + "regexps": [ + "https?://nicochannel\\.jp/([a-z\\d\\._-]+)/lives", + "https?://nicochannel\\.jp/([a-z\\d\\._-]+)/videos(?:\\?.*)?", + "https?://nicochannel\\.jp/([\\w.-]+)/(?:video|live)/(sm\\w+)" + ], + "regexp": "(https?://nicochannel\\.jp/([a-z\\d\\._-]+)/lives)|(https?://nicochannel\\.jp/([a-z\\d\\._-]+)/videos(?:\\?.*)?)|(https?://nicochannel\\.jp/([\\w.-]+)/(?:video|live)/(sm\\w+))" + }, + "niconicouser": { + "name": "niconicouser", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?nicovideo\\.jp/user/(\\d+)(?:/video)?/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?nicovideo\\.jp/user/(\\d+)(?:/video)?/?(?:$|[#?])" + }, + "nicovideo": { + "name": "nicovideo", + "type": "free", + "domains": [ + "nicovideo.jp" + ], + "regexps": [ + "nicosearchdate(|[1-9][0-9]*|all):([\\s\\S]+)", + "nicosearch(|[1-9][0-9]*|all):([\\s\\S]+)", + "https?://(?:www\\.)?nicovideo\\.jp/search/([^?#&]+)?" + ], + "regexp": "(nicosearchdate(|[1-9][0-9]*|all):([\\s\\S]+))|(nicosearch(|[1-9][0-9]*|all):([\\s\\S]+))|(https?://(?:www\\.)?nicovideo\\.jp/search/([^?#&]+)?)" + }, + "ninaprotocol": { + "name": "ninaprotocol", + "type": "free", + "domains": [ + "ninaprotocol.com" + ], + "regexps": [ + "https?://(?:www\\.)?ninaprotocol\\.com/releases/([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?ninaprotocol\\.com/releases/([^/#?]+)" + }, + "nintendo": { + "name": "nintendo", + "type": "free", + "domains": [ + "nintendo.com" + ], + "regexps": [ + "https?://(?:www\\.)?nintendo\\.com/(?:(\\w{2}(?:-\\w{2})?)/)?nintendo-direct/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?nintendo\\.com/(?:(\\w{2}(?:-\\w{2})?)/)?nintendo-direct/([^/?#]+)" + }, + "nitter": { + "name": "nitter", + "type": "free", + "domains": [ + "nitter.priv.pw" + ], + "regexps": [ + "https?://(?:3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad\\.onion|nitter\\.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd\\.onion|nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd\\.onion|npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid\\.onion|nitter\\.v6vgyqpa7yefkorazmg5d5fimstmvm2vtbirt6676mt7qmllrcnwycqd\\.onion|i23nv6w3juvzlw32xzoxcqzktegd4i4fu3nmnc2ewv4ggiu4ledwklad\\.onion|26oq3gioiwcmfojub37nz5gzbkdiqp7fue5kvye7d4txv4ny6fb4wwid\\.onion|vfaomgh4jxphpbdfizkm5gbtjahmei234giqj4facbwhrfjtcldauqad\\.onion|iwgu3cv7ywf3gssed5iqtavmrlszgsxazkmwwnt4h2kdait75thdyrqd\\.onion|erpnncl5nhyji3c32dcfmztujtl3xaddqb457jsbkulq24zqq7ifdgad\\.onion|ckzuw5misyahmg7j5t5xwwuj3bwy62jfolxyux4brfflramzsvvd3syd\\.onion|jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid\\.onion|nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad\\.onion|nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd\\.onion|nitter\\.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd\\.onion|ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad\\.onion|ec5nvbycpfa5k6ro77blxgkyrzbkv7uy6r5cngcbkadtjj2733nm3uyd\\.onion|nitter\\.i2p|u6ikd6zndl3c4dsdq4mmujpntgeevdk5qzkfb57r4tnfeccrn2qa\\.b32\\.i2p|nitterlgj3n5fgwesu3vxc5h67ruku33nqaoeoocae2mvlzhsu6k7fqd\\.onion|nitter\\.lacontrevoie\\.fr|nitter\\.fdn\\.fr|nitter\\.1d4\\.us|nitter\\.kavin\\.rocks|nitter\\.unixfox\\.eu|nitter\\.domain\\.glass|nitter\\.namazso\\.eu|birdsite\\.xanny\\.family|nitter\\.moomoo\\.me|bird\\.trom\\.tf|nitter\\.it|twitter\\.censors\\.us|nitter\\.grimneko\\.de|twitter\\.076\\.ne\\.jp|nitter\\.fly\\.dev|notabird\\.site|nitter\\.weiler\\.rocks|nitter\\.sethforprivacy\\.com|nitter\\.cutelab\\.space|nitter\\.nl|nitter\\.mint\\.lgbt|nitter\\.bus\\-hit\\.me|nitter\\.esmailelbob\\.xyz|tw\\.artemislena\\.eu|nitter\\.winscloud\\.net|nitter\\.tiekoetter\\.com|nitter\\.spaceint\\.fr|nitter\\.privacy\\.com\\.de|nitter\\.poast\\.org|nitter\\.bird\\.froth\\.zone|nitter\\.dcs0\\.hu|twitter\\.dr460nf1r3\\.org|nitter\\.garudalinux\\.org|twitter\\.femboy\\.hu|nitter\\.cz|nitter\\.privacydev\\.net|nitter\\.evil\\.site|tweet\\.lambda\\.dance|nitter\\.kylrth\\.com|nitter\\.foss\\.wtf|nitter\\.priv\\.pw|nitter\\.tokhmi\\.xyz|nitter\\.catalyst\\.sx|unofficialbird\\.com|nitter\\.projectsegfau\\.lt|nitter\\.eu\\.projectsegfau\\.lt|singapore\\.unofficialbird\\.com|canada\\.unofficialbird\\.com|india\\.unofficialbird\\.com|nederland\\.unofficialbird\\.com|uk\\.unofficialbird\\.com|n\\.l5\\.ca|nitter\\.slipfox\\.xyz|nitter\\.soopy\\.moe|nitter\\.qwik\\.space|read\\.whatever\\.social|nitter\\.rawbit\\.ninja|nt\\.vern\\.cc|ntr\\.odyssey346\\.dev|nitter\\.ir|nitter\\.privacytools\\.io|nitter\\.sneed\\.network|n\\.sneed\\.network|nitter\\.manasiwibi\\.com|nitter\\.smnz\\.de|nitter\\.twei\\.space|nitter\\.inpt\\.fr|nitter\\.d420\\.de|nitter\\.caioalonso\\.com|nitter\\.at|nitter\\.drivet\\.xyz|nitter\\.pw|nitter\\.nicfab\\.eu|bird\\.habedieeh\\.re|nitter\\.hostux\\.net|nitter\\.adminforge\\.de|nitter\\.platypush\\.tech|nitter\\.mask\\.sh|nitter\\.pufe\\.org|nitter\\.us\\.projectsegfau\\.lt|nitter\\.arcticfoxes\\.net|t\\.com\\.sb|nitter\\.kling\\.gg|nitter\\.ktachibana\\.party|nitter\\.riverside\\.rocks|nitter\\.girlboss\\.ceo|nitter\\.lunar\\.icu|twitter\\.moe\\.ngo|nitter\\.freedit\\.eu|ntr\\.frail\\.duckdns\\.org|nitter\\.librenode\\.org|n\\.opnxng\\.com|nitter\\.plus\\.st|nitter\\.ethibox\\.fr|nitter\\.net|is\\-nitter\\.resolv\\.ee|lu\\-nitter\\.resolv\\.ee|nitter\\.13ad\\.de|nitter\\.40two\\.app|nitter\\.cattube\\.org|nitter\\.cc|nitter\\.dark\\.fail|nitter\\.himiko\\.cloud|nitter\\.koyu\\.space|nitter\\.mailstation\\.de|nitter\\.mastodont\\.cat|nitter\\.tedomum\\.net|nitter\\.tokhmi\\.xyz|nitter\\.weaponizedhumiliation\\.com|nitter\\.vxempire\\.xyz|tweet\\.lambda\\.dance|nitter\\.ca|nitter\\.42l\\.fr|nitter\\.pussthecat\\.org|nitter\\.nixnet\\.services|nitter\\.eu|nitter\\.actionsack\\.com|nitter\\.hu|twitr\\.gq|nittereu\\.moomoo\\.me|bird\\.from\\.tf|twitter\\.grimneko\\.de|nitter\\.alefvanoon\\.xyz|n\\.hyperborea\\.cloud|twitter\\.mstdn\\.social|nitter\\.silkky\\.cloud|nttr\\.stream|fuckthesacklers\\.network|nitter\\.govt\\.land|nitter\\.datatunnel\\.xyz|de\\.nttr\\.stream|twtr\\.bch\\.bar|nitter\\.exonip\\.de|nitter\\.mastodon\\.pro|nitter\\.notraxx\\.ch|nitter\\.skrep\\.in|nitter\\.snopyta\\.org)/(.+)/status/([0-9]+)(#.)?" + ], + "regexp": "https?://(?:3nzoldnxplag42gqjs23xvghtzf6t6yzssrtytnntc6ppc7xxuoneoad\\.onion|nitter\\.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd\\.onion|nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd\\.onion|npf37k3mtzwxreiw52ccs5ay4e6qt2fkcs2ndieurdyn2cuzzsfyfvid\\.onion|nitter\\.v6vgyqpa7yefkorazmg5d5fimstmvm2vtbirt6676mt7qmllrcnwycqd\\.onion|i23nv6w3juvzlw32xzoxcqzktegd4i4fu3nmnc2ewv4ggiu4ledwklad\\.onion|26oq3gioiwcmfojub37nz5gzbkdiqp7fue5kvye7d4txv4ny6fb4wwid\\.onion|vfaomgh4jxphpbdfizkm5gbtjahmei234giqj4facbwhrfjtcldauqad\\.onion|iwgu3cv7ywf3gssed5iqtavmrlszgsxazkmwwnt4h2kdait75thdyrqd\\.onion|erpnncl5nhyji3c32dcfmztujtl3xaddqb457jsbkulq24zqq7ifdgad\\.onion|ckzuw5misyahmg7j5t5xwwuj3bwy62jfolxyux4brfflramzsvvd3syd\\.onion|jebqj47jgxleaiosfcxfibx2xdahjettuydlxbg64azd4khsxv6kawid\\.onion|nttr2iupbb6fazdpr2rgbooon2tzbbsvvkagkgkwohhodjzj43stxhad\\.onion|nitraeju2mipeziu2wtcrqsxg7h62v5y4eqgwi75uprynkj74gevvuqd\\.onion|nitter\\.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd\\.onion|ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad\\.onion|ec5nvbycpfa5k6ro77blxgkyrzbkv7uy6r5cngcbkadtjj2733nm3uyd\\.onion|nitter\\.i2p|u6ikd6zndl3c4dsdq4mmujpntgeevdk5qzkfb57r4tnfeccrn2qa\\.b32\\.i2p|nitterlgj3n5fgwesu3vxc5h67ruku33nqaoeoocae2mvlzhsu6k7fqd\\.onion|nitter\\.lacontrevoie\\.fr|nitter\\.fdn\\.fr|nitter\\.1d4\\.us|nitter\\.kavin\\.rocks|nitter\\.unixfox\\.eu|nitter\\.domain\\.glass|nitter\\.namazso\\.eu|birdsite\\.xanny\\.family|nitter\\.moomoo\\.me|bird\\.trom\\.tf|nitter\\.it|twitter\\.censors\\.us|nitter\\.grimneko\\.de|twitter\\.076\\.ne\\.jp|nitter\\.fly\\.dev|notabird\\.site|nitter\\.weiler\\.rocks|nitter\\.sethforprivacy\\.com|nitter\\.cutelab\\.space|nitter\\.nl|nitter\\.mint\\.lgbt|nitter\\.bus\\-hit\\.me|nitter\\.esmailelbob\\.xyz|tw\\.artemislena\\.eu|nitter\\.winscloud\\.net|nitter\\.tiekoetter\\.com|nitter\\.spaceint\\.fr|nitter\\.privacy\\.com\\.de|nitter\\.poast\\.org|nitter\\.bird\\.froth\\.zone|nitter\\.dcs0\\.hu|twitter\\.dr460nf1r3\\.org|nitter\\.garudalinux\\.org|twitter\\.femboy\\.hu|nitter\\.cz|nitter\\.privacydev\\.net|nitter\\.evil\\.site|tweet\\.lambda\\.dance|nitter\\.kylrth\\.com|nitter\\.foss\\.wtf|nitter\\.priv\\.pw|nitter\\.tokhmi\\.xyz|nitter\\.catalyst\\.sx|unofficialbird\\.com|nitter\\.projectsegfau\\.lt|nitter\\.eu\\.projectsegfau\\.lt|singapore\\.unofficialbird\\.com|canada\\.unofficialbird\\.com|india\\.unofficialbird\\.com|nederland\\.unofficialbird\\.com|uk\\.unofficialbird\\.com|n\\.l5\\.ca|nitter\\.slipfox\\.xyz|nitter\\.soopy\\.moe|nitter\\.qwik\\.space|read\\.whatever\\.social|nitter\\.rawbit\\.ninja|nt\\.vern\\.cc|ntr\\.odyssey346\\.dev|nitter\\.ir|nitter\\.privacytools\\.io|nitter\\.sneed\\.network|n\\.sneed\\.network|nitter\\.manasiwibi\\.com|nitter\\.smnz\\.de|nitter\\.twei\\.space|nitter\\.inpt\\.fr|nitter\\.d420\\.de|nitter\\.caioalonso\\.com|nitter\\.at|nitter\\.drivet\\.xyz|nitter\\.pw|nitter\\.nicfab\\.eu|bird\\.habedieeh\\.re|nitter\\.hostux\\.net|nitter\\.adminforge\\.de|nitter\\.platypush\\.tech|nitter\\.mask\\.sh|nitter\\.pufe\\.org|nitter\\.us\\.projectsegfau\\.lt|nitter\\.arcticfoxes\\.net|t\\.com\\.sb|nitter\\.kling\\.gg|nitter\\.ktachibana\\.party|nitter\\.riverside\\.rocks|nitter\\.girlboss\\.ceo|nitter\\.lunar\\.icu|twitter\\.moe\\.ngo|nitter\\.freedit\\.eu|ntr\\.frail\\.duckdns\\.org|nitter\\.librenode\\.org|n\\.opnxng\\.com|nitter\\.plus\\.st|nitter\\.ethibox\\.fr|nitter\\.net|is\\-nitter\\.resolv\\.ee|lu\\-nitter\\.resolv\\.ee|nitter\\.13ad\\.de|nitter\\.40two\\.app|nitter\\.cattube\\.org|nitter\\.cc|nitter\\.dark\\.fail|nitter\\.himiko\\.cloud|nitter\\.koyu\\.space|nitter\\.mailstation\\.de|nitter\\.mastodont\\.cat|nitter\\.tedomum\\.net|nitter\\.tokhmi\\.xyz|nitter\\.weaponizedhumiliation\\.com|nitter\\.vxempire\\.xyz|tweet\\.lambda\\.dance|nitter\\.ca|nitter\\.42l\\.fr|nitter\\.pussthecat\\.org|nitter\\.nixnet\\.services|nitter\\.eu|nitter\\.actionsack\\.com|nitter\\.hu|twitr\\.gq|nittereu\\.moomoo\\.me|bird\\.from\\.tf|twitter\\.grimneko\\.de|nitter\\.alefvanoon\\.xyz|n\\.hyperborea\\.cloud|twitter\\.mstdn\\.social|nitter\\.silkky\\.cloud|nttr\\.stream|fuckthesacklers\\.network|nitter\\.govt\\.land|nitter\\.datatunnel\\.xyz|de\\.nttr\\.stream|twtr\\.bch\\.bar|nitter\\.exonip\\.de|nitter\\.mastodon\\.pro|nitter\\.notraxx\\.ch|nitter\\.skrep\\.in|nitter\\.snopyta\\.org)/(.+)/status/([0-9]+)(#.)?" + }, + "njoy": { + "name": "njoy", + "type": "free", + "domains": [ + "n-joy.de" + ], + "regexps": [ + "https?://(?:www\\.)?n-joy\\.de/(?:[^/]+/)*([\\da-z]+)-(?:player|externalPlayer)_[^/]+\\.html", + "https?://(?:www\\.)?n-joy\\.de/(?:[^/]+/)*(?:([^/?#]+),)?([\\da-z]+)\\.html" + ], + "regexp": "(https?://(?:www\\.)?n-joy\\.de/(?:[^/]+/)*([\\da-z]+)-(?:player|externalPlayer)_[^/]+\\.html)|(https?://(?:www\\.)?n-joy\\.de/(?:[^/]+/)*(?:([^/?#]+),)?([\\da-z]+)\\.html)" + }, + "nobelprize": { + "name": "nobelprize", + "type": "free", + "domains": [ + "nobelprize.org", + "mediaplayer.nobelprize.org" + ], + "regexps": [ + "https?://(?:(?:mediaplayer|www)\\.)?nobelprize\\.org/mediaplayer/" + ], + "regexp": "https?://(?:(?:mediaplayer|www)\\.)?nobelprize\\.org/mediaplayer/" + }, + "noicepodcast": { + "name": "noicepodcast", + "type": "free", + "domains": [ + "open.noice.id" + ], + "regexps": [ + "https?://open\\.noice\\.id/content/([a-fA-F0-9-]+)" + ], + "regexp": "https?://open\\.noice\\.id/content/([a-fA-F0-9-]+)" + }, + "nonktube": { + "name": "nonktube", + "type": "free", + "domains": [ + "nonktube.com" + ], + "regexps": [ + "https?://(?:www\\.)?nonktube\\.com/(?:(?:video|embed)/|media/nuevo/embed\\.php\\?.*?\\bid=)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?nonktube\\.com/(?:(?:video|embed)/|media/nuevo/embed\\.php\\?.*?\\bid=)(\\d+)" + }, + "noodlemagazine": { + "name": "noodlemagazine", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www|adult\\.)?noodlemagazine\\.com/watch/([0-9-_]+)" + ], + "regexp": "https?://(?:www|adult\\.)?noodlemagazine\\.com/watch/([0-9-_]+)" + }, + "nosnlarticle": { + "name": "nosnlarticle", + "type": "free", + "domains": [ + "nos.nl" + ], + "regexps": [ + "https?://nos\\.nl/(video|(\\w+/)?\\w+)/?\\d+-([\\w-]+)" + ], + "regexp": "https?://nos\\.nl/(video|(\\w+/)?\\w+)/?\\d+-([\\w-]+)" + }, + "nova": { + "name": "nova", + "type": "free", + "domains": [ + "tn.nova.cz", + "fanda.nova.cz", + "novaplus.nova.cz", + "sport.tn.nova.cz", + "doma.nova.cz", + "prask.nova.cz", + "tv.nova.cz" + ], + "regexps": [ + "https?://(?:[^.]+\\.)?(tv(?:noviny)?|tn|novaplus|vymena|fanda|krasna|doma|prask)\\.nova\\.cz/(?:[^/]+/)+([^/]+?)(?:\\.html|/|$)" + ], + "regexp": "https?://(?:[^.]+\\.)?(tv(?:noviny)?|tn|novaplus|vymena|fanda|krasna|doma|prask)\\.nova\\.cz/(?:[^/]+/)+([^/]+?)(?:\\.html|/|$)" + }, + "novaembed": { + "name": "novaembed", + "type": "free", + "domains": [ + "media.cms.nova.cz", + "mediatn.cms.nova.cz" + ], + "regexps": [ + "https?://media(?:tn)?\\.cms\\.nova\\.cz/embed/([^/?#&]+)" + ], + "regexp": "https?://media(?:tn)?\\.cms\\.nova\\.cz/embed/([^/?#&]+)" + }, + "novaplay": { + "name": "novaplay", + "type": "free", + "domains": [ + "play.nova.bg" + ], + "regexps": [ + "https?://play\\.nova\\.bg/video/[^?#]+/(\\d+)" + ], + "regexp": "https?://play\\.nova\\.bg/video/[^?#]+/(\\d+)" + }, + "nowcanal": { + "name": "nowcanal", + "type": "free", + "domains": [ + "nowcanal.pt" + ], + "regexps": [ + "https?://(?:www\\.)?nowcanal\\.pt(?:/[\\w-]+)+/detalhe/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?nowcanal\\.pt(?:/[\\w-]+)+/detalhe/([\\w-]+)" + }, + "nowness": { + "name": "nowness", + "type": "free", + "domains": [ + "nowness.com", + "cn.nowness.com" + ], + "regexps": [ + "https?://(?:(?:www|cn)\\.)?nowness\\.com/(?:story|(?:series|category)/[^/]+)/([^/]+?)(?:$|[?#])", + "https?://(?:(?:www|cn)\\.)?nowness\\.com/playlist/(\\d+)", + "https?://(?:(?:www|cn)\\.)?nowness\\.com/series/([^/]+?)(?:$|[?#])" + ], + "regexp": "(https?://(?:(?:www|cn)\\.)?nowness\\.com/(?:story|(?:series|category)/[^/]+)/([^/]+?)(?:$|[?#]))|(https?://(?:(?:www|cn)\\.)?nowness\\.com/playlist/(\\d+))|(https?://(?:(?:www|cn)\\.)?nowness\\.com/series/([^/]+?)(?:$|[?#]))" + }, + "noz": { + "name": "noz", + "type": "free", + "domains": [ + "noz.de" + ], + "regexps": [ + "https?://(?:www\\.)?noz\\.de/video/([0-9]+)/" + ], + "regexp": "https?://(?:www\\.)?noz\\.de/video/([0-9]+)/" + }, + "npo": { + "name": "npo", + "type": "free", + "domains": [ + "npo.nl", + "ntr.nl", + "omroepwnl.nl", + "zapp.nl", + "npo3.nl", + "npostart.nl" + ], + "regexps": [ + "(?:npo:|https?://(?:www\\.)?(?:npo\\.nl/(?:[^/]+/)*|(?:ntr|npostart)\\.nl/(?:[^/]+/){2,}|omroepwnl\\.nl/video/fragment/[^/]+__|(?:zapp|npo3)\\.nl/(?:[^/]+/){2,}))([^/?#]+)" + ], + "regexp": "(?:npo:|https?://(?:www\\.)?(?:npo\\.nl/(?:[^/]+/)*|(?:ntr|npostart)\\.nl/(?:[^/]+/){2,}|omroepwnl\\.nl/video/fragment/[^/]+__|(?:zapp|npo3)\\.nl/(?:[^/]+/){2,}))([^/?#]+)" + }, + "npo.nl": { + "name": "npo.nl", + "type": "free", + "domains": [ + "npo.nl", + "npostart.nl" + ], + "regexps": [ + "https?://(?:www\\.)?npo(?:start)?\\.nl/live(?:/([^/?#&]+))?", + "https?://(?:www\\.)?npo\\.nl/radio/[^/]+/fragment/(\\d+)", + "https?://(?:www\\.)?npo\\.nl/radio/([^/]+)" + ], + "regexp": "(https?://(?:www\\.)?npo(?:start)?\\.nl/live(?:/([^/?#&]+))?)|(https?://(?:www\\.)?npo\\.nl/radio/[^/]+/fragment/(\\d+))|(https?://(?:www\\.)?npo\\.nl/radio/([^/]+))" + }, + "npr": { + "name": "npr", + "type": "free", + "domains": [ + "npr.org" + ], + "regexps": [ + "https?://(?:www\\.)?npr\\.org/(?:sections/[^/]+/)?\\d{4}/\\d{2}/\\d{2}/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?npr\\.org/(?:sections/[^/]+/)?\\d{4}/\\d{2}/\\d{2}/(\\d+)" + }, + "nrk": { + "name": "nrk", + "type": "free", + "domains": [ + "nrk.no", + "v8-psapi.nrk.no" + ], + "regexps": [ + "(?:nrk:|https?://(?:(?:www\\.)?nrk\\.no/video/(?:PS\\*|[^_]+_)|v8[-.]psapi\\.nrk\\.no/mediaelement/))([^?\\#&]+)" + ], + "regexp": "(?:nrk:|https?://(?:(?:www\\.)?nrk\\.no/video/(?:PS\\*|[^_]+_)|v8[-.]psapi\\.nrk\\.no/mediaelement/))([^?\\#&]+)" + }, + "nrkplaylist": { + "name": "nrkplaylist", + "type": "free", + "domains": [ + "nrk.no" + ], + "regexps": [ + "https?://(?:www\\.)?nrk\\.no/(?!video|skole)(?:[^/]+/)+([^/]+)" + ], + "regexp": "https?://(?:www\\.)?nrk\\.no/(?!video|skole)(?:[^/]+/)+([^/]+)" + }, + "nrkradiopodkast": { + "name": "nrkradiopodkast", + "type": "free", + "domains": [ + "radio.nrk.no" + ], + "regexps": [ + "https?://radio\\.nrk\\.no/pod[ck]ast/(?:[^/]+/)+(l_[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + ], + "regexp": "https?://radio\\.nrk\\.no/pod[ck]ast/(?:[^/]+/)+(l_[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + }, + "nrkskole": { + "name": "nrkskole", + "type": "free", + "domains": [ + "nrk.no" + ], + "regexps": [ + "https?://(?:www\\.)?nrk\\.no/skole/?\\?.*\\bmediaId=(\\d+)" + ], + "regexp": "https?://(?:www\\.)?nrk\\.no/skole/?\\?.*\\bmediaId=(\\d+)" + }, + "nrktv": { + "name": "nrktv", + "type": "free", + "domains": [ + "tv.nrk.no", + "radio.nrk.no" + ], + "regexps": [ + "https?://(?:tv|radio)\\.nrk(?:super)?\\.no/(?:[^/]+/)*([a-zA-Z]{4}\\d{8})" + ], + "regexp": "https?://(?:tv|radio)\\.nrk(?:super)?\\.no/(?:[^/]+/)*([a-zA-Z]{4}\\d{8})" + }, + "nrktvdirekte": { + "name": "nrktvdirekte", + "type": "free", + "domains": [ + "tv.nrk.no", + "radio.nrk.no" + ], + "regexps": [ + "https?://(?:tv|radio)\\.nrk\\.no/direkte/([^/?#&]+)" + ], + "regexp": "https?://(?:tv|radio)\\.nrk\\.no/direkte/([^/?#&]+)" + }, + "nrktvepisode": { + "name": "nrktvepisode", + "type": "free", + "domains": [ + "tv.nrk.no" + ], + "regexps": [ + "https?://tv\\.nrk\\.no/serie/([^/?#]+/sesong/(\\d+)/episode/(\\d+))" + ], + "regexp": "https?://tv\\.nrk\\.no/serie/([^/?#]+/sesong/(\\d+)/episode/(\\d+))" + }, + "nrktvepisodes": { + "name": "nrktvepisodes", + "type": "free", + "domains": [ + "tv.nrk.no" + ], + "regexps": [ + "https?://tv\\.nrk\\.no/program/[Ee]pisodes/[^/]+/(\\d+)" + ], + "regexp": "https?://tv\\.nrk\\.no/program/[Ee]pisodes/[^/]+/(\\d+)" + }, + "nrktvseason": { + "name": "nrktvseason", + "type": "free", + "domains": [ + "tv.nrk.no", + "radio.nrk.no" + ], + "regexps": [ + "https?://(tv|radio)\\.nrk\\.no/(serie|pod[ck]ast)/([^/]+)/(?:(?:sesong/)?(\\d+)|sesong/([^/?#&]+))" + ], + "regexp": "https?://(tv|radio)\\.nrk\\.no/(serie|pod[ck]ast)/([^/]+)/(?:(?:sesong/)?(\\d+)|sesong/([^/?#&]+))" + }, + "nrktvseries": { + "name": "nrktvseries", + "type": "free", + "domains": [ + "tv.nrk.no", + "tv.nrksuper.no", + "radio.nrk.no", + "nrksuper.no" + ], + "regexps": [ + "https?://((?:tv|radio)\\.nrk|(?:tv\\.)?nrksuper)\\.no/(serie|pod[ck]ast)/([^/]+)" + ], + "regexp": "https?://((?:tv|radio)\\.nrk|(?:tv\\.)?nrksuper)\\.no/(serie|pod[ck]ast)/([^/]+)" + }, + "nrltv": { + "name": "nrltv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?nrl\\.com/tv(/[^/]+)*/([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?nrl\\.com/tv(/[^/]+)*/([^/?&#]+)" + }, + "nts.live": { + "name": "nts.live", + "type": "free", + "domains": [ + "nts.live" + ], + "regexps": [ + "https?://(?:www\\.)?nts\\.live/shows/[^/?#]+/episodes/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?nts\\.live/shows/[^/?#]+/episodes/([^/?#]+)" + }, + "ntv.ru": { + "name": "ntv.ru", + "type": "free", + "domains": [ + "ntv.ru" + ], + "regexps": [ + "https?://(?:www\\.)?ntv\\.ru/(?:[^/#?]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?ntv\\.ru/(?:[^/#?]+/)*([^/?#&]+)" + }, + "nuum": { + "name": "nuum", + "type": "free", + "domains": [ + "nuum.ru" + ], + "regexps": [ + "https?://nuum\\.ru/channel/([^/#?]+)/?(?:$|[#?])", + "https?://nuum\\.ru/(?:streams|videos|clips)/([\\d]+)", + "https?://nuum\\.ru/channel/([^/#?]+)/(streams|videos|clips)" + ], + "regexp": "(https?://nuum\\.ru/channel/([^/#?]+)/?(?:$|[#?]))|(https?://nuum\\.ru/(?:streams|videos|clips)/([\\d]+))|(https?://nuum\\.ru/channel/([^/#?]+)/(streams|videos|clips))" + }, + "nuvid": { + "name": "nuvid", + "type": "free", + "domains": [ + "nuvid.com", + "m.nuvid.com" + ], + "regexps": [ + "https?://(?:www|m)\\.nuvid\\.com/video/([0-9]+)" + ], + "regexp": "https?://(?:www|m)\\.nuvid\\.com/video/([0-9]+)" + }, + "nytimes": { + "name": "nytimes", + "type": "free", + "domains": [ + "nytimes.com" + ], + "regexps": [ + "https?://(?:(?:www\\.)?nytimes\\.com/video/(?:[^/]+/)+?|graphics8\\.nytimes\\.com/bcvideo/\\d+(?:\\.\\d+)?/iframe/embed\\.html\\?videoId=)(\\d+)" + ], + "regexp": "https?://(?:(?:www\\.)?nytimes\\.com/video/(?:[^/]+/)+?|graphics8\\.nytimes\\.com/bcvideo/\\d+(?:\\.\\d+)?/iframe/embed\\.html\\?videoId=)(\\d+)" + }, + "nytimesarticle": { + "name": "nytimesarticle", + "type": "free", + "domains": [ + "nytimes.com" + ], + "regexps": [ + "https?://(?:www\\.)?nytimes\\.com/\\d{4}/\\d{2}/\\d{2}/(?!books|podcasts)[^/?#]+/(?:\\w+/)?([^./?#]+)(?:\\.html)?" + ], + "regexp": "https?://(?:www\\.)?nytimes\\.com/\\d{4}/\\d{2}/\\d{2}/(?!books|podcasts)[^/?#]+/(?:\\w+/)?([^./?#]+)(?:\\.html)?" + }, + "nytimescookingguide": { + "name": "nytimescookingguide", + "type": "free", + "domains": [ + "cooking.nytimes.com" + ], + "regexps": [ + "https?://cooking\\.nytimes\\.com/guides/([\\w-]+)" + ], + "regexp": "https?://cooking\\.nytimes\\.com/guides/([\\w-]+)" + }, + "nytimescookingrecipe": { + "name": "nytimescookingrecipe", + "type": "free", + "domains": [ + "cooking.nytimes.com" + ], + "regexps": [ + "https?://cooking\\.nytimes\\.com/recipes/(\\d+)" + ], + "regexp": "https?://cooking\\.nytimes\\.com/recipes/(\\d+)" + }, + "nzherald": { + "name": "nzherald", + "type": "free", + "domains": [ + "nzherald.co.nz" + ], + "regexps": [ + "https?://(?:www\\.)?nzherald\\.co\\.nz/[\\w\\/-]+\\/([A-Z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?nzherald\\.co\\.nz/[\\w\\/-]+\\/([A-Z0-9]+)" + }, + "nzonscreen": { + "name": "nzonscreen", + "type": "free", + "domains": [ + "nzonscreen.com" + ], + "regexps": [ + "https?://www\\.nzonscreen\\.com/title/([^/?#]+)" + ], + "regexp": "https?://www\\.nzonscreen\\.com/title/([^/?#]+)" + }, + "nzz": { + "name": "nzz", + "type": "free", + "domains": [ + "nzz.ch" + ], + "regexps": [ + "https?://(?:www\\.)?nzz\\.ch/(?:[^/]+/)*[^/?#]+-ld\\.(\\d+)" + ], + "regexp": "https?://(?:www\\.)?nzz\\.ch/(?:[^/]+/)*[^/?#]+-ld\\.(\\d+)" + }, + "ocw.mit.edu": { + "name": "ocw.mit.edu", + "type": "free", + "domains": [ + "ocw.mit.edu" + ], + "regexps": [ + "https?://ocw\\.mit\\.edu/courses/([a-z0-9\\-]+)" + ], + "regexp": "https?://ocw\\.mit\\.edu/courses/([a-z0-9\\-]+)" + }, + "odnoklassniki": { + "name": "odnoklassniki", + "type": "free", + "domains": [ + "ok.ru", + "m.ok.ru", + "mobile.ok.ru" + ], + "regexps": [ + "https?://(?:(?:www|m|mobile)\\.)?(?:odnoklassniki|ok)\\.ru/(?:video(embed)?/|web-api/video/moviePlayer/|live/|dk\\?.*?st\\.mvId=)([\\d-]+)" + ], + "regexp": "https?://(?:(?:www|m|mobile)\\.)?(?:odnoklassniki|ok)\\.ru/(?:video(embed)?/|web-api/video/moviePlayer/|live/|dk\\?.*?st\\.mvId=)([\\d-]+)" + }, + "oftv": { + "name": "oftv", + "type": "free", + "domains": [ + "of.tv" + ], + "regexps": [ + "https?://(?:www\\.)?of\\.tv/video/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?of\\.tv/video/(\\w+)" + }, + "oftvplaylist": { + "name": "oftvplaylist", + "type": "free", + "domains": [ + "of.tv" + ], + "regexps": [ + "https?://(?:www\\.)?of\\.tv/creators/([a-zA-Z0-9-]+)/?(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?of\\.tv/creators/([a-zA-Z0-9-]+)/?(?:$|[?#])" + }, + "oktoberfesttv": { + "name": "oktoberfesttv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?oktoberfest-tv\\.de/[^/]+/[^/]+/video/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?oktoberfest-tv\\.de/[^/]+/[^/]+/video/([^/?#]+)" + }, + "olympicsreplay": { + "name": "olympicsreplay", + "type": "free", + "domains": [ + "olympics.com" + ], + "regexps": [ + "https?://(?:www\\.)?olympics\\.com/[a-z]{2}/(?:paris-2024/)?(?:replay|videos?|original-series/episode)/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?olympics\\.com/[a-z]{2}/(?:paris-2024/)?(?:replay|videos?|original-series/episode)/([\\w-]+)" + }, + "on24": { + "name": "on24", + "type": "free", + "domains": [ + "event.on24.com" + ], + "regexps": [ + "https?://event\\.on24\\.com/wcc/r/(\\d{7})/([0-9A-F]{32})", + "https?://event\\.on24\\.com/eventRegistration/console/(?:EventConsoleApollo\\.jsp|apollox/mainEvent/?)\\?(?:[^#]*&)?eventid=(\\d{7})&(?:[^#]+&)?key=([0-9A-F]{32})", + "https?://event\\.on24\\.com/eventRegistration/EventLobbyServlet/?\\?(?:[^#]*&)?eventid=(\\d{7})&(?:[^#]+&)?key=([0-9A-F]{32})" + ], + "regexp": "(https?://event\\.on24\\.com/wcc/r/(\\d{7})/([0-9A-F]{32}))|(https?://event\\.on24\\.com/eventRegistration/console/(?:EventConsoleApollo\\.jsp|apollox/mainEvent/?)\\?(?:[^#]*&)?eventid=(\\d{7})&(?:[^#]+&)?key=([0-9A-F]{32}))|(https?://event\\.on24\\.com/eventRegistration/EventLobbyServlet/?\\?(?:[^#]*&)?eventid=(\\d{7})&(?:[^#]+&)?key=([0-9A-F]{32}))" + }, + "ondemandchinaepisode": { + "name": "ondemandchinaepisode", + "type": "free", + "domains": [ + "ondemandchina.com" + ], + "regexps": [ + "https?://www\\.ondemandchina\\.com/\\w+/watch/([\\w-]+)/(ep-(\\d+))" + ], + "regexp": "https?://www\\.ondemandchina\\.com/\\w+/watch/([\\w-]+)/(ep-(\\d+))" + }, + "ondemandkorea": { + "name": "ondemandkorea", + "type": "free", + "domains": [ + "ondemandkorea.com" + ], + "regexps": [ + "https?://(?:www\\.)?ondemandkorea\\.com/(?:en/)?player/vod/[a-z0-9-]+\\?(?:[^#]+&)?contentId=(\\d+)" + ], + "regexp": "https?://(?:www\\.)?ondemandkorea\\.com/(?:en/)?player/vod/[a-z0-9-]+\\?(?:[^#]+&)?contentId=(\\d+)" + }, + "ondemandkoreaprogram": { + "name": "ondemandkoreaprogram", + "type": "free", + "domains": [ + "ondemandkorea.com" + ], + "regexps": [ + "https?://(?:www\\.)?ondemandkorea\\.com/(?:en/)?player/vod/([a-z0-9-]+)(?:$|#)" + ], + "regexp": "https?://(?:www\\.)?ondemandkorea\\.com/(?:en/)?player/vod/([a-z0-9-]+)(?:$|#)" + }, + "onefootball": { + "name": "onefootball", + "type": "free", + "domains": [ + "onefootball.com" + ], + "regexps": [ + "https?://(?:www\\.)?onefootball\\.com/[a-z]{2}/video/[^/&?#]+-(\\d+)" + ], + "regexp": "https?://(?:www\\.)?onefootball\\.com/[a-z]{2}/video/[^/&?#]+-(\\d+)" + }, + "oneplacepodcast": { + "name": "oneplacepodcast", + "type": "free", + "domains": [ + "oneplace.com" + ], + "regexps": [ + "https?://www\\.oneplace\\.com/[\\w]+/[^/]+/listen/[\\w-]+-(\\d+)" + ], + "regexp": "https?://www\\.oneplace\\.com/[\\w]+/[^/]+/listen/[\\w-]+-(\\d+)" + }, + "onet.pl": { + "name": "onet.pl", + "type": "free", + "domains": [ + "eurosport.onet.pl", + "film.onet.pl", + "moto.onet.pl", + "businessinsider.com.pl", + "plejada.pl" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?(?:onet|businessinsider\\.com|plejada)\\.pl/(?:[^/]+/)+([0-9a-z]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?(?:onet|businessinsider\\.com|plejada)\\.pl/(?:[^/]+/)+([0-9a-z]+)" + }, + "onet.tv": { + "name": "onet.tv", + "type": "free", + "domains": [ + "onet.tv", + "onet100.vod.pl" + ], + "regexps": [ + "https?://(?:(?:www\\.)?onet\\.tv|onet100\\.vod\\.pl)/[a-z]/([a-z]+)(?:[?#]|$)", + "https?://(?:(?:www\\.)?onet\\.tv|onet100\\.vod\\.pl)/[a-z]/[a-z]+/([0-9a-z-]+)/([0-9a-z]+)" + ], + "regexp": "(https?://(?:(?:www\\.)?onet\\.tv|onet100\\.vod\\.pl)/[a-z]/([a-z]+)(?:[?#]|$))|(https?://(?:(?:www\\.)?onet\\.tv|onet100\\.vod\\.pl)/[a-z]/[a-z]+/([0-9a-z-]+)/([0-9a-z]+))" + }, + "onetmvp": { + "name": "onetmvp", + "type": "free", + "domains": [], + "regexps": [ + "onetmvp:(\\d+\\.\\d+)" + ], + "regexp": "onetmvp:(\\d+\\.\\d+)" + }, + "onionstudios": { + "name": "onionstudios", + "type": "free", + "domains": [ + "onionstudios.com" + ], + "regexps": [ + "https?://(?:www\\.)?onionstudios\\.com/(?:video(?:s/[^/]+-|/)|embed\\?.*\\bid=)(\\d+)(?!-)" + ], + "regexp": "https?://(?:www\\.)?onionstudios\\.com/(?:video(?:s/[^/]+-|/)|embed\\?.*\\bid=)(\\d+)(?!-)" + }, + "onsen": { + "name": "onsen", + "type": "free", + "domains": [ + "share.onsen.ag", + "onsen.ag" + ], + "regexps": [ + "https?://(?:(?:share|www)\\.)onsen\\.ag/program/([^/?#]+)" + ], + "regexp": "https?://(?:(?:share|www)\\.)onsen\\.ag/program/([^/?#]+)" + }, + "opencast": { + "name": "opencast", + "type": "free", + "domains": [ + "oc-video1.ruhr-uni-bochum.de" + ], + "regexps": [ + "https?://((?:opencast\\.informatik\\.kit\\.edu|electures\\.uni-muenster\\.de|oc-presentation\\.ltcc\\.tuwien\\.ac\\.at|medien\\.ph-noe\\.ac\\.at|oc-video\\.ruhr-uni-bochum\\.de|oc-video1\\.ruhr-uni-bochum\\.de|opencast\\.informatik\\.uni-goettingen\\.de|heicast\\.uni-heidelberg\\.de|opencast\\.hawk\\.de:8080|opencast\\.hs-osnabrueck\\.de|video[0-9]+\\.virtuos\\.uni-osnabrueck\\.de|opencast\\.uni-koeln\\.de|media\\.opencast\\.hochschule-rhein-waal\\.de|matterhorn\\.dce\\.harvard\\.edu|hs-harz\\.opencast\\.uni-halle\\.de|videocampus\\.urz\\.uni-leipzig\\.de|media\\.uct\\.ac\\.za|vid\\.igb\\.illinois\\.edu|cursosabertos\\.c3sl\\.ufpr\\.br|mcmedia\\.missioncollege\\.org|clases\\.odon\\.edu\\.uy))/paella/ui/watch\\.html\\?(?:[^#]+&)?id=([\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12})" + ], + "regexp": "https?://((?:opencast\\.informatik\\.kit\\.edu|electures\\.uni-muenster\\.de|oc-presentation\\.ltcc\\.tuwien\\.ac\\.at|medien\\.ph-noe\\.ac\\.at|oc-video\\.ruhr-uni-bochum\\.de|oc-video1\\.ruhr-uni-bochum\\.de|opencast\\.informatik\\.uni-goettingen\\.de|heicast\\.uni-heidelberg\\.de|opencast\\.hawk\\.de:8080|opencast\\.hs-osnabrueck\\.de|video[0-9]+\\.virtuos\\.uni-osnabrueck\\.de|opencast\\.uni-koeln\\.de|media\\.opencast\\.hochschule-rhein-waal\\.de|matterhorn\\.dce\\.harvard\\.edu|hs-harz\\.opencast\\.uni-halle\\.de|videocampus\\.urz\\.uni-leipzig\\.de|media\\.uct\\.ac\\.za|vid\\.igb\\.illinois\\.edu|cursosabertos\\.c3sl\\.ufpr\\.br|mcmedia\\.missioncollege\\.org|clases\\.odon\\.edu\\.uy))/paella/ui/watch\\.html\\?(?:[^#]+&)?id=([\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12})" + }, + "opencastplaylist": { + "name": "opencastplaylist", + "type": "free", + "domains": [ + "oc-video1.ruhr-uni-bochum.de", + "electures.uni-muenster.de" + ], + "regexps": [ + "https?://((?:opencast\\.informatik\\.kit\\.edu|electures\\.uni-muenster\\.de|oc-presentation\\.ltcc\\.tuwien\\.ac\\.at|medien\\.ph-noe\\.ac\\.at|oc-video\\.ruhr-uni-bochum\\.de|oc-video1\\.ruhr-uni-bochum\\.de|opencast\\.informatik\\.uni-goettingen\\.de|heicast\\.uni-heidelberg\\.de|opencast\\.hawk\\.de:8080|opencast\\.hs-osnabrueck\\.de|video[0-9]+\\.virtuos\\.uni-osnabrueck\\.de|opencast\\.uni-koeln\\.de|media\\.opencast\\.hochschule-rhein-waal\\.de|matterhorn\\.dce\\.harvard\\.edu|hs-harz\\.opencast\\.uni-halle\\.de|videocampus\\.urz\\.uni-leipzig\\.de|media\\.uct\\.ac\\.za|vid\\.igb\\.illinois\\.edu|cursosabertos\\.c3sl\\.ufpr\\.br|mcmedia\\.missioncollege\\.org|clases\\.odon\\.edu\\.uy))(?:/engage/ui/index\\.html\\?(?:[^#]+&)?epFrom=|/ltitools/index\\.html\\?(?:[^#]+&)?series=)([\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12})" + ], + "regexp": "https?://((?:opencast\\.informatik\\.kit\\.edu|electures\\.uni-muenster\\.de|oc-presentation\\.ltcc\\.tuwien\\.ac\\.at|medien\\.ph-noe\\.ac\\.at|oc-video\\.ruhr-uni-bochum\\.de|oc-video1\\.ruhr-uni-bochum\\.de|opencast\\.informatik\\.uni-goettingen\\.de|heicast\\.uni-heidelberg\\.de|opencast\\.hawk\\.de:8080|opencast\\.hs-osnabrueck\\.de|video[0-9]+\\.virtuos\\.uni-osnabrueck\\.de|opencast\\.uni-koeln\\.de|media\\.opencast\\.hochschule-rhein-waal\\.de|matterhorn\\.dce\\.harvard\\.edu|hs-harz\\.opencast\\.uni-halle\\.de|videocampus\\.urz\\.uni-leipzig\\.de|media\\.uct\\.ac\\.za|vid\\.igb\\.illinois\\.edu|cursosabertos\\.c3sl\\.ufpr\\.br|mcmedia\\.missioncollege\\.org|clases\\.odon\\.edu\\.uy))(?:/engage/ui/index\\.html\\?(?:[^#]+&)?epFrom=|/ltitools/index\\.html\\?(?:[^#]+&)?series=)([\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12})" + }, + "openrec": { + "name": "openrec", + "type": "free", + "domains": [ + "openrec.tv" + ], + "regexps": [ + "https?://(?:www\\.)?openrec\\.tv/capture/([^/?#]+)", + "https?://(?:www\\.)?openrec\\.tv/live/([^/?#]+)", + "https?://(?:www\\.)?openrec\\.tv/movie/([^/?#]+)" + ], + "regexp": "(https?://(?:www\\.)?openrec\\.tv/capture/([^/?#]+))|(https?://(?:www\\.)?openrec\\.tv/live/([^/?#]+))|(https?://(?:www\\.)?openrec\\.tv/movie/([^/?#]+))" + }, + "oratv": { + "name": "oratv", + "type": "free", + "domains": [ + "ora.tv", + "unsafespeech.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:ora\\.tv|unsafespeech\\.com)/([^/]+/)*([^/\\?#]+)" + ], + "regexp": "https?://(?:www\\.)?(?:ora\\.tv|unsafespeech\\.com)/([^/]+/)*([^/\\?#]+)" + }, + "orf": { + "name": "orf", + "type": "free", + "domains": [ + "on.orf.at", + "sound.orf.at", + "radiothek.orf.at", + "ooe.orf.at", + "fm4.orf.at", + "noe.orf.at", + "wien.orf.at", + "burgenland.orf.at", + "steiermark.orf.at", + "kaernten.orf.at", + "salzburg.orf.at", + "tirol.orf.at", + "vorarlberg.orf.at", + "oe3.orf.at", + "oe1.orf.at" + ], + "regexps": [ + "https?://fm4\\.orf\\.at/stories/(\\d+)", + "https?://iptv\\.orf\\.at/(?:#/)?stories/(\\d+)", + "https?://on\\.orf\\.at/video/(\\d+)(?:/(\\d+))?", + "https?://sound\\.orf\\.at/podcast/(bgl|fm4|ktn|noe|oe1|oe3|ooe|sbg|stm|tir|tv|vbg|wie)/([\\w-]+)/([\\w-]+)", + "https?://(?:(fm4|noe|wien|burgenland|ooe|steiermark|kaernten|salzburg|tirol|vorarlberg|oe3|oe1)\\.orf\\.at/player|radiothek\\.orf\\.at/(fm4|noe|wien|burgenland|ooe|steiermark|kaernten|salzburg|tirol|vorarlberg|oe3|oe1))/([0-9]+)/(\\w+)" + ], + "regexp": "(https?://fm4\\.orf\\.at/stories/(\\d+))|(https?://iptv\\.orf\\.at/(?:#/)?stories/(\\d+))|(https?://on\\.orf\\.at/video/(\\d+)(?:/(\\d+))?)|(https?://sound\\.orf\\.at/podcast/(bgl|fm4|ktn|noe|oe1|oe3|ooe|sbg|stm|tir|tv|vbg|wie)/([\\w-]+)/([\\w-]+))|(https?://(?:(fm4|noe|wien|burgenland|ooe|steiermark|kaernten|salzburg|tirol|vorarlberg|oe3|oe1)\\.orf\\.at/player|radiothek\\.orf\\.at/(fm4|noe|wien|burgenland|ooe|steiermark|kaernten|salzburg|tirol|vorarlberg|oe3|oe1))/([0-9]+)/(\\w+))" + }, + "osnateltv": { + "name": "osnateltv", + "type": "free", + "domains": [ + "tvonline.osnatel.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvonline\\.osnatel\\.de/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?tvonline\\.osnatel\\.de/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "osnateltvlive": { + "name": "osnateltvlive", + "type": "free", + "domains": [ + "tvonline.osnatel.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvonline\\.osnatel\\.de/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?tvonline\\.osnatel\\.de/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "osnateltvrecordings": { + "name": "osnateltvrecordings", + "type": "free", + "domains": [ + "tvonline.osnatel.de" + ], + "regexps": [ + "https?://(?:www\\.)?tvonline\\.osnatel\\.de/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?tvonline\\.osnatel\\.de/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "outsidetv": { + "name": "outsidetv", + "type": "free", + "domains": [ + "outsidetv.com" + ], + "regexps": [ + "https?://(?:www\\.)?outsidetv\\.com/(?:[^/]+/)*?play/[a-zA-Z0-9]{8}/\\d+/\\d+/([a-zA-Z0-9]{8})" + ], + "regexp": "https?://(?:www\\.)?outsidetv\\.com/(?:[^/]+/)*?play/[a-zA-Z0-9]{8}/\\d+/\\d+/([a-zA-Z0-9]{8})" + }, + "owncloud": { + "name": "owncloud", + "type": "free", + "domains": [ + "ruhr-uni-bochum.sciebo.de" + ], + "regexps": [ + "https?://(?:(?:[^\\.]+\\.)?sciebo\\.de|cloud\\.uni-koblenz-landau\\.de)/s/([\\w.-]+)" + ], + "regexp": "https?://(?:(?:[^\\.]+\\.)?sciebo\\.de|cloud\\.uni-koblenz-landau\\.de)/s/([\\w.-]+)" + }, + "packtpub": { + "name": "packtpub", + "type": "free", + "domains": [ + "packtpub.com", + "subscription.packtpub.com" + ], + "regexps": [ + "https?://(?:(?:www\\.)?packtpub\\.com/mapt|subscription\\.packtpub\\.com)/video/[^/]+/(\\d+)/([^/]+)/([^/]+)(?:/([^/?&#]+))?" + ], + "regexp": "https?://(?:(?:www\\.)?packtpub\\.com/mapt|subscription\\.packtpub\\.com)/video/[^/]+/(\\d+)/([^/]+)/([^/]+)(?:/([^/?&#]+))?" + }, + "packtpubcourse": { + "name": "packtpubcourse", + "type": "free", + "domains": [ + "packtpub.com", + "subscription.packtpub.com" + ], + "regexps": [ + "(https?://(?:(?:www\\.)?packtpub\\.com/mapt|subscription\\.packtpub\\.com)/video/[^/]+/(\\d+))" + ], + "regexp": "(https?://(?:(?:www\\.)?packtpub\\.com/mapt|subscription\\.packtpub\\.com)/video/[^/]+/(\\d+))" + }, + "palcomp3": { + "name": "palcomp3", + "type": "free", + "domains": [ + "palcomp3.com.br", + "palcomp3.com" + ], + "regexps": [ + "https?://(?:www\\.)?palcomp3\\.com(?:\\.br)?/([^/?&#]+)", + "https?://(?:www\\.)?palcomp3\\.com(?:\\.br)?/([^/]+)/([^/?&#]+)", + "https?://(?:www\\.)?palcomp3\\.com(?:\\.br)?/([^/]+)/([^/?&#]+)/?#clipe" + ], + "regexp": "(https?://(?:www\\.)?palcomp3\\.com(?:\\.br)?/([^/?&#]+))|(https?://(?:www\\.)?palcomp3\\.com(?:\\.br)?/([^/]+)/([^/?&#]+))|(https?://(?:www\\.)?palcomp3\\.com(?:\\.br)?/([^/]+)/([^/?&#]+)/?#clipe)" + }, + "panopto": { + "name": "panopto", + "type": "free", + "domains": [ + "demo.hosted.panopto.com", + "howtovideos.hosted.panopto.com", + "unisa.au.panopto.com", + "na-training-1.hosted.panopto.com", + "ucc.cloud.panopto.eu", + "brown.hosted.panopto.com" + ], + "regexps": [ + "(https?://[\\w.-]+\\.panopto.(?:com|eu)/Panopto)/Pages/(Viewer|Embed)\\.aspx.*(?:\\?|&)id=([a-f0-9-]+)" + ], + "regexp": "(https?://[\\w.-]+\\.panopto.(?:com|eu)/Panopto)/Pages/(Viewer|Embed)\\.aspx.*(?:\\?|&)id=([a-f0-9-]+)" + }, + "panoptolist": { + "name": "panoptolist", + "type": "free", + "domains": [ + "demo.hosted.panopto.com", + "howtovideos.hosted.panopto.com" + ], + "regexps": [ + "(https?://[\\w.-]+\\.panopto.(?:com|eu)/Panopto)/Pages/Sessions/List\\.aspx" + ], + "regexp": "(https?://[\\w.-]+\\.panopto.(?:com|eu)/Panopto)/Pages/Sessions/List\\.aspx" + }, + "panoptoplaylist": { + "name": "panoptoplaylist", + "type": "free", + "domains": [ + "howtovideos.hosted.panopto.com", + "utsa.hosted.panopto.com" + ], + "regexps": [ + "(https?://[\\w.-]+\\.panopto.(?:com|eu)/Panopto)/Pages/(Viewer|Embed)\\.aspx.*(?:\\?|&)pid=([a-f0-9-]+)" + ], + "regexp": "(https?://[\\w.-]+\\.panopto.(?:com|eu)/Panopto)/Pages/(Viewer|Embed)\\.aspx.*(?:\\?|&)pid=([a-f0-9-]+)" + }, + "paramountpressexpress": { + "name": "paramountpressexpress", + "type": "free", + "domains": [ + "paramountpressexpress.com" + ], + "regexps": [ + "https?://(?:www\\.)?paramountpressexpress\\.com(?:/[\\w-]+)+/(yt-)?video/?\\?watch=([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?paramountpressexpress\\.com(?:/[\\w-]+)+/(yt-)?video/?\\?watch=([\\w-]+)" + }, + "parler": { + "name": "parler", + "type": "free", + "domains": [ + "parler.com" + ], + "regexps": [ + "https?://parler\\.com/feed/([0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})" + ], + "regexp": "https?://parler\\.com/feed/([0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12})" + }, + "parliamentlive.tv": { + "name": "parliamentlive.tv", + "type": "free", + "domains": [ + "parliamentlive.tv" + ], + "regexps": [ + "(?i)https?://(?:www\\.)?parliamentlive\\.tv/Event/Index/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + ], + "regexp": "(?i)https?://(?:www\\.)?parliamentlive\\.tv/Event/Index/([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + }, + "parlview": { + "name": "parlview", + "type": "free", + "domains": [ + "aph.gov.au" + ], + "regexps": [ + "https?://(?:www\\.)?aph\\.gov\\.au/News_and_Events/Watch_Read_Listen/ParlView/video/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?aph\\.gov\\.au/News_and_Events/Watch_Read_Listen/ParlView/video/([^/?#]+)" + }, + "parti": { + "name": "parti", + "type": "free", + "domains": [ + "parti.com" + ], + "regexps": [ + "https?://(?:www\\.)?parti\\.com/creator/([\\w]+)/([\\w/-]+)", + "https?://(?:www\\.)?parti\\.com/video/(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?parti\\.com/creator/([\\w]+)/([\\w/-]+))|(https?://(?:www\\.)?parti\\.com/video/(\\d+))" + }, + "patreon": { + "name": "patreon", + "type": "free", + "domains": [ + "patreon.com" + ], + "regexps": [ + "https?://(?:www\\.)?patreon\\.com/(?:(?:m|api/campaigns)/(\\d+)|(?:cw?/)?((?!creation[?/]|posts/|rss[?/])[\\w-]+))(?:/posts)?/?(?:$|[?#])", + "https?://(?:www\\.)?patreon\\.com/(?:creation\\?hid=|posts/(?:[\\w-]+-)?)(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?patreon\\.com/(?:(?:m|api/campaigns)/(\\d+)|(?:cw?/)?((?!creation[?/]|posts/|rss[?/])[\\w-]+))(?:/posts)?/?(?:$|[?#]))|(https?://(?:www\\.)?patreon\\.com/(?:creation\\?hid=|posts/(?:[\\w-]+-)?)(\\d+))" + }, + "pbs": { + "name": "pbs", + "type": "free", + "domains": [ + "pbs.org", + "thirteen.org", + "player.pbs.org", + "pbssocal.org", + "watch.knpb.org" + ], + "regexps": [ + "https?://(?:(?:video|player)\\.pbs\\.org/(?:widget/)?partnerplayer/([^/?#]+)|(?:(?:video|www|player)\\.pbs\\.org|video\\.aptv\\.org|video\\.gpb\\.org|video\\.mpbonline\\.org|video\\.wnpt\\.org|video\\.wfsu\\.org|video\\.wsre\\.org|video\\.wtcitv\\.org|video\\.pba\\.org|video\\.alaskapublic\\.org|video\\.azpbs\\.org|portal\\.knme\\.org|video\\.vegaspbs\\.org|watch\\.aetn\\.org|video\\.ket\\.org|video\\.wkno\\.org|video\\.lpb\\.org|videos\\.oeta\\.tv|video\\.optv\\.org|watch\\.wsiu\\.org|video\\.keet\\.org|pbs\\.kixe\\.org|video\\.kpbs\\.org|video\\.kqed\\.org|vids\\.kvie\\.org|(?:video\\.|www\\.)pbssocal\\.org|video\\.valleypbs\\.org|video\\.cptv\\.org|watch\\.knpb\\.org|video\\.soptv\\.org|video\\.rmpbs\\.org|video\\.kenw\\.org|video\\.kued\\.org|video\\.wyomingpbs\\.org|video\\.cpt12\\.org|video\\.kbyueleven\\.org|(?:video\\.|www\\.)thirteen\\.org|video\\.wgbh\\.org|video\\.wgby\\.org|watch\\.njtvonline\\.org|watch\\.wliw\\.org|video\\.mpt\\.tv|watch\\.weta\\.org|video\\.whyy\\.org|video\\.wlvt\\.org|video\\.wvpt\\.net|video\\.whut\\.org|video\\.wedu\\.org|video\\.wgcu\\.org|video\\.wpbt2\\.org|video\\.wucftv\\.org|video\\.wuft\\.org|watch\\.wxel\\.org|video\\.wlrn\\.org|video\\.wusf\\.usf\\.edu|video\\.scetv\\.org|video\\.unctv\\.org|video\\.pbshawaii\\.org|video\\.idahoptv\\.org|video\\.ksps\\.org|watch\\.opb\\.org|watch\\.nwptv\\.org|video\\.will\\.illinois\\.edu|video\\.networkknowledge\\.tv|video\\.wttw\\.com|video\\.iptv\\.org|video\\.ninenet\\.org|video\\.wfwa\\.org|video\\.wfyi\\.org|video\\.mptv\\.org|video\\.wnin\\.org|video\\.wnit\\.org|video\\.wpt\\.org|video\\.wvut\\.org|video\\.weiu\\.net|video\\.wqpt\\.org|video\\.wycc\\.org|video\\.wipb\\.org|video\\.indianapublicmedia\\.org|watch\\.cetconnect\\.org|video\\.thinktv\\.org|video\\.wbgu\\.org|video\\.wgvu\\.org|video\\.netnebraska\\.org|video\\.pioneer\\.org|watch\\.sdpb\\.org|video\\.tpt\\.org|watch\\.ksmq\\.org|watch\\.kpts\\.org|watch\\.ktwu\\.org|watch\\.easttennesseepbs\\.org|video\\.wcte\\.tv|video\\.wljt\\.org|video\\.wosu\\.org|video\\.woub\\.org|video\\.wvpublic\\.org|video\\.wkyupbs\\.org|video\\.kera\\.org|video\\.mpbn\\.net|video\\.mountainlake\\.org|video\\.nhptv\\.org|video\\.vpt\\.org|video\\.witf\\.org|watch\\.wqed\\.org|video\\.wmht\\.org|video\\.deltabroadcasting\\.org|video\\.dptv\\.org|video\\.wcmu\\.org|video\\.wkar\\.org|wnmuvideo\\.nmu\\.edu|video\\.wdse\\.org|video\\.wgte\\.org|video\\.lptv\\.org|video\\.kmos\\.org|watch\\.montanapbs\\.org|video\\.krwg\\.org|video\\.kacvtv\\.org|video\\.kcostv\\.org|video\\.wcny\\.org|video\\.wned\\.org|watch\\.wpbstv\\.org|video\\.wskg\\.org|video\\.wxxi\\.org|video\\.wpsu\\.org|on-demand\\.wvia\\.org|video\\.wtvi\\.org|video\\.westernreservepublicmedia\\.org|video\\.ideastream\\.org|video\\.kcts9\\.org|video\\.basinpbs\\.org|video\\.houstonpbs\\.org|video\\.klrn\\.org|video\\.klru\\.tv|video\\.wtjx\\.org|video\\.ideastations\\.org|video\\.kbtc\\.org)/(?:(?:(?:vir|port)alplayer|video)/([0-9]+)(?:[?/#]|$)|(?:[^/?#]+/){1,5}([^/?#]+?)(?:\\.html)?/?(?:$|[?#])))" + ], + "regexp": "https?://(?:(?:video|player)\\.pbs\\.org/(?:widget/)?partnerplayer/([^/?#]+)|(?:(?:video|www|player)\\.pbs\\.org|video\\.aptv\\.org|video\\.gpb\\.org|video\\.mpbonline\\.org|video\\.wnpt\\.org|video\\.wfsu\\.org|video\\.wsre\\.org|video\\.wtcitv\\.org|video\\.pba\\.org|video\\.alaskapublic\\.org|video\\.azpbs\\.org|portal\\.knme\\.org|video\\.vegaspbs\\.org|watch\\.aetn\\.org|video\\.ket\\.org|video\\.wkno\\.org|video\\.lpb\\.org|videos\\.oeta\\.tv|video\\.optv\\.org|watch\\.wsiu\\.org|video\\.keet\\.org|pbs\\.kixe\\.org|video\\.kpbs\\.org|video\\.kqed\\.org|vids\\.kvie\\.org|(?:video\\.|www\\.)pbssocal\\.org|video\\.valleypbs\\.org|video\\.cptv\\.org|watch\\.knpb\\.org|video\\.soptv\\.org|video\\.rmpbs\\.org|video\\.kenw\\.org|video\\.kued\\.org|video\\.wyomingpbs\\.org|video\\.cpt12\\.org|video\\.kbyueleven\\.org|(?:video\\.|www\\.)thirteen\\.org|video\\.wgbh\\.org|video\\.wgby\\.org|watch\\.njtvonline\\.org|watch\\.wliw\\.org|video\\.mpt\\.tv|watch\\.weta\\.org|video\\.whyy\\.org|video\\.wlvt\\.org|video\\.wvpt\\.net|video\\.whut\\.org|video\\.wedu\\.org|video\\.wgcu\\.org|video\\.wpbt2\\.org|video\\.wucftv\\.org|video\\.wuft\\.org|watch\\.wxel\\.org|video\\.wlrn\\.org|video\\.wusf\\.usf\\.edu|video\\.scetv\\.org|video\\.unctv\\.org|video\\.pbshawaii\\.org|video\\.idahoptv\\.org|video\\.ksps\\.org|watch\\.opb\\.org|watch\\.nwptv\\.org|video\\.will\\.illinois\\.edu|video\\.networkknowledge\\.tv|video\\.wttw\\.com|video\\.iptv\\.org|video\\.ninenet\\.org|video\\.wfwa\\.org|video\\.wfyi\\.org|video\\.mptv\\.org|video\\.wnin\\.org|video\\.wnit\\.org|video\\.wpt\\.org|video\\.wvut\\.org|video\\.weiu\\.net|video\\.wqpt\\.org|video\\.wycc\\.org|video\\.wipb\\.org|video\\.indianapublicmedia\\.org|watch\\.cetconnect\\.org|video\\.thinktv\\.org|video\\.wbgu\\.org|video\\.wgvu\\.org|video\\.netnebraska\\.org|video\\.pioneer\\.org|watch\\.sdpb\\.org|video\\.tpt\\.org|watch\\.ksmq\\.org|watch\\.kpts\\.org|watch\\.ktwu\\.org|watch\\.easttennesseepbs\\.org|video\\.wcte\\.tv|video\\.wljt\\.org|video\\.wosu\\.org|video\\.woub\\.org|video\\.wvpublic\\.org|video\\.wkyupbs\\.org|video\\.kera\\.org|video\\.mpbn\\.net|video\\.mountainlake\\.org|video\\.nhptv\\.org|video\\.vpt\\.org|video\\.witf\\.org|watch\\.wqed\\.org|video\\.wmht\\.org|video\\.deltabroadcasting\\.org|video\\.dptv\\.org|video\\.wcmu\\.org|video\\.wkar\\.org|wnmuvideo\\.nmu\\.edu|video\\.wdse\\.org|video\\.wgte\\.org|video\\.lptv\\.org|video\\.kmos\\.org|watch\\.montanapbs\\.org|video\\.krwg\\.org|video\\.kacvtv\\.org|video\\.kcostv\\.org|video\\.wcny\\.org|video\\.wned\\.org|watch\\.wpbstv\\.org|video\\.wskg\\.org|video\\.wxxi\\.org|video\\.wpsu\\.org|on-demand\\.wvia\\.org|video\\.wtvi\\.org|video\\.westernreservepublicmedia\\.org|video\\.ideastream\\.org|video\\.kcts9\\.org|video\\.basinpbs\\.org|video\\.houstonpbs\\.org|video\\.klrn\\.org|video\\.klru\\.tv|video\\.wtjx\\.org|video\\.ideastations\\.org|video\\.kbtc\\.org)/(?:(?:(?:vir|port)alplayer|video)/([0-9]+)(?:[?/#]|$)|(?:[^/?#]+/){1,5}([^/?#]+?)(?:\\.html)?/?(?:$|[?#])))" + }, + "pbskids": { + "name": "pbskids", + "type": "free", + "domains": [ + "pbskids.org" + ], + "regexps": [ + "https?://(?:www\\.)?pbskids\\.org/video/[\\w-]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?pbskids\\.org/video/[\\w-]+/(\\d+)" + }, + "pearvideo": { + "name": "pearvideo", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?pearvideo\\.com/video_(\\d+)" + ], + "regexp": "https?://(?:www\\.)?pearvideo\\.com/video_(\\d+)" + }, + "peekvids": { + "name": "peekvids", + "type": "free", + "domains": [ + "peekvids.com" + ], + "regexps": [ + "https?://(?:www\\.)?(peekvids\\.com)/(?:(?:[^/?#]+/){2}|embed/?\\?(?:[^#]*&)?v=)([^/?&#]*)" + ], + "regexp": "https?://(?:www\\.)?(peekvids\\.com)/(?:(?:[^/?#]+/){2}|embed/?\\?(?:[^#]*&)?v=)([^/?&#]*)" + }, + "peer.tv": { + "name": "peer.tv", + "type": "free", + "domains": [ + "peer.tv" + ], + "regexps": [ + "https?://(?:www\\.)?peer\\.tv/(?:de|it|en)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?peer\\.tv/(?:de|it|en)/(\\d+)" + }, + "peloton": { + "name": "peloton", + "type": "free", + "domains": [ + "members.onepeloton.com" + ], + "regexps": [ + "https?://members\\.onepeloton\\.com/classes/player/([a-f0-9]+)", + "https?://members\\.onepeloton\\.com/player/live/([a-f0-9]+)" + ], + "regexp": "(https?://members\\.onepeloton\\.com/classes/player/([a-f0-9]+))|(https?://members\\.onepeloton\\.com/player/live/([a-f0-9]+))" + }, + "performgroup": { + "name": "performgroup", + "type": "free", + "domains": [ + "player.performgroup.com" + ], + "regexps": [ + "https?://player\\.performgroup\\.com/eplayer(?:/eplayer\\.html|\\.js)#/?([0-9a-f]{26})\\.([0-9a-z]{26})" + ], + "regexp": "https?://player\\.performgroup\\.com/eplayer(?:/eplayer\\.html|\\.js)#/?([0-9a-f]{26})\\.([0-9a-z]{26})" + }, + "periscope": { + "name": "periscope", + "type": "free", + "domains": [ + "periscope.tv" + ], + "regexps": [ + "https?://(?:www\\.)?(?:periscope|pscp)\\.tv/[^/]+/([^/?#]+)", + "https?://(?:www\\.)?(?:periscope|pscp)\\.tv/([^/]+)/?$" + ], + "regexp": "(https?://(?:www\\.)?(?:periscope|pscp)\\.tv/[^/]+/([^/?#]+))|(https?://(?:www\\.)?(?:periscope|pscp)\\.tv/([^/]+)/?$)" + }, + "pgatour": { + "name": "pgatour", + "type": "free", + "domains": [ + "pgatour.com" + ], + "regexps": [ + "https?://(?:www\\.)?pgatour\\.com/video/[\\w-]+/(T)?(\\d+)" + ], + "regexp": "https?://(?:www\\.)?pgatour\\.com/video/[\\w-]+/(T)?(\\d+)" + }, + "philharmoniedeparis": { + "name": "philharmoniedeparis", + "type": "free", + "domains": [ + "philharmoniedeparis.fr", + "live.philharmoniedeparis.fr", + "otoplayer.philharmoniedeparis.fr" + ], + "regexps": [ + "https?://(?:live\\.philharmoniedeparis\\.fr/(?:[Cc]oncert/|embed(?:app)?/|misc/Playlist\\.ashx\\?id=)|pad\\.philharmoniedeparis\\.fr/(?:doc/CIMU/|player\\.aspx\\?id=)|philharmoniedeparis\\.fr/fr/live/concert/|otoplayer\\.philharmoniedeparis\\.fr/fr/embed/)(\\d+)" + ], + "regexp": "https?://(?:live\\.philharmoniedeparis\\.fr/(?:[Cc]oncert/|embed(?:app)?/|misc/Playlist\\.ashx\\?id=)|pad\\.philharmoniedeparis\\.fr/(?:doc/CIMU/|player\\.aspx\\?id=)|philharmoniedeparis\\.fr/fr/live/concert/|otoplayer\\.philharmoniedeparis\\.fr/fr/embed/)(\\d+)" + }, + "phoenix.de": { + "name": "phoenix.de", + "type": "free", + "domains": [ + "phoenix.de" + ], + "regexps": [ + "https?://(?:www\\.)?phoenix\\.de/(?:[^/?#]+/)*[^/?#&]*-a-(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?phoenix\\.de/(?:[^/?#]+/)*[^/?#&]*-a-(\\d+)\\.html" + }, + "photobucket": { + "name": "photobucket", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:[a-z0-9]+\\.)?photobucket\\.com/.*(([\\?\\&]current=)|_)(.*)\\.((flv)|(mp4))" + ], + "regexp": "https?://(?:[a-z0-9]+\\.)?photobucket\\.com/.*(([\\?\\&]current=)|_)(.*)\\.((flv)|(mp4))" + }, + "pialive": { + "name": "pialive", + "type": "free", + "domains": [ + "player.pia-live.jp" + ], + "regexps": [ + "https?://player\\.pia-live\\.jp/stream/([\\w-]+)" + ], + "regexp": "https?://player\\.pia-live\\.jp/stream/([\\w-]+)" + }, + "piapro": { + "name": "piapro", + "type": "free", + "domains": [ + "piapro.jp" + ], + "regexps": [ + "https?://piapro\\.jp/(?:t|content)/([\\w-]+)/?" + ], + "regexp": "https?://piapro\\.jp/(?:t|content)/([\\w-]+)/?" + }, + "picarto": { + "name": "picarto", + "type": "free", + "domains": [ + "picarto.tv" + ], + "regexps": [ + "https?://(?:www.)?picarto\\.tv/([^/#?]+)/?(?:$|[?#])", + "https?://(?:www\\.)?picarto\\.tv/(?:videopopout|\\w+(?:/profile)?/videos)/([^/?#&]+)" + ], + "regexp": "(https?://(?:www.)?picarto\\.tv/([^/#?]+)/?(?:$|[?#]))|(https?://(?:www\\.)?picarto\\.tv/(?:videopopout|\\w+(?:/profile)?/videos)/([^/?#&]+))" + }, + "piksel": { + "name": "piksel", + "type": "free", + "domains": [ + "player.piksel.tech", + "player.piksel.com" + ], + "regexps": [ + "https?://(?:(?:player\\.(?:olympusattelecom|vibebyvista)|(?:api|player)\\.multicastmedia|(?:api-ovp|player)\\.piksel)\\.(?:com|tech)|(?:mz-edge\\.stream\\.co|movie-s\\.nhk\\.or)\\.jp|vidego\\.baltimorecity\\.gov)/v/(?:refid/([^/]+)/prefid/)?([\\w-]+)" + ], + "regexp": "https?://(?:(?:player\\.(?:olympusattelecom|vibebyvista)|(?:api|player)\\.multicastmedia|(?:api-ovp|player)\\.piksel)\\.(?:com|tech)|(?:mz-edge\\.stream\\.co|movie-s\\.nhk\\.or)\\.jp|vidego\\.baltimorecity\\.gov)/v/(?:refid/([^/]+)/prefid/)?([\\w-]+)" + }, + "pinkbike": { + "name": "pinkbike", + "type": "free", + "domains": [ + "pinkbike.com", + "es.pinkbike.org" + ], + "regexps": [ + "https?://(?:(?:www\\.)?pinkbike\\.com/video/|es\\.pinkbike\\.org/i/kvid/kvid-y5\\.swf\\?id=)([0-9]+)" + ], + "regexp": "https?://(?:(?:www\\.)?pinkbike\\.com/video/|es\\.pinkbike\\.org/i/kvid/kvid-y5\\.swf\\?id=)([0-9]+)" + }, + "pinterest": { + "name": "pinterest", + "type": "free", + "domains": [ + "pinterest.com", + "pinterest.ca", + "co.pinterest.com" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?pinterest\\.(?:com|fr|de|ch|jp|cl|ca|it|co\\.uk|nz|ru|com\\.au|at|pt|co\\.kr|es|com\\.mx|dk|ph|th|com\\.uy|co|nl|info|kr|ie|vn|com\\.vn|ec|mx|in|pe|co\\.at|hu|co\\.in|co\\.nz|id|com\\.ec|com\\.py|tw|be|uk|com\\.bo|com\\.pe)/pin/(?:[\\w-]+--)?(\\d+)" + ], + "regexp": "https?://(?:[^/]+\\.)?pinterest\\.(?:com|fr|de|ch|jp|cl|ca|it|co\\.uk|nz|ru|com\\.au|at|pt|co\\.kr|es|com\\.mx|dk|ph|th|com\\.uy|co|nl|info|kr|ie|vn|com\\.vn|ec|mx|in|pe|co\\.at|hu|co\\.in|co\\.nz|id|com\\.ec|com\\.py|tw|be|uk|com\\.bo|com\\.pe)/pin/(?:[\\w-]+--)?(\\d+)" + }, + "pinterestcollection": { + "name": "pinterestcollection", + "type": "free", + "domains": [ + "pinterest.ca" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?pinterest\\.(?:com|fr|de|ch|jp|cl|ca|it|co\\.uk|nz|ru|com\\.au|at|pt|co\\.kr|es|com\\.mx|dk|ph|th|com\\.uy|co|nl|info|kr|ie|vn|com\\.vn|ec|mx|in|pe|co\\.at|hu|co\\.in|co\\.nz|id|com\\.ec|com\\.py|tw|be|uk|com\\.bo|com\\.pe)/([^/]+)/([^/?#&]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?pinterest\\.(?:com|fr|de|ch|jp|cl|ca|it|co\\.uk|nz|ru|com\\.au|at|pt|co\\.kr|es|com\\.mx|dk|ph|th|com\\.uy|co|nl|info|kr|ie|vn|com\\.vn|ec|mx|in|pe|co\\.at|hu|co\\.in|co\\.nz|id|com\\.ec|com\\.py|tw|be|uk|com\\.bo|com\\.pe)/([^/]+)/([^/?#&]+)" + }, + "piramidetv": { + "name": "piramidetv", + "type": "free", + "domains": [ + "piramide.tv" + ], + "regexps": [ + "https?://piramide\\.tv/video/([\\w-]+)" + ], + "regexp": "https?://piramide\\.tv/video/([\\w-]+)" + }, + "piramidetvchannel": { + "name": "piramidetvchannel", + "type": "free", + "domains": [ + "piramide.tv" + ], + "regexps": [ + "https?://piramide\\.tv/channel/([\\w-]+)" + ], + "regexp": "https?://piramide\\.tv/channel/([\\w-]+)" + }, + "planetmarathi": { + "name": "planetmarathi", + "type": "free", + "domains": [ + "planetmarathi.com" + ], + "regexps": [ + "https?://(?:www\\.)?planetmarathi\\.com/titles/([^/#&?$]+)" + ], + "regexp": "https?://(?:www\\.)?planetmarathi\\.com/titles/([^/#&?$]+)" + }, + "platzi": { + "name": "platzi", + "type": "free", + "domains": [ + "platzi.com", + "courses.platzi.com" + ], + "regexps": [ + "https?://(?:platzi\\.com/clases|courses\\.platzi\\.com/classes)/[^/]+/(\\d+)-[^/?\\#&]+" + ], + "regexp": "https?://(?:platzi\\.com/clases|courses\\.platzi\\.com/classes)/[^/]+/(\\d+)-[^/?\\#&]+" + }, + "platzicourse": { + "name": "platzicourse", + "type": "free", + "domains": [ + "platzi.com", + "courses.platzi.com" + ], + "regexps": [ + "https?://(?:platzi\\.com/clases|courses\\.platzi\\.com/classes)/([^/?\\#&]+)" + ], + "regexp": "https?://(?:platzi\\.com/clases|courses\\.platzi\\.com/classes)/([^/?\\#&]+)" + }, + "play.tv": { + "name": "play.tv", + "type": "free", + "domains": [ + "play.tv" + ], + "regexps": [ + "https?://(www\\.)?play\\.tv/video/([^/?#]+/[^/?#]+/|)([^/#]+)" + ], + "regexp": "https?://(www\\.)?play\\.tv/video/([^/?#]+/[^/?#]+/|)([^/#]+)" + }, + "player.sky.it": { + "name": "player.sky.it", + "type": "free", + "domains": [], + "regexps": [ + "https?://player\\.sky\\.it/player/(?:external|social)\\.html\\?.*?\\bid=(\\d+)" + ], + "regexp": "https?://player\\.sky\\.it/player/(?:external|social)\\.html\\?.*?\\bid=(\\d+)" + }, + "playerfm": { + "name": "playerfm", + "type": "free", + "domains": [ + "player.fm" + ], + "regexps": [ + "(https?://(?:www\\.)?player\\.fm/(?:series/)?[\\w-]+/([\\w-]+))" + ], + "regexp": "(https?://(?:www\\.)?player\\.fm/(?:series/)?[\\w-]+/([\\w-]+))" + }, + "playeur": { + "name": "playeur", + "type": "free", + "domains": [ + "utreon.com", + "playeur.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:utreon|playeur)\\.com/v/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?(?:utreon|playeur)\\.com/v/([\\w-]+)" + }, + "playplustv": { + "name": "playplustv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?playplus\\.(?:com|tv)/VOD/([0-9]+)/([0-9a-f]{32})" + ], + "regexp": "https?://(?:www\\.)?playplus\\.(?:com|tv)/VOD/([0-9]+)/([0-9a-f]{32})" + }, + "playsuisse": { + "name": "playsuisse", + "type": "free", + "domains": [ + "playsuisse.ch" + ], + "regexps": [ + "https?://(?:www\\.)?playsuisse\\.ch/(?:watch|detail)/(?:[^#]*[?&]episodeId=)?([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?playsuisse\\.ch/(?:watch|detail)/(?:[^#]*[?&]episodeId=)?([0-9]+)" + }, + "playtvak": { + "name": "playtvak", + "type": "free", + "domains": [ + "playtvak.cz", + "slowtv.playtvak.cz", + "zpravy.idnes.cz", + "lidovky.cz", + "metro.cz" + ], + "regexps": [ + "https?://(?:.+?\\.)?(?:playtvak|idnes|lidovky|metro)\\.cz/.*\\?(?:c|idvideo)=([^&]+)" + ], + "regexp": "https?://(?:.+?\\.)?(?:playtvak|idnes|lidovky|metro)\\.cz/.*\\?(?:c|idvideo)=([^&]+)" + }, + "playvids": { + "name": "playvids", + "type": "free", + "domains": [ + "playvids.com" + ], + "regexps": [ + "https?://(?:www\\.)?(playvids\\.com)/(?:embed/|\\w\\w?/)?([^/?#]*)" + ], + "regexp": "https?://(?:www\\.)?(playvids\\.com)/(?:embed/|\\w\\w?/)?([^/?#]*)" + }, + "playwire": { + "name": "playwire", + "type": "free", + "domains": [ + "config.playwire.com", + "cdn.playwire.com" + ], + "regexps": [ + "https?://(?:config|cdn)\\.playwire\\.com(?:/v2)?/(\\d+)/(?:videos/v2|embed|config)/(\\d+)" + ], + "regexp": "https?://(?:config|cdn)\\.playwire\\.com(?:/v2)?/(\\d+)/(?:videos/v2|embed|config)/(\\d+)" + }, + "pluralsight": { + "name": "pluralsight", + "type": "free", + "domains": [ + "pluralsight.com", + "app.pluralsight.com" + ], + "regexps": [ + "https?://(?:(?:www|app)\\.)?pluralsight\\.com/(?:library/)?courses/([^/]+)", + "https?://(?:(?:www|app)\\.)?pluralsight\\.com/(?:training/)?player\\?" + ], + "regexp": "(https?://(?:(?:www|app)\\.)?pluralsight\\.com/(?:library/)?courses/([^/]+))|(https?://(?:(?:www|app)\\.)?pluralsight\\.com/(?:training/)?player\\?)" + }, + "plutotv": { + "name": "plutotv", + "type": "free", + "domains": [ + "pluto.tv" + ], + "regexps": [ + "https?://(?:www\\.)?pluto\\.tv(?:/[^/]+)?/on-demand/(movies|series)/([^/]+)(?:(?:/seasons?/(\\d+))?(?:/episode/([^/]+))?)?/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?pluto\\.tv(?:/[^/]+)?/on-demand/(movies|series)/([^/]+)(?:(?:/seasons?/(\\d+))?(?:/episode/([^/]+))?)?/?(?:$|[#?])" + }, + "plvideo": { + "name": "plvideo", + "type": "free", + "domains": [ + "plvideo.ru" + ], + "regexps": [ + "https?://(?:www\\.)?plvideo\\.ru/(?:watch\\?(?:[^#]+&)?v=|shorts/)([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?plvideo\\.ru/(?:watch\\?(?:[^#]+&)?v=|shorts/)([\\w-]+)" + }, + "podbayfm": { + "name": "podbayfm", + "type": "free", + "domains": [ + "podbay.fm" + ], + "regexps": [ + "https?://podbay\\.fm/p/[^/?#]+/e/(\\d+)" + ], + "regexp": "https?://podbay\\.fm/p/[^/?#]+/e/(\\d+)" + }, + "podbayfmchannel": { + "name": "podbayfmchannel", + "type": "free", + "domains": [ + "podbay.fm" + ], + "regexps": [ + "https?://podbay\\.fm/p/([^/?#]+)/?(?:$|[?#])" + ], + "regexp": "https?://podbay\\.fm/p/([^/?#]+)/?(?:$|[?#])" + }, + "podchaser": { + "name": "podchaser", + "type": "free", + "domains": [ + "podchaser.com" + ], + "regexps": [ + "https?://(?:www\\.)?podchaser\\.com/podcasts/[\\w-]+-(\\d+)(?:/episodes/[\\w-]+-(\\d+))?" + ], + "regexp": "https?://(?:www\\.)?podchaser\\.com/podcasts/[\\w-]+-(\\d+)(?:/episodes/[\\w-]+-(\\d+))?" + }, + "podomatic": { + "name": "podomatic", + "type": "free", + "domains": [ + "scienceteachingtips.podomatic.com", + "ostbahnhof.podomatic.com", + "podomatic.com" + ], + "regexps": [ + "(https?)://(?:([^.]+)\\.podomatic\\.com/entry|(?:www\\.)?podomatic\\.com/podcasts/([^/]+)/episodes)/([^/?#&]+)" + ], + "regexp": "(https?)://(?:([^.]+)\\.podomatic\\.com/entry|(?:www\\.)?podomatic\\.com/podcasts/([^/]+)/episodes)/([^/?#&]+)" + }, + "pokergo": { + "name": "pokergo", + "type": "free", + "domains": [ + "pokergo.com" + ], + "regexps": [ + "https?://(?:www\\.)?pokergo\\.com/videos/([^&$#/?]+)" + ], + "regexp": "https?://(?:www\\.)?pokergo\\.com/videos/([^&$#/?]+)" + }, + "pokergocollection": { + "name": "pokergocollection", + "type": "free", + "domains": [ + "pokergo.com" + ], + "regexps": [ + "https?://(?:www\\.)?pokergo\\.com/collections/([^&$#/?]+)" + ], + "regexp": "https?://(?:www\\.)?pokergo\\.com/collections/([^&$#/?]+)" + }, + "polsatgo": { + "name": "polsatgo", + "type": "free", + "domains": [ + "polsatgo.pl" + ], + "regexps": [ + "https?://(?:www\\.)?polsat(?:box)?go\\.pl/.+/([0-9a-fA-F]+)(?:[/#?]|$)" + ], + "regexp": "https?://(?:www\\.)?polsat(?:box)?go\\.pl/.+/([0-9a-fA-F]+)(?:[/#?]|$)" + }, + "polskieradio": { + "name": "polskieradio", + "type": "free", + "domains": [ + "jedynka.polskieradio.pl", + "trojka.polskieradio.pl", + "polskieradio.pl", + "radiokierowcow.pl", + "polskieradio24.pl", + "player.polskieradio.pl", + "podcasty.polskieradio.pl" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?polskieradio\\.pl/audycj[ae]/(\\d+)", + "https?://(?:www\\.)?polskieradio\\.pl/(?:\\d+(?:,[^/]+)?/|[^/]+/Tag)(\\d+)", + "https?://(?:[^/]+\\.)?(?:polskieradio(?:24)?|radiokierowcow)\\.pl/artykul/(\\d+)", + "https?://(?:www\\.)?polskieradio(?:24)?\\.pl/\\d+/\\d+/[Aa]rtykul/(\\d+)", + "https?://player\\.polskieradio\\.pl/anteny/([^/]+)", + "https?://podcasty\\.polskieradio\\.pl/track/([a-f\\d]{8}(?:-[a-f\\d]{4}){4}[a-f\\d]{8})", + "https?://podcasty\\.polskieradio\\.pl/podcast/(\\d+)" + ], + "regexp": "(https?://(?:[^/]+\\.)?polskieradio\\.pl/audycj[ae]/(\\d+))|(https?://(?:www\\.)?polskieradio\\.pl/(?:\\d+(?:,[^/]+)?/|[^/]+/Tag)(\\d+))|(https?://(?:[^/]+\\.)?(?:polskieradio(?:24)?|radiokierowcow)\\.pl/artykul/(\\d+))|(https?://(?:www\\.)?polskieradio(?:24)?\\.pl/\\d+/\\d+/[Aa]rtykul/(\\d+))|(https?://player\\.polskieradio\\.pl/anteny/([^/]+))|(https?://podcasty\\.polskieradio\\.pl/track/([a-f\\d]{8}(?:-[a-f\\d]{4}){4}[a-f\\d]{8}))|(https?://podcasty\\.polskieradio\\.pl/podcast/(\\d+))" + }, + "popcorntimes": { + "name": "popcorntimes", + "type": "free", + "domains": [], + "regexps": [ + "https?://popcorntimes\\.tv/[^/]+/m/([^/]+)/([^/?#&]+)" + ], + "regexp": "https?://popcorntimes\\.tv/[^/]+/m/([^/]+)/([^/?#&]+)" + }, + "popcorntv": { + "name": "popcorntv", + "type": "free", + "domains": [ + "animemanga.popcorntv.it", + "cinema.popcorntv.it" + ], + "regexps": [ + "https?://[^/]+\\.popcorntv\\.it/guarda/([^/]+)/(\\d+)" + ], + "regexp": "https?://[^/]+\\.popcorntv\\.it/guarda/([^/]+)/(\\d+)" + }, + "pornbox": { + "name": "pornbox", + "type": "free", + "domains": [ + "pornbox.com" + ], + "regexps": [ + "https?://(?:www\\.)?pornbox\\.com/application/watch-page/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?pornbox\\.com/application/watch-page/([0-9]+)" + }, + "pornerbros": { + "name": "pornerbros", + "type": "free", + "domains": [ + "pornerbros.com", + "m.pornerbros.com" + ], + "regexps": [ + "https?://(?:(www|m)\\.)?pornerbros\\.com/(?:videos/([^/]+)_|embed/)(\\d+)" + ], + "regexp": "https?://(?:(www|m)\\.)?pornerbros\\.com/(?:videos/([^/]+)_|embed/)(\\d+)" + }, + "pornflip": { + "name": "pornflip", + "type": "free", + "domains": [ + "pornflip.com" + ], + "regexps": [ + "https?://(?:www\\.)?pornflip\\.com/(?:(embed|sv|v)/)?([^/]+)" + ], + "regexp": "https?://(?:www\\.)?pornflip\\.com/(?:(embed|sv|v)/)?([^/]+)" + }, + "pornhub": { + "name": "pornhub", + "type": "free", + "domains": [ + "pornhub.com", + "fr.pornhub.com", + "thumbzilla.com", + "pornhub.net", + "pornhub.org", + "pornhubpremium.com", + "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion" + ], + "regexps": [ + "https?://(?:(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?:(?:view_video\\.php|video/show)\\?viewkey=|embed/)|(?:www\\.)?thumbzilla\\.com/video/)([\\da-z]+)" + ], + "regexp": "https?://(?:(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?:(?:view_video\\.php|video/show)\\?viewkey=|embed/)|(?:www\\.)?thumbzilla\\.com/video/)([\\da-z]+)" + }, + "pornhubpagedvideolist": { + "name": "pornhubpagedvideolist", + "type": "free", + "domains": [ + "pornhub.com", + "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?!playlist/)((?:[^/]+/)*[^/?#&]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?!playlist/)((?:[^/]+/)*[^/?#&]+)" + }, + "pornhubplaylist": { + "name": "pornhubplaylist", + "type": "free", + "domains": [ + "pornhub.com", + "de.pornhub.com" + ], + "regexps": [ + "(https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/playlist/([^/?#&]+))" + ], + "regexp": "(https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/playlist/([^/?#&]+))" + }, + "pornhubuser": { + "name": "pornhubuser", + "type": "free", + "domains": [ + "pornhub.com", + "pornhubpremium.com", + "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion" + ], + "regexps": [ + "(https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?:(?:user|channel)s|model|pornstar)/([^/?#&]+))(?:[?#&]|/(?!videos)|$)" + ], + "regexp": "(https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?:(?:user|channel)s|model|pornstar)/([^/?#&]+))(?:[?#&]|/(?!videos)|$)" + }, + "pornhubuservideosupload": { + "name": "pornhubuservideosupload", + "type": "free", + "domains": [ + "pornhub.com", + "pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd.onion" + ], + "regexps": [ + "(https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?:(?:user|channel)s|model|pornstar)/([^/]+)/videos/upload)" + ], + "regexp": "(https?://(?:[^/]+\\.)?(?:(pornhub(?:premium)?\\.(?:com|net|org))|pornhubvybmsymdol4iibwgwtkpwmeyd6luq2gxajgjzfjvotyt5zhyd\\.onion)/(?:(?:user|channel)s|model|pornstar)/([^/]+)/videos/upload)" + }, + "pornotube": { + "name": "pornotube", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:\\w+\\.)?pornotube\\.com/(?:[^?#]*?)/video/([0-9]+)" + ], + "regexp": "https?://(?:\\w+\\.)?pornotube\\.com/(?:[^?#]*?)/video/([0-9]+)" + }, + "pornovoisines": { + "name": "pornovoisines", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?pornovoisines\\.com/videos/show/(\\d+)/([^/.]+)" + ], + "regexp": "https?://(?:www\\.)?pornovoisines\\.com/videos/show/(\\d+)/([^/.]+)" + }, + "pornoxo": { + "name": "pornoxo", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?pornoxo\\.com/videos/(\\d+)/([^/]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?pornoxo\\.com/videos/(\\d+)/([^/]+)\\.html" + }, + "porntop": { + "name": "porntop", + "type": "free", + "domains": [ + "porntop.com" + ], + "regexps": [ + "https?://((?:www\\.)?porntop\\.com)/video/(\\d+)(?:/([^/?]+))?" + ], + "regexp": "https?://((?:www\\.)?porntop\\.com)/video/(\\d+)(?:/([^/?]+))?" + }, + "porntube": { + "name": "porntube", + "type": "free", + "domains": [ + "porntube.com", + "m.porntube.com" + ], + "regexps": [ + "https?://(?:(www|m)\\.)?porntube\\.com/(?:videos/([^/]+)_|embed/)(\\d+)" + ], + "regexp": "https?://(?:(www|m)\\.)?porntube\\.com/(?:videos/([^/]+)_|embed/)(\\d+)" + }, + "pr0gramm": { + "name": "pr0gramm", + "type": "free", + "domains": [ + "pr0gramm.com" + ], + "regexps": [ + "https?://pr0gramm\\.com\\/(?:[^/?#]+/)+([\\d]+)(?:[/?#:]|$)" + ], + "regexp": "https?://pr0gramm\\.com\\/(?:[^/?#]+/)+([\\d]+)(?:[/?#:]|$)" + }, + "prankcast": { + "name": "prankcast", + "type": "free", + "domains": [ + "prankcast.com" + ], + "regexps": [ + "https?://(?:www\\.)?prankcast\\.com/[^/?#]+/showreel/(\\d+)-([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?prankcast\\.com/[^/?#]+/showreel/(\\d+)-([^/?#]+)" + }, + "prankcastpost": { + "name": "prankcastpost", + "type": "free", + "domains": [ + "prankcast.com" + ], + "regexps": [ + "https?://(?:www\\.)?prankcast\\.com/[^/?#]+/posts/(\\d+)-([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?prankcast\\.com/[^/?#]+/posts/(\\d+)-([^/?#]+)" + }, + "premiershiprugby": { + "name": "premiershiprugby", + "type": "free", + "domains": [ + "premiershiprugby.com" + ], + "regexps": [ + "https?://(?:\\w+\\.)premiershiprugby\\.(?:com)/watch/([\\w-]+)" + ], + "regexp": "https?://(?:\\w+\\.)premiershiprugby\\.(?:com)/watch/([\\w-]+)" + }, + "presstv": { + "name": "presstv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?presstv\\.ir/[^/]+/(\\d+)/(\\d+)/(\\d+)/(\\d+)/([^/]+)?" + ], + "regexp": "https?://(?:www\\.)?presstv\\.ir/[^/]+/(\\d+)/(\\d+)/(\\d+)/(\\d+)/([^/]+)?" + }, + "projectveritas": { + "name": "projectveritas", + "type": "free", + "domains": [ + "projectveritas.com" + ], + "regexps": [ + "https?://(?:www\\.)?projectveritas\\.com/(news|video)/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?projectveritas\\.com/(news|video)/([^/?#]+)" + }, + "prosiebensat1": { + "name": "prosiebensat1", + "type": "free", + "domains": [ + "prosieben.de", + "prosiebenmaxx.de", + "sixx.de", + "sat1.de", + "kabeleins.de", + "ran.de", + "the-voice-of-germany.de", + "fem.com", + "kabeleinsdoku.de", + "sat1gold.de", + "galileo.tv", + "advopedia.de" + ], + "regexps": [ + "https?://(?:www\\.)?(?:(?:beta\\.)?(?:prosieben(?:maxx)?|sixx|sat1(?:gold)?|kabeleins(?:doku)?|the-voice-of-germany|advopedia)\\.(?:de|at|ch)|ran\\.de|fem\\.com|advopedia\\.de|galileo\\.tv/video)/(.+)" + ], + "regexp": "https?://(?:www\\.)?(?:(?:beta\\.)?(?:prosieben(?:maxx)?|sixx|sat1(?:gold)?|kabeleins(?:doku)?|the-voice-of-germany|advopedia)\\.(?:de|at|ch)|ran\\.de|fem\\.com|advopedia\\.de|galileo\\.tv/video)/(.+)" + }, + "prxaccount": { + "name": "prxaccount", + "type": "free", + "domains": [ + "beta.prx.org" + ], + "regexps": [ + "https?://(?:(?:beta|listen)\\.)?prx.org/accounts/(\\d+)" + ], + "regexp": "https?://(?:(?:beta|listen)\\.)?prx.org/accounts/(\\d+)" + }, + "prxseries": { + "name": "prxseries", + "type": "free", + "domains": [ + "beta.prx.org" + ], + "regexps": [ + "https?://(?:(?:beta|listen)\\.)?prx.org/series/(\\d+)", + "prxseries(|[1-9][0-9]*|all):([\\s\\S]+)" + ], + "regexp": "(https?://(?:(?:beta|listen)\\.)?prx.org/series/(\\d+))|(prxseries(|[1-9][0-9]*|all):([\\s\\S]+))" + }, + "prxstories": { + "name": "prxstories", + "type": "free", + "domains": [], + "regexps": [ + "prxstories(|[1-9][0-9]*|all):([\\s\\S]+)" + ], + "regexp": "prxstories(|[1-9][0-9]*|all):([\\s\\S]+)" + }, + "prxstory": { + "name": "prxstory", + "type": "free", + "domains": [ + "beta.prx.org", + "listen.prx.org" + ], + "regexps": [ + "https?://(?:(?:beta|listen)\\.)?prx.org/stories/(\\d+)" + ], + "regexp": "https?://(?:(?:beta|listen)\\.)?prx.org/stories/(\\d+)" + }, + "puhutv": { + "name": "puhutv", + "type": "free", + "domains": [ + "puhutv.com" + ], + "regexps": [ + "https?://(?:www\\.)?puhutv\\.com/([^/?#&]+)-izle", + "https?://(?:www\\.)?puhutv\\.com/([^/?#&]+)-detay" + ], + "regexp": "(https?://(?:www\\.)?puhutv\\.com/([^/?#&]+)-izle)|(https?://(?:www\\.)?puhutv\\.com/([^/?#&]+)-detay)" + }, + "puls4": { + "name": "puls4", + "type": "free", + "domains": [ + "puls4.com" + ], + "regexps": [ + "https?://(?:www\\.)?puls4\\.com/([^?#&]+)" + ], + "regexp": "https?://(?:www\\.)?puls4\\.com/([^?#&]+)" + }, + "pyvideo": { + "name": "pyvideo", + "type": "free", + "domains": [ + "pyvideo.org" + ], + "regexps": [ + "https?://(?:www\\.)?pyvideo\\.org/([^/]+)/([^/?#&.]+)" + ], + "regexp": "https?://(?:www\\.)?pyvideo\\.org/([^/]+)/([^/?#&.]+)" + }, + "qdance": { + "name": "qdance", + "type": "free", + "domains": [ + "q-dance.com" + ], + "regexps": [ + "https?://(?:www\\.)?q-dance\\.com/network/(?:library|live)/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?q-dance\\.com/network/(?:library|live)/([\\w-]+)" + }, + "qingting": { + "name": "qingting", + "type": "free", + "domains": [ + "qingting.fm", + "m.qtfm.cn" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?(?:qingting\\.fm|qtfm\\.cn)/v?channels/(\\d+)/programs/(\\d+)" + ], + "regexp": "https?://(?:www\\.|m\\.)?(?:qingting\\.fm|qtfm\\.cn)/v?channels/(\\d+)/programs/(\\d+)" + }, + "qqmusic": { + "name": "qqmusic", + "type": "free", + "domains": [ + "y.qq.com" + ], + "regexps": [ + "https?://y\\.qq\\.com/n/ryqq/albumDetail/([0-9A-Za-z]+)", + "https?://y\\.qq\\.com/n/ryqq/songDetail/([0-9A-Za-z]+)", + "https?://y\\.qq\\.com/n/ryqq/playlist/([0-9]+)", + "https?://y\\.qq\\.com/n/ryqq/singer/([0-9A-Za-z]+)", + "https?://y\\.qq\\.com/n/ryqq/toplist/([0-9]+)", + "https?://y\\.qq\\.com/n/ryqq/mv/([0-9A-Za-z]+)" + ], + "regexp": "(https?://y\\.qq\\.com/n/ryqq/albumDetail/([0-9A-Za-z]+))|(https?://y\\.qq\\.com/n/ryqq/songDetail/([0-9A-Za-z]+))|(https?://y\\.qq\\.com/n/ryqq/playlist/([0-9]+))|(https?://y\\.qq\\.com/n/ryqq/singer/([0-9A-Za-z]+))|(https?://y\\.qq\\.com/n/ryqq/toplist/([0-9]+))|(https?://y\\.qq\\.com/n/ryqq/mv/([0-9A-Za-z]+))" + }, + "quantumtv": { + "name": "quantumtv", + "type": "free", + "domains": [ + "quantum-tv.com" + ], + "regexps": [ + "https?://(?:www\\.)?quantum\\-tv\\.com/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?quantum\\-tv\\.com/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "quantumtvlive": { + "name": "quantumtvlive", + "type": "free", + "domains": [ + "quantum-tv.com" + ], + "regexps": [ + "https?://(?:www\\.)?quantum\\-tv\\.com/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?quantum\\-tv\\.com/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "quantumtvrecordings": { + "name": "quantumtvrecordings", + "type": "free", + "domains": [ + "quantum-tv.com" + ], + "regexps": [ + "https?://(?:www\\.)?quantum\\-tv\\.com/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?quantum\\-tv\\.com/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "r7": { + "name": "r7", + "type": "free", + "domains": [ + "videos.r7.com", + "esportes.r7.com", + "noticias.r7.com", + "player.r7.com" + ], + "regexps": [ + "https?://(?:(?:[a-zA-Z]+)\\.r7\\.com(?:/[^/]+)+/idmedia/|noticias\\.r7\\.com(?:/[^/]+)+/[^/]+-|player\\.r7\\.com/video/i/)([\\da-f]{24})" + ], + "regexp": "https?://(?:(?:[a-zA-Z]+)\\.r7\\.com(?:/[^/]+)+/idmedia/|noticias\\.r7\\.com(?:/[^/]+)+/[^/]+-|player\\.r7\\.com/video/i/)([\\da-f]{24})" + }, + "r7article": { + "name": "r7article", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:[a-zA-Z]+)\\.r7\\.com/(?:[^/]+/)+[^/?#&]+-(\\d+)" + ], + "regexp": "https?://(?:[a-zA-Z]+)\\.r7\\.com/(?:[^/]+/)+[^/?#&]+-(\\d+)" + }, + "radiko": { + "name": "radiko", + "type": "free", + "domains": [ + "radiko.jp" + ], + "regexps": [ + "https?://(?:www\\.)?radiko\\.jp/#!/ts/([A-Z0-9-]+)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?radiko\\.jp/#!/ts/([A-Z0-9-]+)/(\\d+)" + }, + "radikoradio": { + "name": "radikoradio", + "type": "free", + "domains": [ + "radiko.jp" + ], + "regexps": [ + "https?://(?:www\\.)?radiko\\.jp/#!/live/([A-Z0-9-]+)" + ], + "regexp": "https?://(?:www\\.)?radiko\\.jp/#!/live/([A-Z0-9-]+)" + }, + "radio.de": { + "name": "radio.de", + "type": "free", + "domains": [], + "regexps": [ + "https?://(.+?)\\.(?:radio\\.(?:de|at|fr|pt|es|pl|it)|rad\\.io)" + ], + "regexp": "https?://(.+?)\\.(?:radio\\.(?:de|at|fr|pt|es|pl|it)|rad\\.io)" + }, + "radio1be": { + "name": "radio1be", + "type": "free", + "domains": [ + "radio1.be" + ], + "regexps": [ + "https?://radio1\\.be/(?:lees|luister/select)/([\\w/-]+)" + ], + "regexp": "https?://radio1\\.be/(?:lees|luister/select)/([\\w/-]+)" + }, + "radiocanada": { + "name": "radiocanada", + "type": "free", + "domains": [ + "ici.radio-canada.ca" + ], + "regexps": [ + "https?://ici\\.radio-canada\\.ca/([^/]+/)*media-([0-9]+)", + "(?:radiocanada:|https?://ici\\.radio-canada\\.ca/widgets/mediaconsole/)([^:/]+)[:/]([0-9]+)" + ], + "regexp": "(https?://ici\\.radio-canada\\.ca/([^/]+/)*media-([0-9]+))|((?:radiocanada:|https?://ici\\.radio-canada\\.ca/widgets/mediaconsole/)([^:/]+)[:/]([0-9]+))" + }, + "radiocomercial": { + "name": "radiocomercial", + "type": "free", + "domains": [ + "radiocomercial.pt" + ], + "regexps": [ + "https?://(?:www\\.)?radiocomercial\\.pt/podcasts/[^/?#]+/t?(\\d+)/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?radiocomercial\\.pt/podcasts/[^/?#]+/t?(\\d+)/([\\w-]+)" + }, + "radiocomercialplaylist": { + "name": "radiocomercialplaylist", + "type": "free", + "domains": [ + "radiocomercial.pt" + ], + "regexps": [ + "https?://(?:www\\.)?radiocomercial\\.pt/podcasts/([\\w-]+)(?:/t?(\\d+))?/?(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?radiocomercial\\.pt/podcasts/([\\w-]+)(?:/t?(\\d+))?/?(?:$|[?#])" + }, + "radiofrance": { + "name": "radiofrance", + "type": "free", + "domains": [], + "regexps": [ + "https?://maison\\.radiofrance\\.fr/radiovisions/([^?#]+)" + ], + "regexp": "https?://maison\\.radiofrance\\.fr/radiovisions/([^?#]+)" + }, + "radiofrancelive": { + "name": "radiofrancelive", + "type": "free", + "domains": [ + "radiofrance.fr" + ], + "regexps": [ + "https?://(?:www\\.)?radiofrance\\.fr/(franceculture|franceinfo|franceinter|francemusique|fip|mouv)/?(radio-[\\w-]+)?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?radiofrance\\.fr/(franceculture|franceinfo|franceinter|francemusique|fip|mouv)/?(radio-[\\w-]+)?(?:[#?]|$)" + }, + "radiofrancepodcast": { + "name": "radiofrancepodcast", + "type": "free", + "domains": [ + "radiofrance.fr" + ], + "regexps": [ + "https?://(?:www\\.)?radiofrance\\.fr/(?:franceculture|franceinfo|franceinter|francemusique|fip|mouv)/podcasts/([\\w-]+)/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?radiofrance\\.fr/(?:franceculture|franceinfo|franceinter|francemusique|fip|mouv)/podcasts/([\\w-]+)/?(?:[?#]|$)" + }, + "radiofranceprofile": { + "name": "radiofranceprofile", + "type": "free", + "domains": [ + "radiofrance.fr" + ], + "regexps": [ + "https?://(?:www\\.)?radiofrance\\.fr/personnes/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?radiofrance\\.fr/personnes/([\\w-]+)" + }, + "radiofranceprogramschedule": { + "name": "radiofranceprogramschedule", + "type": "free", + "domains": [ + "radiofrance.fr" + ], + "regexps": [ + "https?://(?:www\\.)?radiofrance\\.fr/(franceculture|franceinfo|franceinter|francemusique|fip|mouv)/grille-programmes" + ], + "regexp": "https?://(?:www\\.)?radiofrance\\.fr/(franceculture|franceinfo|franceinter|francemusique|fip|mouv)/grille-programmes" + }, + "radiojavan": { + "name": "radiojavan", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?radiojavan\\.com/videos/video/([^/]+)/?" + ], + "regexp": "https?://(?:www\\.)?radiojavan\\.com/videos/video/([^/]+)/?" + }, + "radiokapital": { + "name": "radiokapital", + "type": "free", + "domains": [ + "radiokapital.pl" + ], + "regexps": [ + "https?://(?:www\\.)?radiokapital\\.pl/shows/[a-z\\d-]+/([a-z\\d-]+)", + "https?://(?:www\\.)?radiokapital\\.pl/shows/([a-z\\d-]+)/?(?:$|[?#])" + ], + "regexp": "(https?://(?:www\\.)?radiokapital\\.pl/shows/[a-z\\d-]+/([a-z\\d-]+))|(https?://(?:www\\.)?radiokapital\\.pl/shows/([a-z\\d-]+)/?(?:$|[?#]))" + }, + "radioradicale": { + "name": "radioradicale", + "type": "free", + "domains": [ + "radioradicale.it" + ], + "regexps": [ + "https?://(?:www\\.)?radioradicale\\.it/scheda/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?radioradicale\\.it/scheda/([0-9]+)" + }, + "radiozetpodcast": { + "name": "radiozetpodcast", + "type": "free", + "domains": [], + "regexps": [ + "https?://player\\.radiozet\\.pl\\/Podcasty/.*?/(.+)" + ], + "regexp": "https?://player\\.radiozet\\.pl\\/Podcasty/.*?/(.+)" + }, + "radlive": { + "name": "radlive", + "type": "free", + "domains": [ + "rad.live" + ], + "regexps": [ + "https?://(?:www\\.)?rad\\.live/content/channel/([a-f0-9-]+)", + "https?://(?:www\\.)?rad\\.live/content/(feature|episode)/([a-f0-9-]+)", + "https?://(?:www\\.)?rad\\.live/content/season/([a-f0-9-]+)" + ], + "regexp": "(https?://(?:www\\.)?rad\\.live/content/channel/([a-f0-9-]+))|(https?://(?:www\\.)?rad\\.live/content/(feature|episode)/([a-f0-9-]+))|(https?://(?:www\\.)?rad\\.live/content/season/([a-f0-9-]+))" + }, + "rai": { + "name": "rai", + "type": "free", + "domains": [ + "raisport.rai.it", + "rai.it" + ], + "regexps": [ + "https?://[^/]+\\.(?:rai\\.(?:it|tv))/.+?-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-.+?)?\\.html" + ], + "regexp": "https?://[^/]+\\.(?:rai\\.(?:it|tv))/.+?-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-.+?)?\\.html" + }, + "raicultura": { + "name": "raicultura", + "type": "free", + "domains": [ + "raicultura.it" + ], + "regexps": [ + "https?://(www\\.)?raicultura\\.it/(?!articoli)[^?#]+-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-[^/?#]+)?\\.html" + ], + "regexp": "https?://(www\\.)?raicultura\\.it/(?!articoli)[^?#]+-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-[^/?#]+)?\\.html" + }, + "rainews": { + "name": "rainews", + "type": "free", + "domains": [ + "rainews.it" + ], + "regexps": [ + "https?://(www\\.)?rainews\\.it/(?!articoli)[^?#]+-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-[^/?#]+)?\\.html" + ], + "regexp": "https?://(www\\.)?rainews\\.it/(?!articoli)[^?#]+-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-[^/?#]+)?\\.html" + }, + "raiplay": { + "name": "raiplay", + "type": "free", + "domains": [ + "raiplay.it" + ], + "regexps": [ + "(https?://(?:www\\.)?raiplay\\.it/.+?-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}))\\.(?:html|json)" + ], + "regexp": "(https?://(?:www\\.)?raiplay\\.it/.+?-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}))\\.(?:html|json)" + }, + "raiplaylive": { + "name": "raiplaylive", + "type": "free", + "domains": [ + "raiplay.it" + ], + "regexps": [ + "(https?://(?:www\\.)?raiplay\\.it/dirette/([^/?#&]+))" + ], + "regexp": "(https?://(?:www\\.)?raiplay\\.it/dirette/([^/?#&]+))" + }, + "raiplayplaylist": { + "name": "raiplayplaylist", + "type": "free", + "domains": [ + "raiplay.it" + ], + "regexps": [ + "(https?://(?:www\\.)?raiplay\\.it/programmi/([^/?#&]+))(?:/([^?#&]+))?" + ], + "regexp": "(https?://(?:www\\.)?raiplay\\.it/programmi/([^/?#&]+))(?:/([^?#&]+))?" + }, + "raiplaysound": { + "name": "raiplaysound", + "type": "free", + "domains": [ + "raiplaysound.it" + ], + "regexps": [ + "(https?://(?:www\\.)?raiplaysound\\.it/.+?-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}))\\.(?:html|json)" + ], + "regexp": "(https?://(?:www\\.)?raiplaysound\\.it/.+?-([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}))\\.(?:html|json)" + }, + "raiplaysoundlive": { + "name": "raiplaysoundlive", + "type": "free", + "domains": [ + "raiplaysound.it" + ], + "regexps": [ + "(https?://(?:www\\.)?raiplaysound\\.it/([^/?#&]+)$)" + ], + "regexp": "(https?://(?:www\\.)?raiplaysound\\.it/([^/?#&]+)$)" + }, + "raiplaysoundplaylist": { + "name": "raiplaysoundplaylist", + "type": "free", + "domains": [ + "raiplaysound.it" + ], + "regexps": [ + "(https?://(?:www\\.)?raiplaysound\\.it/(?:programmi|playlist|audiolibri)/([^/?#&]+))(?:/([^?#&]+))?" + ], + "regexp": "(https?://(?:www\\.)?raiplaysound\\.it/(?:programmi|playlist|audiolibri)/([^/?#&]+))(?:/([^?#&]+))?" + }, + "raisudtirol": { + "name": "raisudtirol", + "type": "free", + "domains": [ + "raisudtirol.rai.it", + "raibz.rai.it" + ], + "regexps": [ + "https?://rai(?:bz|sudtirol)\\.rai\\.it/.+media=(\\w+)" + ], + "regexp": "https?://rai(?:bz|sudtirol)\\.rai\\.it/.+media=(\\w+)" + }, + "raywenderlich": { + "name": "raywenderlich", + "type": "free", + "domains": [ + "raywenderlich.com", + "videos.raywenderlich.com" + ], + "regexps": [ + "https?://(?:videos\\.raywenderlich\\.com/courses|(?:www\\.)?raywenderlich\\.com)/([^/]+)/lessons/(\\d+)" + ], + "regexp": "https?://(?:videos\\.raywenderlich\\.com/courses|(?:www\\.)?raywenderlich\\.com)/([^/]+)/lessons/(\\d+)" + }, + "raywenderlichcourse": { + "name": "raywenderlichcourse", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:videos\\.raywenderlich\\.com/courses|(?:www\\.)?raywenderlich\\.com)/([^/]+)" + ], + "regexp": "https?://(?:videos\\.raywenderlich\\.com/courses|(?:www\\.)?raywenderlich\\.com)/([^/]+)" + }, + "rbgtum": { + "name": "rbgtum", + "type": "free", + "domains": [ + "live.rbg.tum.de", + "tum.live" + ], + "regexps": [ + "https?://(?:live\\.rbg\\.tum\\.de|tum\\.live)/w/([^?#]+)" + ], + "regexp": "https?://(?:live\\.rbg\\.tum\\.de|tum\\.live)/w/([^?#]+)" + }, + "rbgtumcourse": { + "name": "rbgtumcourse", + "type": "free", + "domains": [ + "live.rbg.tum.de", + "tum.live" + ], + "regexps": [ + "https?://((?:live\\.rbg\\.tum\\.de|tum\\.live))/old/course/((\\d+)/(\\w+)/([^/?#]+))" + ], + "regexp": "https?://((?:live\\.rbg\\.tum\\.de|tum\\.live))/old/course/((\\d+)/(\\w+)/([^/?#]+))" + }, + "rbgtumnewcourse": { + "name": "rbgtumnewcourse", + "type": "free", + "domains": [ + "live.rbg.tum.de", + "tum.live" + ], + "regexps": [ + "https?://((?:live\\.rbg\\.tum\\.de|tum\\.live))/\\?" + ], + "regexp": "https?://((?:live\\.rbg\\.tum\\.de|tum\\.live))/\\?" + }, + "rcs": { + "name": "rcs", + "type": "free", + "domains": [ + "video.corriere.it", + "viaggi.corriere.it" + ], + "regexps": [ + "https?://(video|viaggi)\\.((?:corrieredelmezzogiorno\\.|corrieredelveneto\\.|corrieredibologna\\.|corrierefiorentino\\.)?corriere\\.it|(?:gazzanet\\.)?gazzetta\\.it)/(?!video-embed/)[^?#]+?/([^/\\?]+)(?=\\?|/$|$)" + ], + "regexp": "https?://(video|viaggi)\\.((?:corrieredelmezzogiorno\\.|corrieredelveneto\\.|corrieredibologna\\.|corrierefiorentino\\.)?corriere\\.it|(?:gazzanet\\.)?gazzetta\\.it)/(?!video-embed/)[^?#]+?/([^/\\?]+)(?=\\?|/$|$)" + }, + "rcsembeds": { + "name": "rcsembeds", + "type": "free", + "domains": [ + "video.rcs.it", + "video.gazzanet.gazzetta.it", + "video.gazzetta.it" + ], + "regexps": [ + "https?://(video)\\.((?:rcs|(?:corriere\\w+\\.)?corriere|(?:gazzanet\\.)?gazzetta)\\.it)/video-embed/([^/=&\\?]+?)(?:$|\\?)" + ], + "regexp": "https?://(video)\\.((?:rcs|(?:corriere\\w+\\.)?corriere|(?:gazzanet\\.)?gazzetta)\\.it)/video-embed/([^/=&\\?]+?)(?:$|\\?)" + }, + "rcsvarious": { + "name": "rcsvarious", + "type": "free", + "domains": [ + "leitv.it", + "youreporter.it", + "amica.it" + ], + "regexps": [ + "https?://www\\.(leitv\\.it|youreporter\\.it|amica\\.it)/(?:[^/]+/)?([^/]+?)(?:$|\\?|/)" + ], + "regexp": "https?://www\\.(leitv\\.it|youreporter\\.it|amica\\.it)/(?:[^/]+/)?([^/]+?)(?:$|\\?|/)" + }, + "rctiplus": { + "name": "rctiplus", + "type": "free", + "domains": [ + "rctiplus.com" + ], + "regexps": [ + "https?://www\\.rctiplus\\.com/(?:programs/\\d+?/.*?/)?(episode|clip|extra|live-event|missed-event)/(\\d+)/([^/?#&]+)" + ], + "regexp": "https?://www\\.rctiplus\\.com/(?:programs/\\d+?/.*?/)?(episode|clip|extra|live-event|missed-event)/(\\d+)/([^/?#&]+)" + }, + "rctiplusseries": { + "name": "rctiplusseries", + "type": "free", + "domains": [ + "rctiplus.com" + ], + "regexps": [ + "https?://www\\.rctiplus\\.com/programs/(\\d+)/([^/?#&]+)(?:/(episodes|extras|clips))?" + ], + "regexp": "https?://www\\.rctiplus\\.com/programs/(\\d+)/([^/?#&]+)(?:/(episodes|extras|clips))?" + }, + "rctiplustv": { + "name": "rctiplustv", + "type": "free", + "domains": [ + "rctiplus.com" + ], + "regexps": [ + "https?://www\\.rctiplus\\.com/((tv/(\\w+))|(live-event|missed-event))" + ], + "regexp": "https?://www\\.rctiplus\\.com/((tv/(\\w+))|(live-event|missed-event))" + }, + "rds": { + "name": "rds", + "type": "free", + "domains": [ + "rds.ca" + ], + "regexps": [ + "https?://(?:www\\.)?rds\\.ca/vid(?:[eé]|%C3%A9)os/(?:[^/]+/)*([^/]+)-\\d+\\.\\d+" + ], + "regexp": "https?://(?:www\\.)?rds\\.ca/vid(?:[eé]|%C3%A9)os/(?:[^/]+/)*([^/]+)-\\d+\\.\\d+" + }, + "redbull": { + "name": "redbull", + "type": "free", + "domains": [ + "redbull.com" + ], + "regexps": [ + "https?://(?:www\\.)?redbull\\.com/([a-z]{2,3})-([a-z]{2})/((?:episode|film|(?:(?:recap|trailer)-)?video)s|live)/(?!AP-|rrn:content:)([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?redbull\\.com/([a-z]{2,3})-([a-z]{2})/((?:episode|film|(?:(?:recap|trailer)-)?video)s|live)/(?!AP-|rrn:content:)([^/?#&]+)" + }, + "redbullembed": { + "name": "redbullembed", + "type": "free", + "domains": [ + "redbull.com" + ], + "regexps": [ + "https?://(?:www\\.)?redbull\\.com/embed/(rrn:content:[^:]+:[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}:[a-z]{2}-[A-Z]{2,3})" + ], + "regexp": "https?://(?:www\\.)?redbull\\.com/embed/(rrn:content:[^:]+:[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}:[a-z]{2}-[A-Z]{2,3})" + }, + "redbulltv": { + "name": "redbulltv", + "type": "free", + "domains": [ + "redbull.tv", + "redbull.com" + ], + "regexps": [ + "https?://(?:www\\.)?redbull(?:\\.tv|\\.com(?:/[^/]+)?(?:/tv)?)(?:/events/[^/]+)?/(?:videos?|live|(?:film|episode)s)/(AP-\\w+)" + ], + "regexp": "https?://(?:www\\.)?redbull(?:\\.tv|\\.com(?:/[^/]+)?(?:/tv)?)(?:/events/[^/]+)?/(?:videos?|live|(?:film|episode)s)/(AP-\\w+)" + }, + "redbulltvrrncontent": { + "name": "redbulltvrrncontent", + "type": "free", + "domains": [ + "redbull.com" + ], + "regexps": [ + "https?://(?:www\\.)?redbull\\.com/([a-z]{2,3})-([a-z]{2})/tv/(?:video|live|film)/(rrn:content:[^:]+:[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + ], + "regexp": "https?://(?:www\\.)?redbull\\.com/([a-z]{2,3})-([a-z]{2})/tv/(?:video|live|film)/(rrn:content:[^:]+:[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + }, + "redcdnlivx": { + "name": "redcdnlivx", + "type": "free", + "domains": [ + "r.dcs.redcdn.pl", + "n-25-12.dcs.redcdn.pl", + "redir.atmcdn.pl" + ], + "regexps": [ + "https?://[^.]+\\.(?:dcs\\.redcdn|atmcdn)\\.pl/(?:live(?:dash|hls|ss)|nvr)/o2/([^/?#]+)/([^?#]+)\\.livx" + ], + "regexp": "https?://[^.]+\\.(?:dcs\\.redcdn|atmcdn)\\.pl/(?:live(?:dash|hls|ss)|nvr)/o2/([^/?#]+)/([^?#]+)\\.livx" + }, + "reddit": { + "name": "reddit", + "type": "free", + "domains": [ + "reddit.com", + "old.reddit.com", + "nm.reddit.com", + "redditmedia.com" + ], + "regexps": [ + "https?://(?:\\w+\\.)?reddit(?:media)?\\.com/((?:(?:r|user)/[^/]+/)?comments/([^/?#&]+))" + ], + "regexp": "https?://(?:\\w+\\.)?reddit(?:media)?\\.com/((?:(?:r|user)/[^/]+/)?comments/([^/?#&]+))" + }, + "redgifs": { + "name": "redgifs", + "type": "free", + "domains": [ + "redgifs.com", + "thumbs2.redgifs.com" + ], + "regexps": [ + "https?://(?:(?:www\\.)?redgifs\\.com/(?:watch|ifr)/|thumbs2\\.redgifs\\.com/)([^-/?#\\.]+)" + ], + "regexp": "https?://(?:(?:www\\.)?redgifs\\.com/(?:watch|ifr)/|thumbs2\\.redgifs\\.com/)([^-/?#\\.]+)" + }, + "redgifssearch": { + "name": "redgifssearch", + "type": "free", + "domains": [ + "redgifs.com" + ], + "regexps": [ + "https?://(?:www\\.)?redgifs\\.com/browse\\?([^#]+)" + ], + "regexp": "https?://(?:www\\.)?redgifs\\.com/browse\\?([^#]+)" + }, + "redgifsuser": { + "name": "redgifsuser", + "type": "free", + "domains": [ + "redgifs.com" + ], + "regexps": [ + "https?://(?:www\\.)?redgifs\\.com/users/([^/?#]+)(?:\\?([^#]+))?" + ], + "regexp": "https?://(?:www\\.)?redgifs\\.com/users/([^/?#]+)(?:\\?([^#]+))?" + }, + "redtube": { + "name": "redtube", + "type": "free", + "domains": [ + "redtube.com", + "embed.redtube.com", + "it.redtube.com", + "redtube.com.br" + ], + "regexps": [ + "https?://(?:(?:\\w+\\.)?redtube\\.com(?:\\.br)?/|embed\\.redtube\\.com/\\?.*?\\bid=)([0-9]+)" + ], + "regexp": "https?://(?:(?:\\w+\\.)?redtube\\.com(?:\\.br)?/|embed\\.redtube\\.com/\\?.*?\\bid=)([0-9]+)" + }, + "rentv": { + "name": "rentv", + "type": "free", + "domains": [ + "ren.tv" + ], + "regexps": [ + "(?:rentv:|https?://(?:www\\.)?ren\\.tv/(?:player|video/epizod)/)(\\d+)" + ], + "regexp": "(?:rentv:|https?://(?:www\\.)?ren\\.tv/(?:player|video/epizod)/)(\\d+)" + }, + "rentvarticle": { + "name": "rentvarticle", + "type": "free", + "domains": [ + "ren.tv" + ], + "regexps": [ + "https?://(?:www\\.)?ren\\.tv/novosti/\\d{4}-\\d{2}-\\d{2}/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?ren\\.tv/novosti/\\d{4}-\\d{2}-\\d{2}/([^/?#]+)" + }, + "restudy": { + "name": "restudy", + "type": "free", + "domains": [ + "restudy.dk", + "portal.restudy.dk" + ], + "regexps": [ + "https?://(?:(?:www|portal)\\.)?restudy\\.dk/video/[^/]+/id/([0-9]+)" + ], + "regexp": "https?://(?:(?:www|portal)\\.)?restudy\\.dk/video/[^/]+/id/([0-9]+)" + }, + "reuters": { + "name": "reuters", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?reuters\\.com/.*?\\?.*?videoId=([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?reuters\\.com/.*?\\?.*?videoId=([0-9]+)" + }, + "reverbnation": { + "name": "reverbnation", + "type": "free", + "domains": [ + "reverbnation.com" + ], + "regexps": [ + "https?://(?:www\\.)?reverbnation\\.com/.*?/song/(\\d+).*?$" + ], + "regexp": "https?://(?:www\\.)?reverbnation\\.com/.*?/song/(\\d+).*?$" + }, + "rheinmaintv": { + "name": "rheinmaintv", + "type": "free", + "domains": [ + "rheinmaintv.de" + ], + "regexps": [ + "https?://(?:www\\.)?rheinmaintv\\.de/sendungen/(?:[\\w-]+/)*(([\\w-]+)/vom-\\d{2}\\.\\d{2}\\.\\d{4}(?:/\\d+)?)" + ], + "regexp": "https?://(?:www\\.)?rheinmaintv\\.de/sendungen/(?:[\\w-]+/)*(([\\w-]+)/vom-\\d{2}\\.\\d{2}\\.\\d{4}(?:/\\d+)?)" + }, + "ridehome": { + "name": "ridehome", + "type": "free", + "domains": [ + "ridehome.info" + ], + "regexps": [ + "https?://(?:www\\.)?ridehome\\.info/show/[\\w-]+/([\\w-]+)/?(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?ridehome\\.info/show/[\\w-]+/([\\w-]+)/?(?:$|[?#])" + }, + "rinsefm": { + "name": "rinsefm", + "type": "free", + "domains": [ + "rinse.fm" + ], + "regexps": [ + "https?://(?:www\\.)?rinse\\.fm/episodes/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?rinse\\.fm/episodes/([^/?#]+)" + }, + "rinsefmartistplaylist": { + "name": "rinsefmartistplaylist", + "type": "free", + "domains": [ + "rinse.fm" + ], + "regexps": [ + "https?://(?:www\\.)?rinse\\.fm/shows/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?rinse\\.fm/shows/([^/?#]+)" + }, + "rmcdecouverte": { + "name": "rmcdecouverte", + "type": "free", + "domains": [ + "rmcdecouverte.bfmtv.com" + ], + "regexps": [ + "https?://rmcdecouverte\\.bfmtv\\.com/(?:[^?#]*_(\\d+)|mediaplayer-direct)/?(?:[#?]|$)" + ], + "regexp": "https?://rmcdecouverte\\.bfmtv\\.com/(?:[^?#]*_(\\d+)|mediaplayer-direct)/?(?:[#?]|$)" + }, + "rockstargames": { + "name": "rockstargames", + "type": "free", + "domains": [ + "rockstargames.com" + ], + "regexps": [ + "https?://(?:www\\.)?rockstargames\\.com/videos(?:/video/|#?/?\\?.*\\bvideo=)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?rockstargames\\.com/videos(?:/video/|#?/?\\?.*\\bvideo=)(\\d+)" + }, + "rokfin": { + "name": "rokfin", + "type": "free", + "domains": [ + "rokfin.com" + ], + "regexps": [ + "https?://(?:www\\.)?rokfin\\.com/(?!((feed/?)|(discover/?)|(channels/?))$)([^/]+)/?$", + "https?://(?:www\\.)?rokfin\\.com/((post|stream)/\\d+)", + "rkfnsearch(|[1-9][0-9]*|all):([\\s\\S]+)", + "https?://(?:www\\.)?rokfin\\.com/stack/([^/]+)" + ], + "regexp": "(https?://(?:www\\.)?rokfin\\.com/(?!((feed/?)|(discover/?)|(channels/?))$)([^/]+)/?$)|(https?://(?:www\\.)?rokfin\\.com/((post|stream)/\\d+))|(rkfnsearch(|[1-9][0-9]*|all):([\\s\\S]+))|(https?://(?:www\\.)?rokfin\\.com/stack/([^/]+))" + }, + "roosterteeth": { + "name": "roosterteeth", + "type": "free", + "domains": [ + "roosterteeth.com", + "achievementhunter.roosterteeth.com", + "funhaus.roosterteeth.com", + "screwattack.roosterteeth.com", + "theknow.roosterteeth.com" + ], + "regexps": [ + "https?://(?:.+?\\.)?roosterteeth\\.com/(?:bonus-feature|episode|watch)/([^/?#&]+)" + ], + "regexp": "https?://(?:.+?\\.)?roosterteeth\\.com/(?:bonus-feature|episode|watch)/([^/?#&]+)" + }, + "roosterteethseries": { + "name": "roosterteethseries", + "type": "free", + "domains": [ + "roosterteeth.com" + ], + "regexps": [ + "https?://(?:.+?\\.)?roosterteeth\\.com/series/([^/?#&]+)" + ], + "regexp": "https?://(?:.+?\\.)?roosterteeth\\.com/series/([^/?#&]+)" + }, + "rottentomatoes": { + "name": "rottentomatoes", + "type": "free", + "domains": [ + "rottentomatoes.com" + ], + "regexps": [ + "https?://(?:www\\.)?rottentomatoes\\.com/m/([^/]+)(?:/(trailers)(?:/(\\w+))?)?" + ], + "regexp": "https?://(?:www\\.)?rottentomatoes\\.com/m/([^/]+)(?:/(trailers)(?:/(\\w+))?)?" + }, + "royalive": { + "name": "royalive", + "type": "free", + "domains": [ + "en.roya.tv", + "roya.tv" + ], + "regexps": [ + "https?://(?:en\\.)?roya\\.tv/live-stream/(\\d+)" + ], + "regexp": "https?://(?:en\\.)?roya\\.tv/live-stream/(\\d+)" + }, + "rozhlas": { + "name": "rozhlas", + "type": "free", + "domains": [ + "prehravac.rozhlas.cz" + ], + "regexps": [ + "https?://(?:www\\.)?prehravac\\.rozhlas\\.cz/audio/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?prehravac\\.rozhlas\\.cz/audio/([0-9]+)" + }, + "rozhlasvltava": { + "name": "rozhlasvltava", + "type": "free", + "domains": [ + "wave.rozhlas.cz", + "dvojka.rozhlas.cz" + ], + "regexps": [ + "https?://(?:\\w+\\.rozhlas|english\\.radio)\\.cz/[\\w-]+-(\\d+)" + ], + "regexp": "https?://(?:\\w+\\.rozhlas|english\\.radio)\\.cz/[\\w-]+-(\\d+)" + }, + "rtbf": { + "name": "rtbf", + "type": "free", + "domains": [ + "rtbf.be" + ], + "regexps": [ + "https?://(?:www\\.)?rtbf\\.be/(?:video/[^?]+\\?.*\\bid=|ouftivi/(?:[^/]+/)*[^?]+\\?.*\\bvideoId=|auvio/[^/]+\\?.*\\b(l)?id=)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?rtbf\\.be/(?:video/[^?]+\\?.*\\bid=|ouftivi/(?:[^/]+/)*[^?]+\\?.*\\bvideoId=|auvio/[^/]+\\?.*\\b(l)?id=)(\\d+)" + }, + "rtdocumentry": { + "name": "rtdocumentry", + "type": "free", + "domains": [ + "rtd.rt.com" + ], + "regexps": [ + "https?://rtd\\.rt\\.com/(?:(?:series|shows)/[^/]+|films)/([^/?$&#]+)" + ], + "regexp": "https?://rtd\\.rt\\.com/(?:(?:series|shows)/[^/]+|films)/([^/?$&#]+)" + }, + "rtdocumentryplaylist": { + "name": "rtdocumentryplaylist", + "type": "free", + "domains": [ + "rtd.rt.com" + ], + "regexps": [ + "https?://rtd\\.rt\\.com/(?:series|shows)/([^/]+)/$" + ], + "regexp": "https?://rtd\\.rt\\.com/(?:series|shows)/([^/]+)/$" + }, + "rte": { + "name": "rte", + "type": "free", + "domains": [ + "rte.ie" + ], + "regexps": [ + "https?://(?:www\\.)?rte\\.ie/player/[^/]{2,3}/show/[^/]+/([0-9]+)", + "https?://(?:www\\.)?rte\\.ie/radio/utils/radioplayer/rteradioweb\\.html#!rii=(?:b?[0-9]*)(?:%3A|:|%5F|_)([0-9]+)" + ], + "regexp": "(https?://(?:www\\.)?rte\\.ie/player/[^/]{2,3}/show/[^/]+/([0-9]+))|(https?://(?:www\\.)?rte\\.ie/radio/utils/radioplayer/rteradioweb\\.html#!rii=(?:b?[0-9]*)(?:%3A|:|%5F|_)([0-9]+))" + }, + "rtl.lu": { + "name": "rtl.lu", + "type": "free", + "domains": [ + "rtl.lu", + "5minutes.rtl.lu", + "today.rtl.lu" + ], + "regexps": [ + "https?://(?:(www|5minutes|today)\\.)rtl\\.lu/(?:[\\w-]+)/(?:[\\w-]+)/a/(\\d+)\\.html", + "https?://(?:www\\.)?rtl\\.lu/(tele/([\\w-]+)/v/|video/)(\\d+)(\\.html)?" + ], + "regexp": "(https?://(?:(www|5minutes|today)\\.)rtl\\.lu/(?:[\\w-]+)/(?:[\\w-]+)/a/(\\d+)\\.html)|(https?://(?:www\\.)?rtl\\.lu/(tele/([\\w-]+)/v/|video/)(\\d+)(\\.html)?)" + }, + "rtl.nl": { + "name": "rtl.nl", + "type": "free", + "domains": [ + "rtlxl.nl", + "rtl.nl", + "static.rtl.nl", + "embed.rtl.nl" + ], + "regexps": [ + "https?://(?:(?:www|static)\\.)?(?:rtlxl\\.nl/(?:[^\\#]*\\#!|programma)/[^/]+/|rtl\\.nl/(?:(?:system/videoplayer/(?:[^/]+/)+(?:video_)?embed\\.html|embed)\\b.+?\\buuid=|video/)|embed\\.rtl\\.nl/\\#uuid=)([0-9a-f-]+)" + ], + "regexp": "https?://(?:(?:www|static)\\.)?(?:rtlxl\\.nl/(?:[^\\#]*\\#!|programma)/[^/]+/|rtl\\.nl/(?:(?:system/videoplayer/(?:[^/]+/)+(?:video_)?embed\\.html|embed)\\b.+?\\buuid=|video/)|embed\\.rtl\\.nl/\\#uuid=)([0-9a-f-]+)" + }, + "rtl2": { + "name": "rtl2", + "type": "free", + "domains": [ + "rtl2.de" + ], + "regexps": [ + "https?://(?:www\\.)?rtl2\\.de/sendung/[^/]+/(?:video/(\\d+)[^/]+/(\\d+)-|folge/)([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?rtl2\\.de/sendung/[^/]+/(?:video/(\\d+)[^/]+/(\\d+)-|folge/)([^/?#]+)" + }, + "rtllulive": { + "name": "rtllulive", + "type": "free", + "domains": [ + "rtl.lu" + ], + "regexps": [ + "https?://www\\.rtl\\.lu/(?:tele|radio)/(live(?:-\\d+)?|lauschteren)" + ], + "regexp": "https?://www\\.rtl\\.lu/(?:tele|radio)/(live(?:-\\d+)?|lauschteren)" + }, + "rtlluradio": { + "name": "rtlluradio", + "type": "free", + "domains": [ + "rtl.lu" + ], + "regexps": [ + "https?://www\\.rtl\\.lu/radio/(?:[\\w-]+)/s/(\\d+)(\\.html)?" + ], + "regexp": "https?://www\\.rtl\\.lu/radio/(?:[\\w-]+)/s/(\\d+)(\\.html)?" + }, + "rtnews": { + "name": "rtnews", + "type": "free", + "domains": [ + "rt.com" + ], + "regexps": [ + "https?://(?:www\\.)?rt\\.com/[^/]+/(?:[^/]+/)?(\\d+)" + ], + "regexp": "https?://(?:www\\.)?rt\\.com/[^/]+/(?:[^/]+/)?(\\d+)" + }, + "rtp": { + "name": "rtp", + "type": "free", + "domains": [ + "rtp.pt" + ], + "regexps": [ + "https?://(?:www\\.)?rtp\\.pt/play/(?:[^/#?]+/)?p(\\d+)/(e\\d+)" + ], + "regexp": "https?://(?:www\\.)?rtp\\.pt/play/(?:[^/#?]+/)?p(\\d+)/(e\\d+)" + }, + "rtrfm": { + "name": "rtrfm", + "type": "free", + "domains": [ + "rtrfm.com.au" + ], + "regexps": [ + "https?://(?:www\\.)?rtrfm\\.com\\.au/(?:shows|show-episode)/([^/?\\#&]+)" + ], + "regexp": "https?://(?:www\\.)?rtrfm\\.com\\.au/(?:shows|show-episode)/([^/?\\#&]+)" + }, + "rts": { + "name": "rts", + "type": "free", + "domains": [ + "rts.ch", + "pages.rts.ch" + ], + "regexps": [ + "rts:(\\d+)|https?://(?:.+?\\.)?rts\\.ch/(?:[^/]+/){2,}([0-9]+)-(.+?)\\.html" + ], + "regexp": "rts:(\\d+)|https?://(?:.+?\\.)?rts\\.ch/(?:[^/]+/){2,}([0-9]+)-(.+?)\\.html" + }, + "rtvckaltura": { + "name": "rtvckaltura", + "type": "free", + "domains": [ + "media.rtvc.gov.co" + ], + "regexps": [ + "https?://media\\.rtvc\\.gov\\.co/kalturartvc/([\\w-]+)" + ], + "regexp": "https?://media\\.rtvc\\.gov\\.co/kalturartvc/([\\w-]+)" + }, + "rtvcplay": { + "name": "rtvcplay", + "type": "free", + "domains": [ + "rtvcplay.co" + ], + "regexps": [ + "https?://(?:www\\.)?rtvcplay\\.co/((?!embed)[^/]+)/(?:[^?#]+/)?([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?rtvcplay\\.co/((?!embed)[^/]+)/(?:[^?#]+/)?([\\w-]+)" + }, + "rtvcplayembed": { + "name": "rtvcplayembed", + "type": "free", + "domains": [ + "rtvcplay.co" + ], + "regexps": [ + "https?://(?:www\\.)?rtvcplay\\.co/embed/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?rtvcplay\\.co/embed/([\\w-]+)" + }, + "rtve.es": { + "name": "rtve.es", + "type": "free", + "domains": [ + "rtve.es" + ], + "regexps": [ + "https?://(?:www\\.)?rtve\\.es/(?:m/)?(?:(?:alacarta|play)/videos|filmoteca)/(?!directo)(?:[^/?#]+/){2}(\\d+)", + "https?://(?:www\\.)?rtve\\.es/infantil/serie/[^/?#]+/video/[^/?#]+/(\\d+)", + "https?://(?:www\\.)?rtve\\.es/(alacarta|play)/audios/(?:[^/?#]+/){2}(\\d+)", + "https?://(?:www\\.)?rtve\\.es/directo/([a-zA-Z0-9-]+)", + "https?://(?:www\\.)?rtve\\.es/play/videos/directo/[^/?#]+/([a-zA-Z0-9-]+)", + "https?://(?:www\\.)?rtve\\.es/play/videos/([\\w-]+)/?(?:[?#]|$)", + "https?://(?:www\\.)?rtve\\.es/television/[^/?#]+/[^/?#]+/(\\d+).shtml" + ], + "regexp": "(https?://(?:www\\.)?rtve\\.es/(?:m/)?(?:(?:alacarta|play)/videos|filmoteca)/(?!directo)(?:[^/?#]+/){2}(\\d+))|(https?://(?:www\\.)?rtve\\.es/infantil/serie/[^/?#]+/video/[^/?#]+/(\\d+))|(https?://(?:www\\.)?rtve\\.es/(alacarta|play)/audios/(?:[^/?#]+/){2}(\\d+))|(https?://(?:www\\.)?rtve\\.es/directo/([a-zA-Z0-9-]+))|(https?://(?:www\\.)?rtve\\.es/play/videos/directo/[^/?#]+/([a-zA-Z0-9-]+))|(https?://(?:www\\.)?rtve\\.es/play/videos/([\\w-]+)/?(?:[?#]|$))|(https?://(?:www\\.)?rtve\\.es/television/[^/?#]+/[^/?#]+/(\\d+).shtml)" + }, + "rtvslo.si": { + "name": "rtvslo.si", + "type": "free", + "domains": [ + "rtvslo.si", + "365.rtvslo.si", + "4d.rtvslo.si" + ], + "regexps": [ + "https?://(?:(?:365|4d)\\.rtvslo.si/arhiv/[^/?#&;]+|(?:www\\.)?rtvslo\\.si/rtv365/arhiv)/(\\d+)", + "https?://(?:365|4d)\\.rtvslo.si/oddaja/[^/?#&]+/(\\d+)" + ], + "regexp": "(https?://(?:(?:365|4d)\\.rtvslo.si/arhiv/[^/?#&;]+|(?:www\\.)?rtvslo\\.si/rtv365/arhiv)/(\\d+))|(https?://(?:365|4d)\\.rtvslo.si/oddaja/[^/?#&]+/(\\d+))" + }, + "rudovideo": { + "name": "rudovideo", + "type": "free", + "domains": [ + "rudo.video" + ], + "regexps": [ + "https?://rudo\\.video/(vod|podcast|live)/([^/?&#]+)" + ], + "regexp": "https?://rudo\\.video/(vod|podcast|live)/([^/?&#]+)" + }, + "rule34video": { + "name": "rule34video", + "type": "free", + "domains": [ + "rule34video.com" + ], + "regexps": [ + "https?://(?:www\\.)?rule34video\\.com/videos?/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?rule34video\\.com/videos?/(\\d+)" + }, + "rumble": { + "name": "rumble", + "type": "free", + "domains": [ + "rumble.com" + ], + "regexps": [ + "https?://(?:www\\.)?rumble\\.com/(v(?!ideos)[\\w.-]+)[^/]*$" + ], + "regexp": "https?://(?:www\\.)?rumble\\.com/(v(?!ideos)[\\w.-]+)[^/]*$" + }, + "rumblechannel": { + "name": "rumblechannel", + "type": "free", + "domains": [ + "rumble.com" + ], + "regexps": [ + "(https?://(?:www\\.)?rumble\\.com/(?:c|user)/([^&?#$/]+))" + ], + "regexp": "(https?://(?:www\\.)?rumble\\.com/(?:c|user)/([^&?#$/]+))" + }, + "rumbleembed": { + "name": "rumbleembed", + "type": "free", + "domains": [ + "rumble.com" + ], + "regexps": [ + "https?://(?:www\\.)?rumble\\.com/embed/(?:[0-9a-z]+\\.)?([0-9a-z]+)" + ], + "regexp": "https?://(?:www\\.)?rumble\\.com/embed/(?:[0-9a-z]+\\.)?([0-9a-z]+)" + }, + "ruptly": { + "name": "ruptly", + "type": "free", + "domains": [ + "ruptly.tv" + ], + "regexps": [ + "https?://(?:www\\.)?ruptly\\.tv/[a-z]{2}/videos/(\\d+-\\d+)" + ], + "regexp": "https?://(?:www\\.)?ruptly\\.tv/[a-z]{2}/videos/(\\d+-\\d+)" + }, + "rutube": { + "name": "rutube", + "type": "free", + "domains": [ + "rutube.ru" + ], + "regexps": [ + "https?://rutube\\.ru/(?:channel/(\\d+)|u/(\\w+))(?:/(videos|shorts|playlists))?", + "https?://rutube\\.ru/(?:video|play)/embed/([0-9]+)(?:[?#/]|$)", + "https?://rutube\\.ru/(?:(?:live/)?video(?:/private)?|(?:play/)?embed)/([\\da-z]{32})", + "https?://rutube\\.ru/metainfo/tv/(\\d+)", + "https?://rutube\\.ru/video/person/(\\d+)", + "https?://rutube\\.ru/plst/(\\d+)", + "https?://rutube\\.ru/tags/video/(\\d+)" + ], + "regexp": "(https?://rutube\\.ru/(?:channel/(\\d+)|u/(\\w+))(?:/(videos|shorts|playlists))?)|(https?://rutube\\.ru/(?:video|play)/embed/([0-9]+)(?:[?#/]|$))|(https?://rutube\\.ru/(?:(?:live/)?video(?:/private)?|(?:play/)?embed)/([\\da-z]{32}))|(https?://rutube\\.ru/metainfo/tv/(\\d+))|(https?://rutube\\.ru/video/person/(\\d+))|(https?://rutube\\.ru/plst/(\\d+))|(https?://rutube\\.ru/tags/video/(\\d+))" + }, + "ruutu": { + "name": "ruutu", + "type": "free", + "domains": [ + "ruutu.fi", + "supla.fi", + "static.nelonenmedia.fi" + ], + "regexps": [ + "https?://(?:(?:www\\.)?(?:ruutu|supla)\\.fi/(?:video|supla|audio)/|static\\.nelonenmedia\\.fi/player/misc/embed_player\\.html\\?.*?\\bnid=)(\\d+)" + ], + "regexp": "https?://(?:(?:www\\.)?(?:ruutu|supla)\\.fi/(?:video|supla|audio)/|static\\.nelonenmedia\\.fi/player/misc/embed_player\\.html\\?.*?\\bnid=)(\\d+)" + }, + "ruv": { + "name": "ruv", + "type": "free", + "domains": [ + "ruv.is" + ], + "regexps": [ + "https?://(?:www\\.)?ruv\\.is/(?:sarpurinn/[^/]+|node)/([^/]+(?:/\\d+)?)" + ], + "regexp": "https?://(?:www\\.)?ruv\\.is/(?:sarpurinn/[^/]+|node)/([^/]+(?:/\\d+)?)" + }, + "ruv.is": { + "name": "ruv.is", + "type": "free", + "domains": [ + "ruv.is" + ], + "regexps": [ + "https?://(?:www\\.)?ruv\\.is/(?:(?:sjon|ut)varp|(?:krakka|ung)ruv)/spila/.+/([0-9]+)/([a-z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?ruv\\.is/(?:(?:sjon|ut)varp|(?:krakka|ung)ruv)/spila/.+/([0-9]+)/([a-z0-9]+)" + }, + "s4c": { + "name": "s4c", + "type": "free", + "domains": [ + "s4c.cymru" + ], + "regexps": [ + "https?://(?:www\\.)?s4c\\.cymru/clic/programme/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?s4c\\.cymru/clic/programme/(\\d+)" + }, + "s4cseries": { + "name": "s4cseries", + "type": "free", + "domains": [ + "s4c.cymru" + ], + "regexps": [ + "https?://(?:www\\.)?s4c\\.cymru/clic/series/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?s4c\\.cymru/clic/series/(\\d+)" + }, + "safari": { + "name": "safari", + "type": "free", + "domains": [ + "safaribooksonline.com", + "techbus.safaribooksonline.com", + "learning.oreilly.com", + "oreilly.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:safaribooksonline|(?:learning\\.)?oreilly)\\.com/api/v1/book/([^/]+)/chapter(?:-content)?/([^/?#&]+)\\.html", + "https?://(?:(?:www\\.)?(?:safaribooksonline|(?:learning\\.)?oreilly)\\.com/(?:library/view/[^/]+|api/v1/book|videos/[^/]+)|techbus\\.safaribooksonline\\.com)/([^/]+)", + "https?://(?:www\\.)?(?:safaribooksonline|(?:learning\\.)?oreilly)\\.com/(?:library/view/[^/]+/([^/]+)/([^/?\\#&]+)\\.html|videos/[^/]+/[^/]+/([^-]+-[^/?\\#&]+))" + ], + "regexp": "(https?://(?:www\\.)?(?:safaribooksonline|(?:learning\\.)?oreilly)\\.com/api/v1/book/([^/]+)/chapter(?:-content)?/([^/?#&]+)\\.html)|(https?://(?:(?:www\\.)?(?:safaribooksonline|(?:learning\\.)?oreilly)\\.com/(?:library/view/[^/]+|api/v1/book|videos/[^/]+)|techbus\\.safaribooksonline\\.com)/([^/]+))|(https?://(?:www\\.)?(?:safaribooksonline|(?:learning\\.)?oreilly)\\.com/(?:library/view/[^/]+/([^/]+)/([^/?\\#&]+)\\.html|videos/[^/]+/[^/]+/([^-]+-[^/?\\#&]+)))" + }, + "saitosan": { + "name": "saitosan", + "type": "free", + "domains": [ + "saitosan.net" + ], + "regexps": [ + "https?://(?:www\\.)?saitosan\\.net/bview.html\\?id=([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?saitosan\\.net/bview.html\\?id=([0-9]+)" + }, + "saktv": { + "name": "saktv", + "type": "free", + "domains": [ + "saktv.ch" + ], + "regexps": [ + "https?://(?:www\\.)?saktv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?saktv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "saktvlive": { + "name": "saktvlive", + "type": "free", + "domains": [ + "saktv.ch" + ], + "regexps": [ + "https?://(?:www\\.)?saktv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?saktv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "saktvrecordings": { + "name": "saktvrecordings", + "type": "free", + "domains": [ + "saktv.ch" + ], + "regexps": [ + "https?://(?:www\\.)?saktv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?saktv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "salttv": { + "name": "salttv", + "type": "free", + "domains": [ + "tv.salt.ch" + ], + "regexps": [ + "https?://(?:www\\.)?tv\\.salt\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?tv\\.salt\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "salttvlive": { + "name": "salttvlive", + "type": "free", + "domains": [ + "tv.salt.ch" + ], + "regexps": [ + "https?://(?:www\\.)?tv\\.salt\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?tv\\.salt\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "salttvrecordings": { + "name": "salttvrecordings", + "type": "free", + "domains": [ + "tv.salt.ch" + ], + "regexps": [ + "https?://(?:www\\.)?tv\\.salt\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?tv\\.salt\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "samplefocus": { + "name": "samplefocus", + "type": "free", + "domains": [ + "samplefocus.com" + ], + "regexps": [ + "https?://(?:www\\.)?samplefocus\\.com/samples/([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?samplefocus\\.com/samples/([^/?&#]+)" + }, + "sangiin": { + "name": "sangiin", + "type": "free", + "domains": [ + "webtv.sangiin.go.jp" + ], + "regexps": [ + "https?://www\\.webtv\\.sangiin\\.go\\.jp/webtv/detail\\.php\\?sid=(\\d+)" + ], + "regexp": "https?://www\\.webtv\\.sangiin\\.go\\.jp/webtv/detail\\.php\\?sid=(\\d+)" + }, + "sapo": { + "name": "sapo", + "type": "free", + "domains": [ + "videos.sapo.pt", + "v2.videos.sapo.pt" + ], + "regexps": [ + "https?://(?:(?:v2|www)\\.)?videos\\.sapo\\.(?:pt|cv|ao|mz|tl)/([\\da-zA-Z]{20})" + ], + "regexp": "https?://(?:(?:v2|www)\\.)?videos\\.sapo\\.(?:pt|cv|ao|mz|tl)/([\\da-zA-Z]{20})" + }, + "sauceplus": { + "name": "sauceplus", + "type": "free", + "domains": [ + "sauceplus.com" + ], + "regexps": [ + "https?://(?:(?:www|beta)\\.)?sauceplus\\.com/post/(\\w+)" + ], + "regexp": "https?://(?:(?:www|beta)\\.)?sauceplus\\.com/post/(\\w+)" + }, + "sbs": { + "name": "sbs", + "type": "free", + "domains": [ + "sbs.com.au" + ], + "regexps": [ + "https?://(?:www\\.)?sbs\\.com\\.au/(?:ondemand(?:/video/(?:single/)?|/(?:movie|tv-program)/[^/]+/|/(?:tv|news)-series/(?:[^/]+/){3}|.*?\\bplay=|/watch/)|news/(?:embeds/)?video/)([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?sbs\\.com\\.au/(?:ondemand(?:/video/(?:single/)?|/(?:movie|tv-program)/[^/]+/|/(?:tv|news)-series/(?:[^/]+/){3}|.*?\\bplay=|/watch/)|news/(?:embeds/)?video/)([0-9]+)" + }, + "sbs.co.kr": { + "name": "sbs.co.kr", + "type": "free", + "domains": [ + "allvod.sbs.co.kr", + "programs.sbs.co.kr" + ], + "regexps": [ + "https?://allvod\\.sbs\\.co\\.kr/allvod/vod(?:Free)?ProgramDetail\\.do\\?(?:[^#]+&)?pgmId=(P?\\d+)", + "https?://allvod\\.sbs\\.co\\.kr/allvod/vod(?:Package)?EndPage\\.do\\?(?:[^#]+&)?mdaId=(\\d+)", + "https?://programs\\.sbs\\.co\\.kr/(?:enter|drama|culture|sports|plus|mtv|kth)/[a-z0-9]+/(?:vod|clip|movie)/\\d+/((?:OC)?\\d+)", + "https?://programs\\.sbs\\.co\\.kr/(?:enter|drama|culture|sports|plus|mtv)/([a-z0-9]+)/vods" + ], + "regexp": "(https?://allvod\\.sbs\\.co\\.kr/allvod/vod(?:Free)?ProgramDetail\\.do\\?(?:[^#]+&)?pgmId=(P?\\d+))|(https?://allvod\\.sbs\\.co\\.kr/allvod/vod(?:Package)?EndPage\\.do\\?(?:[^#]+&)?mdaId=(\\d+))|(https?://programs\\.sbs\\.co\\.kr/(?:enter|drama|culture|sports|plus|mtv|kth)/[a-z0-9]+/(?:vod|clip|movie)/\\d+/((?:OC)?\\d+))|(https?://programs\\.sbs\\.co\\.kr/(?:enter|drama|culture|sports|plus|mtv)/([a-z0-9]+)/vods)" + }, + "schooltv": { + "name": "schooltv", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?schooltv\\.nl/video/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?schooltv\\.nl/video/([^/?#&]+)" + }, + "sciencechannel": { + "name": "sciencechannel", + "type": "free", + "domains": [ + "sciencechannel.com" + ], + "regexps": [ + "https?://(?:www\\.)?sciencechannel\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?sciencechannel\\.com/video/([^/]+/[^/?#]+)" + }, + "screen.yahoo": { + "name": "screen.yahoo", + "type": "free", + "domains": [], + "regexps": [ + "yvsearch(|[1-9][0-9]*|all):([\\s\\S]+)" + ], + "regexp": "yvsearch(|[1-9][0-9]*|all):([\\s\\S]+)" + }, + "screen9": { + "name": "screen9", + "type": "free", + "domains": [ + "api.screen9.com", + "folkhogskolekanalen.screen9.tv", + "play.su.se" + ], + "regexps": [ + "https?://(?:\\w+\\.screen9\\.(?:tv|com)|play\\.su\\.se)/(?:embed|media)/([^?#/]+)" + ], + "regexp": "https?://(?:\\w+\\.screen9\\.(?:tv|com)|play\\.su\\.se)/(?:embed|media)/([^?#/]+)" + }, + "screencast": { + "name": "screencast", + "type": "free", + "domains": [ + "screencast.com" + ], + "regexps": [ + "https?://(?:www\\.)?screencast\\.com/t/([a-zA-Z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?screencast\\.com/t/([a-zA-Z0-9]+)" + }, + "screencastify": { + "name": "screencastify", + "type": "free", + "domains": [ + "watch.screencastify.com", + "app.screencastify.com" + ], + "regexps": [ + "https?://watch\\.screencastify\\.com/v/([^/?#]+)", + "https?://app\\.screencastify\\.com/v[23]/watch/([^/?#]+)" + ], + "regexp": "(https?://watch\\.screencastify\\.com/v/([^/?#]+))|(https?://app\\.screencastify\\.com/v[23]/watch/([^/?#]+))" + }, + "screencastomatic": { + "name": "screencastomatic", + "type": "free", + "domains": [ + "screencast-o-matic.com" + ], + "regexps": [ + "https?://screencast-o-matic\\.com/(?:(?:watch|player)/|embed\\?.*?\\bsc=)([0-9a-zA-Z]+)" + ], + "regexp": "https?://screencast-o-matic\\.com/(?:(?:watch|player)/|embed\\?.*?\\bsc=)([0-9a-zA-Z]+)" + }, + "screenrec": { + "name": "screenrec", + "type": "free", + "domains": [ + "screenrec.com" + ], + "regexps": [ + "https?://(?:www\\.)?screenrec\\.com/share/(\\w{10})" + ], + "regexp": "https?://(?:www\\.)?screenrec\\.com/share/(\\w{10})" + }, + "scrippsnetworks": { + "name": "scrippsnetworks", + "type": "free", + "domains": [ + "cookingchanneltv.com", + "diynetwork.com", + "foodnetwork.com", + "hgtv.com", + "travelchannel.com", + "discovery.com", + "watch.geniuskitchen.com" + ], + "regexps": [ + "https?://(?:www\\.)?(cookingchanneltv|discovery|(?:diy|food)network|hgtv|travelchannel)\\.com/videos/[0-9a-z-]+-(\\d+)", + "https?://watch\\.(geniuskitchen)\\.com/(?:player\\.[A-Z0-9]+\\.html\\#|show/(?:[^/]+/){2}|player/)(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?(cookingchanneltv|discovery|(?:diy|food)network|hgtv|travelchannel)\\.com/videos/[0-9a-z-]+-(\\d+))|(https?://watch\\.(geniuskitchen)\\.com/(?:player\\.[A-Z0-9]+\\.html\\#|show/(?:[^/]+/){2}|player/)(\\d+))" + }, + "scrolller": { + "name": "scrolller", + "type": "free", + "domains": [ + "scrolller.com" + ], + "regexps": [ + "https?://(?:www\\.)?scrolller\\.com/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?scrolller\\.com/([\\w-]+)" + }, + "scte": { + "name": "scte", + "type": "free", + "domains": [ + "learning.scte.org" + ], + "regexps": [ + "https?://learning\\.scte\\.org/mod/scorm/view\\.php?.*?\\bid=(\\d+)" + ], + "regexp": "https?://learning\\.scte\\.org/mod/scorm/view\\.php?.*?\\bid=(\\d+)" + }, + "sctecourse": { + "name": "sctecourse", + "type": "free", + "domains": [ + "learning.scte.org" + ], + "regexps": [ + "https?://learning\\.scte\\.org/(?:mod/sub)?course/view\\.php?.*?\\bid=(\\d+)" + ], + "regexp": "https?://learning\\.scte\\.org/(?:mod/sub)?course/view\\.php?.*?\\bid=(\\d+)" + }, + "sejm": { + "name": "sejm", + "type": "free", + "domains": [ + "sejm.gov.pl", + "sejm-embed.redcdn.pl" + ], + "regexps": [ + "https?://(?:www\\.)?sejm\\.gov\\.pl/[Ss]ejm(\\d+)\\.nsf/transmisje(?:_arch)?\\.xsp(?:\\?[^#]*)?#([\\dA-F]+)", + "https?://(?:www\\.)?sejm\\.gov\\.pl/[Ss]ejm(\\d+)\\.nsf/transmisje(?:_arch)?\\.xsp\\?(?:[^#]+&)?unid=([\\dA-F]+)", + "https?://sejm-embed\\.redcdn\\.pl/[Ss]ejm(\\d+)\\.nsf/VideoFrame\\.xsp/([\\dA-F]+)" + ], + "regexp": "(https?://(?:www\\.)?sejm\\.gov\\.pl/[Ss]ejm(\\d+)\\.nsf/transmisje(?:_arch)?\\.xsp(?:\\?[^#]*)?#([\\dA-F]+))|(https?://(?:www\\.)?sejm\\.gov\\.pl/[Ss]ejm(\\d+)\\.nsf/transmisje(?:_arch)?\\.xsp\\?(?:[^#]+&)?unid=([\\dA-F]+))|(https?://sejm-embed\\.redcdn\\.pl/[Ss]ejm(\\d+)\\.nsf/VideoFrame\\.xsp/([\\dA-F]+))" + }, + "sen": { + "name": "sen", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?sen\\.com/video/([0-9a-f-]+)" + ], + "regexp": "https?://(?:www\\.)?sen\\.com/video/([0-9a-f-]+)" + }, + "senalcolombialive": { + "name": "senalcolombialive", + "type": "free", + "domains": [ + "senalcolombia.tv" + ], + "regexps": [ + "https?://(?:www\\.)?senalcolombia\\.tv/(senal-en-vivo)" + ], + "regexp": "https?://(?:www\\.)?senalcolombia\\.tv/(senal-en-vivo)" + }, + "senate.gov": { + "name": "senate.gov", + "type": "free", + "domains": [ + "help.senate.gov", + "appropriations.senate.gov", + "banking.senate.gov", + "agriculture.senate.gov", + "aging.senate.gov", + "budget.senate.gov", + "commerce.senate.gov", + "energy.senate.gov", + "epw.senate.gov", + "foreign.senate.gov", + "intelligence.senate.gov", + "inaugural.senate.gov", + "rules.senate.gov", + "sbc.senate.gov", + "veterans.senate.gov", + "senate.gov" + ], + "regexps": [ + "https?://(?:www\\.)?(?:agriculture|aging|appropriations|armed\\-services|banking|budget|commerce|energy|epw|finance|foreign|help|intelligence|inaugural|judiciary|rules|sbc|veterans)\\.senate\\.gov", + "https?://(?:www\\.)?senate\\.gov/isvp/?\\?(.+)" + ], + "regexp": "(https?://(?:www\\.)?(?:agriculture|aging|appropriations|armed\\-services|banking|budget|commerce|energy|epw|finance|foreign|help|intelligence|inaugural|judiciary|rules|sbc|veterans)\\.senate\\.gov)|(https?://(?:www\\.)?senate\\.gov/isvp/?\\?(.+))" + }, + "sendtonews": { + "name": "sendtonews", + "type": "free", + "domains": [], + "regexps": [ + "https?://embed\\.sendtonews\\.com/player2/embedplayer\\.php\\?.*\\bSC=([0-9A-Za-z-]+)" + ], + "regexp": "https?://embed\\.sendtonews\\.com/player2/embedplayer\\.php\\?.*\\bSC=([0-9A-Za-z-]+)" + }, + "servus": { + "name": "servus", + "type": "free", + "domains": [ + "servustv.com", + "servus.com", + "pm-wissen.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:servus\\.com/(?:(?:at|de)/p/[^/]+|tv/videos)|(?:servustv|pm-wissen)\\.com/(?:[^/]+/)?v(?:ideos)?)/([aA]{2}-?\\w+|\\d+-\\d+)" + ], + "regexp": "https?://(?:www\\.)?(?:servus\\.com/(?:(?:at|de)/p/[^/]+|tv/videos)|(?:servustv|pm-wissen)\\.com/(?:[^/]+/)?v(?:ideos)?)/([aA]{2}-?\\w+|\\d+-\\d+)" + }, + "sexu": { + "name": "sexu", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?sexu\\.com/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?sexu\\.com/(\\d+)" + }, + "seznamzpravy": { + "name": "seznamzpravy", + "type": "free", + "domains": [ + "seznamzpravy.cz" + ], + "regexps": [ + "https?://(?:www\\.)?seznamzpravy\\.cz/iframe/player\\?.*\\bsrc=" + ], + "regexp": "https?://(?:www\\.)?seznamzpravy\\.cz/iframe/player\\?.*\\bsrc=" + }, + "seznamzpravyarticle": { + "name": "seznamzpravyarticle", + "type": "free", + "domains": [ + "seznamzpravy.cz", + "seznam.cz" + ], + "regexps": [ + "https?://(?:www\\.)?(?:seznam\\.cz/zpravy|seznamzpravy\\.cz)/clanek/(?:[^/?#&]+)-(\\d+)" + ], + "regexp": "https?://(?:www\\.)?(?:seznam\\.cz/zpravy|seznamzpravy\\.cz)/clanek/(?:[^/?#&]+)-(\\d+)" + }, + "shahid": { + "name": "shahid", + "type": "free", + "domains": [ + "shahid.mbc.net" + ], + "regexps": [ + "https?://shahid\\.mbc\\.net/[a-z]{2}/(?:serie|show|movie)s/[^/]+/(episode|clip|movie)-(\\d+)" + ], + "regexp": "https?://shahid\\.mbc\\.net/[a-z]{2}/(?:serie|show|movie)s/[^/]+/(episode|clip|movie)-(\\d+)" + }, + "shahidshow": { + "name": "shahidshow", + "type": "free", + "domains": [ + "shahid.mbc.net" + ], + "regexps": [ + "https?://shahid\\.mbc\\.net/[a-z]{2}/(?:show|serie)s/[^/]+/(?:show|series)-(\\d+)" + ], + "regexp": "https?://shahid\\.mbc\\.net/[a-z]{2}/(?:show|serie)s/[^/]+/(?:show|series)-(\\d+)" + }, + "sharepoint": { + "name": "sharepoint", + "type": "free", + "domains": [ + "lut-my.sharepoint.com", + "greaternyace.sharepoint.com", + "izoobasisschool.sharepoint.com", + "uskudaredutr-my.sharepoint.com", + "epam-my.sharepoint.com", + "microsoft.sharepoint.com" + ], + "regexps": [ + "https?://[\\w-]+\\.sharepoint\\.com/:v:/[a-z]/(?:[^/?#]+/)*([^/?#]{46})/?(?:$|[?#])", + "https?://[\\w-]+\\.sharepoint\\.com/(?!:v:)(?:[^/?#]+/)*stream\\.aspx\\?(?:[^#]+&)?id=([^&#]+)" + ], + "regexp": "(https?://[\\w-]+\\.sharepoint\\.com/:v:/[a-z]/(?:[^/?#]+/)*([^/?#]{46})/?(?:$|[?#]))|(https?://[\\w-]+\\.sharepoint\\.com/(?!:v:)(?:[^/?#]+/)*stream\\.aspx\\?(?:[^#]+&)?id=([^&#]+))" + }, + "shemaroome": { + "name": "shemaroome", + "type": "free", + "domains": [ + "shemaroome.com" + ], + "regexps": [ + "https?://(?:www\\.)?shemaroome\\.com/(?:movies|shows)/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?shemaroome\\.com/(?:movies|shows)/([^?#]+)" + }, + "shiey": { + "name": "shiey", + "type": "free", + "domains": [ + "shiey.com" + ], + "regexps": [ + "https?://(?:www\\.)?shiey\\.com/videos/v/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?shiey\\.com/videos/v/([^/?#]+)" + }, + "showroomlive": { + "name": "showroomlive", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?showroom-live\\.com/(?!onlive|timetable|event|campaign|news|ranking|room)([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?showroom-live\\.com/(?!onlive|timetable|event|campaign|news|ranking|room)([^/?#&]+)" + }, + "shugiinitvlive": { + "name": "shugiinitvlive", + "type": "free", + "domains": [ + "shugiintv.go.jp" + ], + "regexps": [ + "https?://(?:www\\.)?shugiintv\\.go\\.jp/(?:jp|en)(?:/index\\.php)?$" + ], + "regexp": "https?://(?:www\\.)?shugiintv\\.go\\.jp/(?:jp|en)(?:/index\\.php)?$" + }, + "shugiinitvliveroom": { + "name": "shugiinitvliveroom", + "type": "free", + "domains": [ + "shugiintv.go.jp" + ], + "regexps": [ + "https?://(?:www\\.)?shugiintv\\.go\\.jp/(?:jp|en)/index\\.php\\?room_id=(room\\d+)" + ], + "regexp": "https?://(?:www\\.)?shugiintv\\.go\\.jp/(?:jp|en)/index\\.php\\?room_id=(room\\d+)" + }, + "shugiinitvvod": { + "name": "shugiinitvvod", + "type": "free", + "domains": [ + "shugiintv.go.jp" + ], + "regexps": [ + "https?://(?:www\\.)?shugiintv\\.go\\.jp/(?:jp|en)/index\\.php\\?ex=VL(?:\\&[^=]+=[^&]*)*\\&deli_id=(\\d+)" + ], + "regexp": "https?://(?:www\\.)?shugiintv\\.go\\.jp/(?:jp|en)/index\\.php\\?ex=VL(?:\\&[^=]+=[^&]*)*\\&deli_id=(\\d+)" + }, + "simplecast": { + "name": "simplecast", + "type": "free", + "domains": [ + "the-re-bind-io-podcast.simplecast.com", + "api.simplecast.com", + "player.simplecast.com" + ], + "regexps": [ + "https?://(?!api\\.)[^/]+\\.simplecast\\.com/episodes/([^/?&#]+)", + "https?://(?:api\\.simplecast\\.com/episodes|player\\.simplecast\\.com)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})", + "https?://(?!(?:api|cdn|embed|feeds|player)\\.)([^/]+)\\.simplecast\\.com(?!/episodes/[^/?&#]+)" + ], + "regexp": "(https?://(?!api\\.)[^/]+\\.simplecast\\.com/episodes/([^/?&#]+))|(https?://(?:api\\.simplecast\\.com/episodes|player\\.simplecast\\.com)/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))|(https?://(?!(?:api|cdn|embed|feeds|player)\\.)([^/]+)\\.simplecast\\.com(?!/episodes/[^/?&#]+))" + }, + "sina": { + "name": "sina", + "type": "free", + "domains": [ + "video.sina.com.cn" + ], + "regexps": [ + "https?://(?:[^/?#]+\\.)?video\\.sina\\.com\\.cn/(?:(?:view/|.*\\#)(\\d+)|.+?/([^/?#]+)(?:\\.s?html)|api/sinawebApi/outplay.php/(.+?)\\.swf)" + ], + "regexp": "https?://(?:[^/?#]+\\.)?video\\.sina\\.com\\.cn/(?:(?:view/|.*\\#)(\\d+)|.+?/([^/?#]+)(?:\\.s?html)|api/sinawebApi/outplay.php/(.+?)\\.swf)" + }, + "skeb": { + "name": "skeb", + "type": "free", + "domains": [ + "skeb.jp" + ], + "regexps": [ + "https?://skeb\\.jp/@([^/?#]+)/works/(\\d+)" + ], + "regexp": "https?://skeb\\.jp/@([^/?#]+)/works/(\\d+)" + }, + "sky": { + "name": "sky", + "type": "free", + "domains": [ + "skysports.com" + ], + "regexps": [ + "https?://news\\.sky\\.com/video/[0-9a-z-]+-([0-9]+)", + "https?://news\\.sky\\.com/story/[0-9a-z-]+-([0-9]+)", + "https?://(?:www\\.)?skysports\\.com/watch/video/([^/]+/)*([0-9]+)", + "https?://(?:www\\.)?skysports\\.com/([^/]+/)*news/\\d+/(\\d+)" + ], + "regexp": "(https?://news\\.sky\\.com/video/[0-9a-z-]+-([0-9]+))|(https?://news\\.sky\\.com/story/[0-9a-z-]+-([0-9]+))|(https?://(?:www\\.)?skysports\\.com/watch/video/([^/]+/)*([0-9]+))|(https?://(?:www\\.)?skysports\\.com/([^/]+/)*news/\\d+/(\\d+))" + }, + "sky.it": { + "name": "sky.it", + "type": "free", + "domains": [ + "sport.sky.it", + "tg24.sky.it" + ], + "regexps": [ + "https?://(?:sport|tg24)\\.sky\\.it(?:/[^/]+)*/\\d{4}/\\d{2}/\\d{2}/([^/?&#]+)" + ], + "regexp": "https?://(?:sport|tg24)\\.sky\\.it(?:/[^/]+)*/\\d{4}/\\d{2}/\\d{2}/([^/?&#]+)" + }, + "skylinewebcams": { + "name": "skylinewebcams", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?skylinewebcams\\.com/[^/]+/webcam/(?:[^/]+/)+([^/]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?skylinewebcams\\.com/[^/]+/webcam/(?:[^/]+/)+([^/]+)\\.html" + }, + "skynewsarabia": { + "name": "skynewsarabia", + "type": "free", + "domains": [ + "skynewsarabia.com" + ], + "regexps": [ + "https?://(?:www\\.)?skynewsarabia\\.com/web/article/([0-9]+)", + "https?://(?:www\\.)?skynewsarabia\\.com/web/video/([0-9]+)" + ], + "regexp": "(https?://(?:www\\.)?skynewsarabia\\.com/web/article/([0-9]+))|(https?://(?:www\\.)?skynewsarabia\\.com/web/video/([0-9]+))" + }, + "skynewsau": { + "name": "skynewsau", + "type": "free", + "domains": [ + "skynews.com.au" + ], + "regexps": [ + "https?://(?:www\\.)?skynews\\.com\\.au/[^/]+/[^/]+/[^/]+/video/([a-z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?skynews\\.com\\.au/[^/]+/[^/]+/[^/]+/video/([a-z0-9]+)" + }, + "slideshare": { + "name": "slideshare", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?slideshare\\.net/[^/]+?/(.+?)($|\\?)" + ], + "regexp": "https?://(?:www\\.)?slideshare\\.net/[^/]+?/(.+?)($|\\?)" + }, + "slideslive": { + "name": "slideslive", + "type": "free", + "domains": [ + "slideslive.com" + ], + "regexps": [ + "https?://slideslive\\.com/(?:embed/(?:presentation/)?)?([0-9]+)" + ], + "regexp": "https?://slideslive\\.com/(?:embed/(?:presentation/)?)?([0-9]+)" + }, + "slutload": { + "name": "slutload", + "type": "free", + "domains": [ + "slutload.com", + "mobile.slutload.com" + ], + "regexps": [ + "https?://(?:\\w+\\.)?slutload\\.com/(?:video/[^/]+|embed_player|watch)/([^/]+)" + ], + "regexp": "https?://(?:\\w+\\.)?slutload\\.com/(?:video/[^/]+|embed_player|watch)/([^/]+)" + }, + "smotrim": { + "name": "smotrim", + "type": "free", + "domains": [ + "smotrim.ru", + "player.smotrim.ru", + "testplayer.vgtrk.com" + ], + "regexps": [ + "https?://(?:(?:player|www)\\.)?smotrim\\.ru(?:/iframe)?/audio(?:/id)?/(\\d+)", + "(?:https?:)?//(?:(?:player|www)\\.)?smotrim\\.ru(?:/iframe)?/video(?:/id)?/(\\d+)", + "(?x:\n (?:https?:)?//\n (?:(?:(?:test)?player|www)\\.)?\n (?:\n smotrim\\.ru|\n vgtrk\\.com\n )\n (?:/iframe)?/\n (\n channel|\n (?:audio-)?live\n )\n (?:/u?id)?/([\\da-f-]+)\n )", + "https?://smotrim\\.ru/(brand|podcast)/(\\d+)/?([\\w-]+)?" + ], + "regexp": "(https?://(?:(?:player|www)\\.)?smotrim\\.ru(?:/iframe)?/audio(?:/id)?/(\\d+))|((?:https?:)?//(?:(?:player|www)\\.)?smotrim\\.ru(?:/iframe)?/video(?:/id)?/(\\d+))|((?x:\n (?:https?:)?//\n (?:(?:(?:test)?player|www)\\.)?\n (?:\n smotrim\\.ru|\n vgtrk\\.com\n )\n (?:/iframe)?/\n (\n channel|\n (?:audio-)?live\n )\n (?:/u?id)?/([\\da-f-]+)\n ))|(https?://smotrim\\.ru/(brand|podcast)/(\\d+)/?([\\w-]+)?)" + }, + "snapchatspotlight": { + "name": "snapchatspotlight", + "type": "free", + "domains": [ + "snapchat.com" + ], + "regexps": [ + "https?://(?:www\\.)?snapchat\\.com/spotlight/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?snapchat\\.com/spotlight/(\\w+)" + }, + "snotr": { + "name": "snotr", + "type": "free", + "domains": [ + "snotr.com" + ], + "regexps": [ + "http?://(?:www\\.)?snotr\\.com/video/(\\d+)/([\\w]+)" + ], + "regexp": "http?://(?:www\\.)?snotr\\.com/video/(\\d+)/([\\w]+)" + }, + "softwhiteunderbelly": { + "name": "softwhiteunderbelly", + "type": "free", + "domains": [ + "softwhiteunderbelly.com" + ], + "regexps": [ + "https?://(?:www\\.)?softwhiteunderbelly\\.com/videos/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?softwhiteunderbelly\\.com/videos/([\\w-]+)" + }, + "sohu": { + "name": "sohu", + "type": "free", + "domains": [ + "tv.sohu.com", + "my.tv.sohu.com" + ], + "regexps": [ + "https?://(my\\.)?tv\\.sohu\\.com/.+?/(|n)(\\d+)\\.shtml.*?" + ], + "regexp": "https?://(my\\.)?tv\\.sohu\\.com/.+?/(|n)(\\d+)\\.shtml.*?" + }, + "sohuv": { + "name": "sohuv", + "type": "free", + "domains": [ + "tv.sohu.com" + ], + "regexps": [ + "https?://tv\\.sohu\\.com/v/([\\w=-]+)\\.html(?:$|[#?])" + ], + "regexp": "https?://tv\\.sohu\\.com/v/([\\w=-]+)\\.html(?:$|[#?])" + }, + "sonyliv": { + "name": "sonyliv", + "type": "free", + "domains": [ + "sonyliv.com" + ], + "regexps": [ + "(?:sonyliv:|https?://(?:www\\.)?sonyliv\\.com/(?:s(?:how|port)s/[^/]+|movies|clip|trailer|music-videos)/[^/?#&]+-)(\\d+)" + ], + "regexp": "(?:sonyliv:|https?://(?:www\\.)?sonyliv\\.com/(?:s(?:how|port)s/[^/]+|movies|clip|trailer|music-videos)/[^/?#&]+-)(\\d+)" + }, + "sonylivseries": { + "name": "sonylivseries", + "type": "free", + "domains": [ + "sonyliv.com" + ], + "regexps": [ + "https?://(?:www\\.)?sonyliv\\.com/shows/[^/?#&]+-(\\d{10})/?(?:$|[?#])" + ], + "regexp": "https?://(?:www\\.)?sonyliv\\.com/shows/[^/?#&]+-(\\d{10})/?(?:$|[?#])" + }, + "soop": { + "name": "soop", + "type": "free", + "domains": [ + "vod.sooplive.co.kr", + "play.sooplive.co.kr", + "ch.sooplive.co.kr" + ], + "regexps": [ + "https?://vod\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/player/(\\d+)/catchstory", + "https?://vod\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/(?:PLAYER/STATION|player)/(\\d+)/?(?:$|[?#&])", + "https?://play\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/([^/?#]+)(?:/(\\d+))?", + "https?://ch\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/([^/?#]+)/vods/?([^/?#]+)?" + ], + "regexp": "(https?://vod\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/player/(\\d+)/catchstory)|(https?://vod\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/(?:PLAYER/STATION|player)/(\\d+)/?(?:$|[?#&]))|(https?://play\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/([^/?#]+)(?:/(\\d+))?)|(https?://ch\\.(?:sooplive\\.co\\.kr|afreecatv\\.com)/([^/?#]+)/vods/?([^/?#]+)?)" + }, + "soundcloudembed": { + "name": "soundcloudembed", + "type": "free", + "domains": [ + "w.soundcloud.com" + ], + "regexps": [ + "https?://(?:w|player|p)\\.soundcloud\\.com/player/?.*?\\burl=(.+)" + ], + "regexp": "https?://(?:w|player|p)\\.soundcloud\\.com/player/?.*?\\burl=(.+)" + }, + "soundgasm": { + "name": "soundgasm", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?soundgasm\\.net/u/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)", + "https?://(?:www\\.)?soundgasm\\.net/u/([^/]+)/?(?:\\#.*)?$" + ], + "regexp": "(https?://(?:www\\.)?soundgasm\\.net/u/([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+))|(https?://(?:www\\.)?soundgasm\\.net/u/([^/]+)/?(?:\\#.*)?$)" + }, + "southpark.cc.com": { + "name": "southpark.cc.com", + "type": "free", + "domains": [ + "southpark.cc.com", + "southparkstudios.com" + ], + "regexps": [ + "https?://(?:www\\.)?southpark\\.cc\\.com/es/episodios/([^?#]+)", + "https?://(?:www\\.)?southpark(?:\\.cc|studios)\\.com/(?:video-clips|episodes|collections)/([^?#]+)" + ], + "regexp": "(https?://(?:www\\.)?southpark\\.cc\\.com/es/episodios/([^?#]+))|(https?://(?:www\\.)?southpark(?:\\.cc|studios)\\.com/(?:video-clips|episodes|collections)/([^?#]+))" + }, + "southpark.de": { + "name": "southpark.de", + "type": "free", + "domains": [ + "southpark.de" + ], + "regexps": [ + "https?://(?:www\\.)?southpark\\.de/(?:en/)?(?:videoclip|collections|episodes|video-clips|folgen)/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?southpark\\.de/(?:en/)?(?:videoclip|collections|episodes|video-clips|folgen)/([^?#]+)" + }, + "southpark.lat": { + "name": "southpark.lat", + "type": "free", + "domains": [ + "southpark.lat" + ], + "regexps": [ + "https?://(?:www\\.)?southpark\\.lat/(?:en/)?(?:video-?clips?|collections|episod(?:e|io)s)/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?southpark\\.lat/(?:en/)?(?:video-?clips?|collections|episod(?:e|io)s)/([^?#]+)" + }, + "southparkstudios.co.uk": { + "name": "southparkstudios.co.uk", + "type": "free", + "domains": [ + "southparkstudios.co.uk" + ], + "regexps": [ + "https?://(?:www\\.)?southparkstudios\\.co\\.uk/(?:video-clips|collections|episodes)/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?southparkstudios\\.co\\.uk/(?:video-clips|collections|episodes)/([^?#]+)" + }, + "southparkstudios.com.br": { + "name": "southparkstudios.com.br", + "type": "free", + "domains": [ + "southparkstudios.com.br" + ], + "regexps": [ + "https?://(?:www\\.)?southparkstudios\\.com\\.br/(?:en/)?(?:video-clips|episodios|collections|episodes)/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?southparkstudios\\.com\\.br/(?:en/)?(?:video-clips|episodios|collections|episodes)/([^?#]+)" + }, + "southparkstudios.nu": { + "name": "southparkstudios.nu", + "type": "free", + "domains": [ + "southparkstudios.nu" + ], + "regexps": [ + "https?://(?:www\\.)?southparkstudios\\.nu/(?:video-clips|episodes|collections)/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?southparkstudios\\.nu/(?:video-clips|episodes|collections)/([^?#]+)" + }, + "sovietscloset": { + "name": "sovietscloset", + "type": "free", + "domains": [ + "sovietscloset.com" + ], + "regexps": [ + "https?://(?:www\\.)?sovietscloset\\.com/video/([0-9]+)/?" + ], + "regexp": "https?://(?:www\\.)?sovietscloset\\.com/video/([0-9]+)/?" + }, + "sovietsclosetplaylist": { + "name": "sovietsclosetplaylist", + "type": "free", + "domains": [ + "sovietscloset.com" + ], + "regexps": [ + "https?://(?:www\\.)?sovietscloset\\.com/(?!video)([^#?]+)" + ], + "regexp": "https?://(?:www\\.)?sovietscloset\\.com/(?!video)([^#?]+)" + }, + "spankbang": { + "name": "spankbang", + "type": "free", + "domains": [ + "spankbang.com", + "m.spankbang.com" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?spankbang\\.com/(?:([\\da-z]+)/(?:video|play|embed)\\b|[\\da-z]+-([\\da-z]+)/playlist/[^/?#&]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?spankbang\\.com/(?:([\\da-z]+)/(?:video|play|embed)\\b|[\\da-z]+-([\\da-z]+)/playlist/[^/?#&]+)" + }, + "spankbangplaylist": { + "name": "spankbangplaylist", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:[^/]+\\.)?spankbang\\.com/([\\da-z]+)/playlist/([^/]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?spankbang\\.com/([\\da-z]+)/playlist/([^/]+)" + }, + "spiegel": { + "name": "spiegel", + "type": "free", + "domains": [ + "spiegel.de" + ], + "regexps": [ + "https?://(?:www\\.)?(?:spiegel|manager-magazin)\\.de(?:/[^/]+)+/[^/]*-([0-9]+|[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-embed|-iframe)?(?:\\.html)?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?(?:spiegel|manager-magazin)\\.de(?:/[^/]+)+/[^/]*-([0-9]+|[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})(?:-embed|-iframe)?(?:\\.html)?(?:$|[#?])" + }, + "sport5": { + "name": "sport5", + "type": "free", + "domains": [ + "vod.sport5.co.il", + "sport5.co.il" + ], + "regexps": [ + "https?://(?:www|vod)?\\.sport5\\.co\\.il/.*\\b(?:Vi|docID)=(\\d+)" + ], + "regexp": "https?://(?:www|vod)?\\.sport5\\.co\\.il/.*\\b(?:Vi|docID)=(\\d+)" + }, + "sportbox": { + "name": "sportbox", + "type": "free", + "domains": [ + "news.sportbox.ru", + "matchtv.ru" + ], + "regexps": [ + "https?://(?:news\\.sportbox|matchtv)\\.ru/vdl/player(?:/[^/]+/|\\?.*?\\bn?id=)(\\d+)" + ], + "regexp": "https?://(?:news\\.sportbox|matchtv)\\.ru/vdl/player(?:/[^/]+/|\\?.*?\\bn?id=)(\\d+)" + }, + "sporteurope": { + "name": "sporteurope", + "type": "free", + "domains": [ + "sporteurope.tv", + "player.sporteurope.tv" + ], + "regexps": [ + "https?://(?:player\\.)?sporteurope\\.tv/((?:[^/?#]+/)?[^?#/&]+)" + ], + "regexp": "https?://(?:player\\.)?sporteurope\\.tv/((?:[^/?#]+/)?[^?#/&]+)" + }, + "spreaker": { + "name": "spreaker", + "type": "free", + "domains": [ + "api.spreaker.com", + "spreaker.com" + ], + "regexps": [ + "https?://api\\.spreaker\\.com/(?:(?:download/)?episode|v2/episodes)/(\\d+)", + "https?://(?:www\\.)?spreaker\\.com/episode/[^#?/]*?(\\d+)/?(?:[?#]|$)" + ], + "regexp": "(https?://api\\.spreaker\\.com/(?:(?:download/)?episode|v2/episodes)/(\\d+))|(https?://(?:www\\.)?spreaker\\.com/episode/[^#?/]*?(\\d+)/?(?:[?#]|$))" + }, + "spreakershow": { + "name": "spreakershow", + "type": "free", + "domains": [ + "api.spreaker.com", + "spreaker.com" + ], + "regexps": [ + "https?://api\\.spreaker\\.com/show/(\\d+)", + "https?://(?:www\\.)?spreaker\\.com/podcast/[\\w-]+--([\\d]+)", + "https?://(?:www\\.)?spreaker\\.com/show/(\\d+)/episodes/feed" + ], + "regexp": "(https?://api\\.spreaker\\.com/show/(\\d+))|(https?://(?:www\\.)?spreaker\\.com/podcast/[\\w-]+--([\\d]+))|(https?://(?:www\\.)?spreaker\\.com/show/(\\d+)/episodes/feed)" + }, + "springboardplatform": { + "name": "springboardplatform", + "type": "free", + "domains": [ + "cms.springboardplatform.com" + ], + "regexps": [ + "https?://cms\\.springboardplatform\\.com/(?:(?:previews|embed_iframe)/(\\d+)/video/(\\d+)|xml_feeds_advanced/index/(\\d+)/rss3/(\\d+))" + ], + "regexp": "https?://cms\\.springboardplatform\\.com/(?:(?:previews|embed_iframe)/(\\d+)/video/(\\d+)|xml_feeds_advanced/index/(\\d+)/rss3/(\\d+))" + }, + "sproutvideo": { + "name": "sproutvideo", + "type": "free", + "domains": [ + "videos.sproutvideo.com" + ], + "regexps": [ + "https?://videos\\.sproutvideo\\.com/embed/([\\da-f]+)/[\\da-f]+" + ], + "regexp": "https?://videos\\.sproutvideo\\.com/embed/([\\da-f]+)/[\\da-f]+" + }, + "sr": { + "name": "sr", + "type": "free", + "domains": [ + "sr-mediathek.de" + ], + "regexps": [ + "https?://(?:www\\.)?sr-mediathek\\.de/index\\.php\\?.*?&id=(\\d+)" + ], + "regexp": "https?://(?:www\\.)?sr-mediathek\\.de/index\\.php\\?.*?&id=(\\d+)" + }, + "srgssr": { + "name": "srgssr", + "type": "free", + "domains": [], + "regexps": [ + "(?:https?://tp\\.srgssr\\.ch/p(?:/[^/]+)+\\?urn=urn|srgssr):(srf|rts|rsi|rtr|swi):(?:[^:]+:)?(video|audio):([0-9a-f\\-]{36}|\\d+)" + ], + "regexp": "(?:https?://tp\\.srgssr\\.ch/p(?:/[^/]+)+\\?urn=urn|srgssr):(srf|rts|rsi|rtr|swi):(?:[^:]+:)?(video|audio):([0-9a-f\\-]{36}|\\d+)" + }, + "srgssrplay": { + "name": "srgssrplay", + "type": "free", + "domains": [ + "srf.ch", + "rtr.ch", + "rts.ch", + "play.swissinfo.ch" + ], + "regexps": [ + "https?://(?:(?:www|play)\\.)?(srf|rts|rsi|rtr|swissinfo)\\.ch/play/(?:tv|radio)/(?:[^/]+/(video|audio)/[^?]+|popup(video|audio)player)\\?.*?\\b(?:id=|urn=urn:[^:]+:video:)([0-9a-f\\-]{36}|\\d+)" + ], + "regexp": "https?://(?:(?:www|play)\\.)?(srf|rts|rsi|rtr|swissinfo)\\.ch/play/(?:tv|radio)/(?:[^/]+/(video|audio)/[^?]+|popup(video|audio)player)\\?.*?\\b(?:id=|urn=urn:[^:]+:video:)([0-9a-f\\-]{36}|\\d+)" + }, + "stacommulive": { + "name": "stacommulive", + "type": "free", + "domains": [ + "stacommu.jp" + ], + "regexps": [ + "https?://www\\.stacommu\\.jp/(?:en/)?live/([\\da-zA-Z]+)" + ], + "regexp": "https?://www\\.stacommu\\.jp/(?:en/)?live/([\\da-zA-Z]+)" + }, + "stacommuvod": { + "name": "stacommuvod", + "type": "free", + "domains": [ + "stacommu.jp" + ], + "regexps": [ + "https?://www\\.stacommu\\.jp/(?:en/)?videos/episodes/([\\da-zA-Z]+)" + ], + "regexp": "https?://www\\.stacommu\\.jp/(?:en/)?videos/episodes/([\\da-zA-Z]+)" + }, + "stageplusvodconcert": { + "name": "stageplusvodconcert", + "type": "free", + "domains": [ + "stage-plus.com" + ], + "regexps": [ + "https?://(?:www\\.)?stage-plus\\.com/video/(vod_concert_\\w+)" + ], + "regexp": "https?://(?:www\\.)?stage-plus\\.com/video/(vod_concert_\\w+)" + }, + "stanfordoc": { + "name": "stanfordoc", + "type": "free", + "domains": [], + "regexps": [ + "https?://openclassroom\\.stanford\\.edu(/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\\.php([?]course=([^&]+)(&video=([^&]+))?(&.*)?)?))$" + ], + "regexp": "https?://openclassroom\\.stanford\\.edu(/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\\.php([?]course=([^&]+)(&video=([^&]+))?(&.*)?)?))$" + }, + "startrek": { + "name": "startrek", + "type": "free", + "domains": [ + "startrek.com" + ], + "regexps": [ + "https?://(?:www\\.)?startrek\\.com(?:/en-(?:ca|un))?/videos/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?startrek\\.com(?:/en-(?:ca|un))?/videos/([^/?#]+)" + }, + "startv": { + "name": "startv", + "type": "free", + "domains": [ + "startv.com.tr" + ], + "regexps": [ + "https?://(?:www\\.)?startv\\.com\\.tr/(?:(?:dizi|program)/(?:[^/?#&]+)/(?:bolumler|fragmanlar|ekstralar)|video/arsiv/(?:dizi|program)/(?:[^/?#&]+))/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?startv\\.com\\.tr/(?:(?:dizi|program)/(?:[^/?#&]+)/(?:bolumler|fragmanlar|ekstralar)|video/arsiv/(?:dizi|program)/(?:[^/?#&]+))/([^/?#&]+)" + }, + "steam": { + "name": "steam", + "type": "free", + "domains": [ + "store.steampowered.com" + ], + "regexps": [ + "https?://store\\.steampowered\\.com(?:/agecheck)?/app/(\\d+)/?(?:[^?/#]+/?)?(?:[?#]|$)" + ], + "regexp": "https?://store\\.steampowered\\.com(?:/agecheck)?/app/(\\d+)/?(?:[^?/#]+/?)?(?:[?#]|$)" + }, + "steamcommunity": { + "name": "steamcommunity", + "type": "free", + "domains": [ + "steamcommunity.com" + ], + "regexps": [ + "https?://(?:www\\.)?steamcommunity\\.com/sharedfiles/filedetails(?:/?\\?(?:[^#]+&)?id=|/)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?steamcommunity\\.com/sharedfiles/filedetails(?:/?\\?(?:[^#]+&)?id=|/)(\\d+)" + }, + "steamcommunitybroadcast": { + "name": "steamcommunitybroadcast", + "type": "free", + "domains": [ + "steamcommunity.com" + ], + "regexps": [ + "https?://(?:www\\.)?steamcommunity\\.com/broadcast/watch/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?steamcommunity\\.com/broadcast/watch/(\\d+)" + }, + "stitcher": { + "name": "stitcher", + "type": "free", + "domains": [ + "stitcher.com" + ], + "regexps": [ + "https?://(?:www\\.)?stitcher\\.com/(?:podcast|show)/(?:[^/]+/)+e(?:pisode)?/(?:[^/#?&]+-)?(\\d+)" + ], + "regexp": "https?://(?:www\\.)?stitcher\\.com/(?:podcast|show)/(?:[^/]+/)+e(?:pisode)?/(?:[^/#?&]+-)?(\\d+)" + }, + "stitchershow": { + "name": "stitchershow", + "type": "free", + "domains": [ + "stitcher.com" + ], + "regexps": [ + "https?://(?:www\\.)?stitcher\\.com/(?:podcast|show)/([^/#?&]+)/?(?:[?#&]|$)" + ], + "regexp": "https?://(?:www\\.)?stitcher\\.com/(?:podcast|show)/([^/#?&]+)/?(?:[?#&]|$)" + }, + "storyfire": { + "name": "storyfire", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?storyfire\\.com/video-details/([0-9a-f]{24})" + ], + "regexp": "https?://(?:www\\.)?storyfire\\.com/video-details/([0-9a-f]{24})" + }, + "storyfireseries": { + "name": "storyfireseries", + "type": "free", + "domains": [ + "storyfire.com" + ], + "regexps": [ + "https?://(?:www\\.)?storyfire\\.com/write/series/stories/([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?storyfire\\.com/write/series/stories/([^/?&#]+)" + }, + "storyfireuser": { + "name": "storyfireuser", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?storyfire\\.com/user/([^/]+)/video" + ], + "regexp": "https?://(?:www\\.)?storyfire\\.com/user/([^/]+)/video" + }, + "streaks": { + "name": "streaks", + "type": "free", + "domains": [ + "players.streaks.jp", + "playback.api.streaks.jp" + ], + "regexps": [ + "https?://players\\.streaks\\.jp/([\\w-]+)/[\\da-f]+/index\\.html\\?(?:[^#]+&)?m=((?:ref:)?[\\w-]+)", + "https?://playback\\.api\\.streaks\\.jp/v1/projects/([\\w-]+)/medias/((?:ref:)?[\\w-]+)" + ], + "regexp": "(https?://players\\.streaks\\.jp/([\\w-]+)/[\\da-f]+/index\\.html\\?(?:[^#]+&)?m=((?:ref:)?[\\w-]+))|(https?://playback\\.api\\.streaks\\.jp/v1/projects/([\\w-]+)/medias/((?:ref:)?[\\w-]+))" + }, + "streamable": { + "name": "streamable", + "type": "free", + "domains": [ + "streamable.com" + ], + "regexps": [ + "https?://streamable\\.com/(?:[es]/)?(\\w+)" + ], + "regexp": "https?://streamable\\.com/(?:[es]/)?(\\w+)" + }, + "streamcz": { + "name": "streamcz", + "type": "free", + "domains": [ + "televizeseznam.cz", + "stream.cz" + ], + "regexps": [ + "https?://(?:www\\.)?(?:stream|televizeseznam)\\.cz/[^?#]+/([^?#]+)-([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?(?:stream|televizeseznam)\\.cz/[^?#]+/([^?#]+)-([0-9]+)" + }, + "streetvoice": { + "name": "streetvoice", + "type": "free", + "domains": [ + "streetvoice.com", + "tw.streetvoice.com" + ], + "regexps": [ + "https?://(?:.+?\\.)?streetvoice\\.com/[^/]+/songs/([0-9]+)" + ], + "regexp": "https?://(?:.+?\\.)?streetvoice\\.com/[^/]+/songs/([0-9]+)" + }, + "stretchinternet": { + "name": "stretchinternet", + "type": "free", + "domains": [], + "regexps": [ + "https?://portal\\.stretchinternet\\.com/[^/]+/(?:portal|full)\\.htm\\?.*?\\beventId=(\\d+)" + ], + "regexp": "https?://portal\\.stretchinternet\\.com/[^/]+/(?:portal|full)\\.htm\\?.*?\\beventId=(\\d+)" + }, + "stripchat": { + "name": "stripchat", + "type": "free", + "domains": [ + "stripchat.com" + ], + "regexps": [ + "https?://stripchat\\.com/([^/?#]+)" + ], + "regexp": "https?://stripchat\\.com/([^/?#]+)" + }, + "stv": { + "name": "stv", + "type": "free", + "domains": [ + "player.stv.tv" + ], + "regexps": [ + "https?://player\\.stv\\.tv/(episode|video)/([a-z0-9]{4})" + ], + "regexp": "https?://player\\.stv\\.tv/(episode|video)/([a-z0-9]{4})" + }, + "stvr": { + "name": "stvr", + "type": "free", + "domains": [ + "rtvs.sk", + "stvr.sk" + ], + "regexps": [ + "https?://(?:www\\.)?(?:rtvs|stvr)\\.sk/(?:radio|televizia)/archiv(?:/\\d+)?/(\\d+)/?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?(?:rtvs|stvr)\\.sk/(?:radio|televizia)/archiv(?:/\\d+)?/(\\d+)/?(?:[#?]|$)" + }, + "subsplash": { + "name": "subsplash", + "type": "free", + "domains": [ + "subsplash.com", + "prophecywatchers.subspla.sh" + ], + "regexps": [ + "https?://(?:www\\.)?subsplash\\.com/(?:u/)?[^/?#]+/[^/?#]+/(?:d/|mi/\\+)(\\w+)", + "https?://(?:\\w+\\.)?subspla\\.sh/(\\w+)", + "https?://(?:www\\.)?subsplash\\.com/[^/?#]+/(?:our-videos|media)/ms/\\+(\\w+)" + ], + "regexp": "(https?://(?:www\\.)?subsplash\\.com/(?:u/)?[^/?#]+/[^/?#]+/(?:d/|mi/\\+)(\\w+))|(https?://(?:\\w+\\.)?subspla\\.sh/(\\w+))|(https?://(?:www\\.)?subsplash\\.com/[^/?#]+/(?:our-videos|media)/ms/\\+(\\w+))" + }, + "substack": { + "name": "substack", + "type": "free", + "domains": [ + "haleynahman.substack.com", + "andrewzimmern.substack.com", + "persuasion1.substack.com" + ], + "regexps": [ + "https?://[\\w-]+\\.substack\\.com/p/([\\w-]+)" + ], + "regexp": "https?://[\\w-]+\\.substack\\.com/p/([\\w-]+)" + }, + "sunporno": { + "name": "sunporno", + "type": "free", + "domains": [ + "sunporno.com", + "embeds.sunporno.com" + ], + "regexps": [ + "https?://(?:(?:www\\.)?sunporno\\.com/videos|embeds\\.sunporno\\.com/embed)/(\\d+)" + ], + "regexp": "https?://(?:(?:www\\.)?sunporno\\.com/videos|embeds\\.sunporno\\.com/embed)/(\\d+)" + }, + "sverigesradio": { + "name": "sverigesradio", + "type": "free", + "domains": [ + "sverigesradio.se" + ], + "regexps": [ + "https?://(?:www\\.)?sverigesradio\\.se/(?:sida/)?avsnitt/(?:(\\d+)|([\\w-]+))(?:$|[#?])", + "https?://(?:www\\.)?sverigesradio\\.se/(?:sida/)?(?:artikel|gruppsida)(?:\\.aspx\\?.*?\\bartikel=([0-9]+)|/([\\w-]+))" + ], + "regexp": "(https?://(?:www\\.)?sverigesradio\\.se/(?:sida/)?avsnitt/(?:(\\d+)|([\\w-]+))(?:$|[#?]))|(https?://(?:www\\.)?sverigesradio\\.se/(?:sida/)?(?:artikel|gruppsida)(?:\\.aspx\\?.*?\\bartikel=([0-9]+)|/([\\w-]+)))" + }, + "svt": { + "name": "svt", + "type": "free", + "domains": [ + "svt.se", + "svtplay.se", + "oppetarkiv.se" + ], + "regexps": [ + "https?://(?:www\\.)?svt\\.se/(?:[^/?#]+/)*([^/?&#]+)", + "(?:(?:svt:|https?://(?:www\\.)?svt\\.se/barnkanalen/barnplay/[^/]+/)([^/?#&]+)|https?://(?:www\\.)?(?:svtplay|oppetarkiv)\\.se/(?:video|klipp|kanaler)/([^/?#&]+)(?:.*?(?:modalId|id)=([\\da-zA-Z-]+))?)", + "https?://(?:www\\.)?svtplay\\.se/([^/?&#]+)(?:.+?\\btab=([^&#]+))?" + ], + "regexp": "(https?://(?:www\\.)?svt\\.se/(?:[^/?#]+/)*([^/?&#]+))|((?:(?:svt:|https?://(?:www\\.)?svt\\.se/barnkanalen/barnplay/[^/]+/)([^/?#&]+)|https?://(?:www\\.)?(?:svtplay|oppetarkiv)\\.se/(?:video|klipp|kanaler)/([^/?#&]+)(?:.*?(?:modalId|id)=([\\da-zA-Z-]+))?))|(https?://(?:www\\.)?svtplay\\.se/([^/?&#]+)(?:.+?\\btab=([^&#]+))?)" + }, + "swearnetepisode": { + "name": "swearnetepisode", + "type": "free", + "domains": [ + "swearnet.com" + ], + "regexps": [ + "https?://www\\.swearnet\\.com/shows/([\\w-]+)/seasons/(\\d+)/episodes/(\\d+)" + ], + "regexp": "https?://www\\.swearnet\\.com/shows/([\\w-]+)/seasons/(\\d+)/episodes/(\\d+)" + }, + "syfy": { + "name": "syfy", + "type": "free", + "domains": [ + "syfy.com" + ], + "regexps": [ + "https?://(?:www\\.)?syfy\\.com/[^/?#]+/(?:season-\\d+/episode-\\d+/(?:videos/)?|videos/)([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?syfy\\.com/[^/?#]+/(?:season-\\d+/episode-\\d+/(?:videos/)?|videos/)([^/?#]+)" + }, + "syvdk": { + "name": "syvdk", + "type": "free", + "domains": [ + "24syv.dk" + ], + "regexps": [ + "https?://(?:www\\.)?24syv\\.dk/episode/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?24syv\\.dk/episode/([\\w-]+)" + }, + "sztvhu": { + "name": "sztvhu", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:(?:www\\.)?sztv\\.hu|www\\.tvszombathely\\.hu)/(?:[^/]+)/.+-([0-9]+)" + ], + "regexp": "https?://(?:(?:www\\.)?sztv\\.hu|www\\.tvszombathely\\.hu)/(?:[^/]+)/.+-([0-9]+)" + }, + "t-online.de": { + "name": "t-online.de", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?t-online\\.de/tv/(?:[^/]+/)*id_(\\d+)" + ], + "regexp": "https?://(?:www\\.)?t-online\\.de/tv/(?:[^/]+/)*id_(\\d+)" + }, + "taptapapp": { + "name": "taptapapp", + "type": "free", + "domains": [ + "taptap.cn" + ], + "regexps": [ + "https?://www\\.taptap\\.cn/app/(\\d+)" + ], + "regexp": "https?://www\\.taptap\\.cn/app/(\\d+)" + }, + "taptapappintl": { + "name": "taptapappintl", + "type": "free", + "domains": [ + "taptap.io" + ], + "regexps": [ + "https?://www\\.taptap\\.io/app/(\\d+)" + ], + "regexp": "https?://www\\.taptap\\.io/app/(\\d+)" + }, + "taptapmoment": { + "name": "taptapmoment", + "type": "free", + "domains": [ + "taptap.cn" + ], + "regexps": [ + "https?://www\\.taptap\\.cn/moment/(\\d+)" + ], + "regexp": "https?://www\\.taptap\\.cn/moment/(\\d+)" + }, + "taptappostintl": { + "name": "taptappostintl", + "type": "free", + "domains": [ + "taptap.io" + ], + "regexps": [ + "https?://www\\.taptap\\.io/post/(\\d+)" + ], + "regexp": "https?://www\\.taptap\\.io/post/(\\d+)" + }, + "tass": { + "name": "tass", + "type": "free", + "domains": [ + "tass.ru", + "itar-tass.com" + ], + "regexps": [ + "https?://(?:tass\\.ru|itar-tass\\.com)/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:tass\\.ru|itar-tass\\.com)/[^/]+/(\\d+)" + }, + "tbs": { + "name": "tbs", + "type": "free", + "domains": [ + "tbs.com", + "tntdrama.com", + "trutv.com" + ], + "regexps": [ + "https?://(?:www\\.)?(tbs|tntdrama|trutv)\\.com(/(?:(watch(?:tnt|tbs|trutv))|movies|shows/[^/?#]+/(?:clips|season-\\d+/episode-\\d+))/([^/?#]+))" + ], + "regexp": "https?://(?:www\\.)?(tbs|tntdrama|trutv)\\.com(/(?:(watch(?:tnt|tbs|trutv))|movies|shows/[^/?#]+/(?:clips|season-\\d+/episode-\\d+))/([^/?#]+))" + }, + "tbsjpepisode": { + "name": "tbsjpepisode", + "type": "free", + "domains": [ + "cu.tbs.co.jp" + ], + "regexps": [ + "https?://cu\\.tbs\\.co\\.jp/episode/([\\d_]+)" + ], + "regexp": "https?://cu\\.tbs\\.co\\.jp/episode/([\\d_]+)" + }, + "tbsjpplaylist": { + "name": "tbsjpplaylist", + "type": "free", + "domains": [ + "cu.tbs.co.jp" + ], + "regexps": [ + "https?://cu\\.tbs\\.co\\.jp/playlist/([\\da-f]+)" + ], + "regexp": "https?://cu\\.tbs\\.co\\.jp/playlist/([\\da-f]+)" + }, + "tbsjpprogram": { + "name": "tbsjpprogram", + "type": "free", + "domains": [ + "cu.tbs.co.jp" + ], + "regexps": [ + "https?://cu\\.tbs\\.co\\.jp/program/(\\d+)" + ], + "regexp": "https?://cu\\.tbs\\.co\\.jp/program/(\\d+)" + }, + "teachable": { + "name": "teachable", + "type": "free", + "domains": [ + "gns3.teachable.com", + "v1.upskillcourses.com" + ], + "regexps": [ + "(?:teachable:https?://([^/]+)|https?://(?:www\\.)?(v1\\.upskillcourses\\.com|gns3\\.teachable\\.com|academyhacker\\.com|stackskills\\.com|market\\.saleshacker\\.com|learnability\\.org|edurila\\.com|courses\\.workitdaily\\.com))/courses/[^/]+/lectures/(\\d+)" + ], + "regexp": "(?:teachable:https?://([^/]+)|https?://(?:www\\.)?(v1\\.upskillcourses\\.com|gns3\\.teachable\\.com|academyhacker\\.com|stackskills\\.com|market\\.saleshacker\\.com|learnability\\.org|edurila\\.com|courses\\.workitdaily\\.com))/courses/[^/]+/lectures/(\\d+)" + }, + "teachablecourse": { + "name": "teachablecourse", + "type": "free", + "domains": [ + "v1.upskillcourses.com", + "gns3.teachable.com" + ], + "regexps": [ + "(?:teachable:https?://([^/]+)|https?://(?:www\\.)?(v1\\.upskillcourses\\.com|gns3\\.teachable\\.com|academyhacker\\.com|stackskills\\.com|market\\.saleshacker\\.com|learnability\\.org|edurila\\.com|courses\\.workitdaily\\.com))/(?:courses|p)/(?:enrolled/)?([^/?#&]+)" + ], + "regexp": "(?:teachable:https?://([^/]+)|https?://(?:www\\.)?(v1\\.upskillcourses\\.com|gns3\\.teachable\\.com|academyhacker\\.com|stackskills\\.com|market\\.saleshacker\\.com|learnability\\.org|edurila\\.com|courses\\.workitdaily\\.com))/(?:courses|p)/(?:enrolled/)?([^/?#&]+)" + }, + "teachertube": { + "name": "teachertube", + "type": "free", + "domains": [ + "teachertube.com" + ], + "regexps": [ + "https?://(?:www\\.)?teachertube\\.com/(viewVideo\\.php\\?video_id=|music\\.php\\?music_id=|video/(?:[\\da-z-]+-)?|audio/)(\\d+)", + "https?://(?:www\\.)?teachertube\\.com/(user/profile|collection)/([0-9a-zA-Z]+)/?" + ], + "regexp": "(https?://(?:www\\.)?teachertube\\.com/(viewVideo\\.php\\?video_id=|music\\.php\\?music_id=|video/(?:[\\da-z-]+-)?|audio/)(\\d+))|(https?://(?:www\\.)?teachertube\\.com/(user/profile|collection)/([0-9a-zA-Z]+)/?)" + }, + "teachingchannel": { + "name": "teachingchannel", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?teachingchannel\\.org/videos?/([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?teachingchannel\\.org/videos?/([^/?&#]+)" + }, + "teamcoco": { + "name": "teamcoco", + "type": "free", + "domains": [ + "teamcoco.com" + ], + "regexps": [ + "https?://(?:www\\.)?teamcoco\\.com/(([^/]+/)*[^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?teamcoco\\.com/(([^/]+/)*[^/?#]+)" + }, + "teamtreehouse": { + "name": "teamtreehouse", + "type": "free", + "domains": [ + "teamtreehouse.com" + ], + "regexps": [ + "https?://(?:www\\.)?teamtreehouse\\.com/library/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?teamtreehouse\\.com/library/([^/]+)" + }, + "techtv.mit.edu": { + "name": "techtv.mit.edu", + "type": "free", + "domains": [], + "regexps": [ + "https?://techtv\\.mit\\.edu/(?:videos|embeds)/(\\d+)" + ], + "regexp": "https?://techtv\\.mit\\.edu/(?:videos|embeds)/(\\d+)" + }, + "tedembed": { + "name": "tedembed", + "type": "free", + "domains": [ + "embed.ted.com" + ], + "regexps": [ + "https?://embed(?:-ssl)?\\.ted\\.com/" + ], + "regexp": "https?://embed(?:-ssl)?\\.ted\\.com/" + }, + "tedplaylist": { + "name": "tedplaylist", + "type": "free", + "domains": [ + "ted.com" + ], + "regexps": [ + "https?://www\\.ted\\.com/(?:playlists(?:/\\d+)?)(?:/lang/[^/#?]+)?/([\\w-]+)" + ], + "regexp": "https?://www\\.ted\\.com/(?:playlists(?:/\\d+)?)(?:/lang/[^/#?]+)?/([\\w-]+)" + }, + "tedseries": { + "name": "tedseries", + "type": "free", + "domains": [ + "ted.com" + ], + "regexps": [ + "https?://www\\.ted\\.com/(?:series)(?:/lang/[^/#?]+)?/([\\w-]+)(?:#season_(\\d+))?" + ], + "regexp": "https?://www\\.ted\\.com/(?:series)(?:/lang/[^/#?]+)?/([\\w-]+)(?:#season_(\\d+))?" + }, + "tedtalk": { + "name": "tedtalk", + "type": "free", + "domains": [ + "ted.com" + ], + "regexps": [ + "https?://www\\.ted\\.com/(?:talks)(?:/lang/[^/#?]+)?/([\\w-]+)" + ], + "regexp": "https?://www\\.ted\\.com/(?:talks)(?:/lang/[^/#?]+)?/([\\w-]+)" + }, + "tele5": { + "name": "tele5", + "type": "free", + "domains": [ + "tele5.de" + ], + "regexps": [ + "https?://(?:www\\.)?tele5\\.de/([\\w-]+)/([\\w-]+)(?:/([\\w-]+))?" + ], + "regexp": "https?://(?:www\\.)?tele5\\.de/([\\w-]+)/([\\w-]+)(?:/([\\w-]+))?" + }, + "tele13": { + "name": "tele13", + "type": "free", + "domains": [ + "t13.cl" + ], + "regexps": [ + "https?://(?:www\\.)?t13\\.cl/videos(?:/[^/]+)+/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?t13\\.cl/videos(?:/[^/]+)+/([\\w-]+)" + }, + "telebruxelles": { + "name": "telebruxelles", + "type": "free", + "domains": [ + "bx1.be" + ], + "regexps": [ + "https?://(?:www\\.)?(?:telebruxelles|bx1)\\.be/(?:[^/]+/)*([^/#?]+)" + ], + "regexp": "https?://(?:www\\.)?(?:telebruxelles|bx1)\\.be/(?:[^/]+/)*([^/#?]+)" + }, + "telecaribeplay": { + "name": "telecaribeplay", + "type": "free", + "domains": [ + "play.telecaribe.co" + ], + "regexps": [ + "https?://(?:www\\.)?play\\.telecaribe\\.co/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?play\\.telecaribe\\.co/([\\w-]+)" + }, + "telecinco": { + "name": "telecinco", + "type": "free", + "domains": [ + "telecinco.es", + "cuatro.com", + "mediaset.es" + ], + "regexps": [ + "https?://(?:www\\.)?(?:telecinco\\.es|cuatro\\.com|mediaset\\.es)/(?:[^/]+/)+(.+?)\\.html" + ], + "regexp": "https?://(?:www\\.)?(?:telecinco\\.es|cuatro\\.com|mediaset\\.es)/(?:[^/]+/)+(.+?)\\.html" + }, + "telegraaf": { + "name": "telegraaf", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?telegraaf\\.nl/video/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?telegraaf\\.nl/video/(\\d+)" + }, + "telegram": { + "name": "telegram", + "type": "free", + "domains": [ + "t.me" + ], + "regexps": [ + "https?://t\\.me/([^/]+)/(\\d+)" + ], + "regexp": "https?://t\\.me/([^/]+)/(\\d+)" + }, + "telemb": { + "name": "telemb", + "type": "free", + "domains": [ + "telemb.be" + ], + "regexps": [ + "https?://(?:www\\.)?telemb\\.be/(.+?)_d_(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?telemb\\.be/(.+?)_d_(\\d+)\\.html" + }, + "telemundo": { + "name": "telemundo", + "type": "free", + "domains": [ + "telemundo.com" + ], + "regexps": [ + "https?:\\/\\/(?:www\\.)?telemundo\\.com\\/.+?video\\/[^\\/]+(tmvo\\d{7})" + ], + "regexp": "https?:\\/\\/(?:www\\.)?telemundo\\.com\\/.+?video\\/[^\\/]+(tmvo\\d{7})" + }, + "telequebec": { + "name": "telequebec", + "type": "free", + "domains": [ + "zonevideo.telequebec.tv", + "coucou.telequebec.tv" + ], + "regexps": [ + "https?://(?:zonevideo\\.telequebec\\.tv/media|coucou\\.telequebec\\.tv/videos)/(\\d+)" + ], + "regexp": "https?://(?:zonevideo\\.telequebec\\.tv/media|coucou\\.telequebec\\.tv/videos)/(\\d+)" + }, + "telequebecemission": { + "name": "telequebecemission", + "type": "free", + "domains": [ + "lindicemcsween.telequebec.tv", + "bancpublic.telequebec.tv", + "telequebec.tv" + ], + "regexps": [ + "https?://(?:[^/]+\\.telequebec\\.tv/emissions/|(?:www\\.)?telequebec\\.tv/)([^?#&]+)" + ], + "regexp": "https?://(?:[^/]+\\.telequebec\\.tv/emissions/|(?:www\\.)?telequebec\\.tv/)([^?#&]+)" + }, + "telequebeclive": { + "name": "telequebeclive", + "type": "free", + "domains": [], + "regexps": [ + "https?://zonevideo\\.telequebec\\.tv/(endirect)" + ], + "regexp": "https?://zonevideo\\.telequebec\\.tv/(endirect)" + }, + "telequebecsquat": { + "name": "telequebecsquat", + "type": "free", + "domains": [ + "squat.telequebec.tv" + ], + "regexps": [ + "https?://squat\\.telequebec\\.tv/videos/(\\d+)" + ], + "regexp": "https?://squat\\.telequebec\\.tv/videos/(\\d+)" + }, + "telequebecvideo": { + "name": "telequebecvideo", + "type": "free", + "domains": [ + "video.telequebec.tv" + ], + "regexps": [ + "https?://video\\.telequebec\\.tv/player(?:-live)?/(\\d+)" + ], + "regexp": "https?://video\\.telequebec\\.tv/player(?:-live)?/(\\d+)" + }, + "teletask": { + "name": "teletask", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?tele-task\\.de/archive/video/html5/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?tele-task\\.de/archive/video/html5/([0-9]+)" + }, + "telewebion": { + "name": "telewebion", + "type": "free", + "domains": [ + "telewebion.com" + ], + "regexps": [ + "https?://(?:www\\.)?telewebion\\.com/episode/((?:0x[a-fA-F\\d]+|\\d+))" + ], + "regexp": "https?://(?:www\\.)?telewebion\\.com/episode/((?:0x[a-fA-F\\d]+|\\d+))" + }, + "tempo": { + "name": "tempo", + "type": "free", + "domains": [ + "video.tempo.co" + ], + "regexps": [ + "https?://video\\.tempo\\.co/\\w+/\\d+/([\\w-]+)" + ], + "regexp": "https?://video\\.tempo\\.co/\\w+/\\d+/([\\w-]+)" + }, + "tennistv": { + "name": "tennistv", + "type": "free", + "domains": [ + "tennistv.com" + ], + "regexps": [ + "https?://(?:www\\.)?tennistv\\.com/videos/([-a-z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?tennistv\\.com/videos/([-a-z0-9]+)" + }, + "tf1": { + "name": "tf1", + "type": "free", + "domains": [ + "tf1.fr" + ], + "regexps": [ + "https?://(?:www\\.)?tf1\\.fr/[^/]+/([^/]+)/videos/([^/?&#]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?tf1\\.fr/[^/]+/([^/]+)/videos/([^/?&#]+)\\.html" + }, + "tfo": { + "name": "tfo", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?tfo\\.org/(?:en|fr)/(?:[^/]+/){2}(\\d+)" + ], + "regexp": "https?://(?:www\\.)?tfo\\.org/(?:en|fr)/(?:[^/]+/){2}(\\d+)" + }, + "theatercomplextown": { + "name": "theatercomplextown", + "type": "free", + "domains": [ + "theater-complex.town" + ], + "regexps": [ + "https?://(?:www\\.)?theater-complex\\.town/(?:(?:en|ja)/)?(?:ppv|live)/(\\w+)", + "https?://(?:www\\.)?theater-complex\\.town/(?:(?:en|ja)/)?videos/episodes/(\\w+)" + ], + "regexp": "(https?://(?:www\\.)?theater-complex\\.town/(?:(?:en|ja)/)?(?:ppv|live)/(\\w+))|(https?://(?:www\\.)?theater-complex\\.town/(?:(?:en|ja)/)?videos/episodes/(\\w+))" + }, + "thechosen": { + "name": "thechosen", + "type": "free", + "domains": [ + "watch.thechosen.tv" + ], + "regexps": [ + "https?://(?:www\\.)?watch\\.thechosen\\.tv/video/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?watch\\.thechosen\\.tv/video/([0-9]+)" + }, + "thechosengroup": { + "name": "thechosengroup", + "type": "free", + "domains": [ + "watch.thechosen.tv" + ], + "regexps": [ + "https?://(?:www\\.)?watch\\.thechosen\\.tv/group/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?watch\\.thechosen\\.tv/group/([0-9]+)" + }, + "theguardianpodcast": { + "name": "theguardianpodcast", + "type": "free", + "domains": [ + "theguardian.com" + ], + "regexps": [ + "https?://(?:www\\.)?theguardian\\.com/\\w+/audio/\\d{4}/\\w{3}/\\d{1,2}/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?theguardian\\.com/\\w+/audio/\\d{4}/\\w{3}/\\d{1,2}/([\\w-]+)" + }, + "theguardianpodcastplaylist": { + "name": "theguardianpodcastplaylist", + "type": "free", + "domains": [ + "theguardian.com" + ], + "regexps": [ + "https?://(?:www\\.)?theguardian\\.com/\\w+/series/([\\w-]+)(?:\\?page=\\d+)?" + ], + "regexp": "https?://(?:www\\.)?theguardian\\.com/\\w+/series/([\\w-]+)(?:\\?page=\\d+)?" + }, + "thehighwire": { + "name": "thehighwire", + "type": "free", + "domains": [ + "thehighwire.com" + ], + "regexps": [ + "https?://(?:www\\.)?thehighwire\\.com/ark-videos/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?thehighwire\\.com/ark-videos/([^/?#]+)" + }, + "theholetv": { + "name": "theholetv", + "type": "free", + "domains": [ + "the-hole.tv" + ], + "regexps": [ + "https?://(?:www\\.)?the-hole\\.tv/episodes/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?the-hole\\.tv/episodes/([\\w-]+)" + }, + "theintercept": { + "name": "theintercept", + "type": "free", + "domains": [ + "theintercept.com" + ], + "regexps": [ + "https?://theintercept\\.com/fieldofvision/([^/?#]+)" + ], + "regexp": "https?://theintercept\\.com/fieldofvision/([^/?#]+)" + }, + "theplatform": { + "name": "theplatform", + "type": "free", + "domains": [ + "link.theplatform.com", + "player.theplatform.com" + ], + "regexps": [ + "(?:https?://(?:link|player)\\.theplatform\\.com/[sp]/([^/]+)/(?:(?:(?:[^/]+/)+select/)?(media/(?:guid/\\d+/)?)?|((?:[^/\\?]+/(?:swf|config)|onsite)/select/))?|theplatform:)([^/\\?&]+)" + ], + "regexp": "(?:https?://(?:link|player)\\.theplatform\\.com/[sp]/([^/]+)/(?:(?:(?:[^/]+/)+select/)?(media/(?:guid/\\d+/)?)?|((?:[^/\\?]+/(?:swf|config)|onsite)/select/))?|theplatform:)([^/\\?&]+)" + }, + "theplatformfeed": { + "name": "theplatformfeed", + "type": "free", + "domains": [ + "feed.theplatform.com" + ], + "regexps": [ + "https?://feed\\.theplatform\\.com/f/([^/]+)/([^?/]+)\\?(?:[^&]+&)*(by(?:Gui|I)d=([^&]+))" + ], + "regexp": "https?://feed\\.theplatform\\.com/f/([^/]+)/([^?/]+)\\?(?:[^&]+&)*(by(?:Gui|I)d=([^&]+))" + }, + "thestar": { + "name": "thestar", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?thestar\\.com/(?:[^/]+/)*(.+)\\.html" + ], + "regexp": "https?://(?:www\\.)?thestar\\.com/(?:[^/]+/)*(.+)\\.html" + }, + "thesun": { + "name": "thesun", + "type": "free", + "domains": [ + "thesun.co.uk", + "the-sun.com" + ], + "regexps": [ + "https?://(?:www\\.)?the-?sun(\\.co\\.uk|\\.com)/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?the-?sun(\\.co\\.uk|\\.com)/[^/]+/(\\d+)" + }, + "theweatherchannel": { + "name": "theweatherchannel", + "type": "free", + "domains": [ + "weather.com" + ], + "regexps": [ + "https?://(?:www\\.)?weather\\.com((?:/([a-z]{2}-[A-Z]{2}))?/(?:[^/]+/)*video/([^/?#]+))" + ], + "regexp": "https?://(?:www\\.)?weather\\.com((?:/([a-z]{2}-[A-Z]{2}))?/(?:[^/]+/)*video/([^/?#]+))" + }, + "thisamericanlife": { + "name": "thisamericanlife", + "type": "free", + "domains": [ + "thisamericanlife.org" + ], + "regexps": [ + "https?://(?:www\\.)?thisamericanlife\\.org/(?:radio-archives/episode/|play_full\\.php\\?play=)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?thisamericanlife\\.org/(?:radio-archives/episode/|play_full\\.php\\?play=)(\\d+)" + }, + "thisoldhouse": { + "name": "thisoldhouse", + "type": "free", + "domains": [ + "thisoldhouse.com" + ], + "regexps": [ + "https?://(?:www\\.)?thisoldhouse\\.com/(?:watch|how-to|tv-episode|(?:[^/?#]+/)?\\d+)/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?thisoldhouse\\.com/(?:watch|how-to|tv-episode|(?:[^/?#]+/)?\\d+)/([^/?#]+)" + }, + "thisvid": { + "name": "thisvid", + "type": "free", + "domains": [ + "thisvid.com" + ], + "regexps": [ + "https?://(?:www\\.)?thisvid\\.com/(videos|embed)/([A-Za-z0-9-]+)" + ], + "regexp": "https?://(?:www\\.)?thisvid\\.com/(videos|embed)/([A-Za-z0-9-]+)" + }, + "thisvidmember": { + "name": "thisvidmember", + "type": "free", + "domains": [ + "thisvid.com" + ], + "regexps": [ + "https?://thisvid\\.com/members/(\\d+)" + ], + "regexp": "https?://thisvid\\.com/members/(\\d+)" + }, + "thisvidplaylist": { + "name": "thisvidplaylist", + "type": "free", + "domains": [ + "thisvid.com" + ], + "regexps": [ + "https?://thisvid\\.com/playlist/(\\d+)/video/([A-Za-z0-9-]+)" + ], + "regexp": "https?://thisvid\\.com/playlist/(\\d+)/video/([A-Za-z0-9-]+)" + }, + "threespeak": { + "name": "threespeak", + "type": "free", + "domains": [ + "3speak.tv" + ], + "regexps": [ + "https?://(?:www\\.)?3speak\\.tv/watch\\?v\\=[^/]+/([^/$&#?]+)" + ], + "regexp": "https?://(?:www\\.)?3speak\\.tv/watch\\?v\\=[^/]+/([^/$&#?]+)" + }, + "threespeakuser": { + "name": "threespeakuser", + "type": "free", + "domains": [ + "3speak.tv" + ], + "regexps": [ + "https?://(?:www\\.)?3speak\\.tv/user/([^/$&?#]+)" + ], + "regexp": "https?://(?:www\\.)?3speak\\.tv/user/([^/$&?#]+)" + }, + "tiktok": { + "name": "tiktok", + "type": "free", + "domains": [ + "tiktok.com", + "m.tiktok.com" + ], + "regexps": [ + "https?://www\\.tiktok\\.com/@([\\w.-]+)/collection/([^/?#]+)-(\\d+)/?(?:[?#]|$)", + "https?://(?:www\\.)?tiktok\\.com/sticker/[\\w\\.-]+-([\\d]+)[/?#&]?", + "https?://www\\.tiktok\\.com/(?:embed|@([\\w\\.-]+)?/video)/(\\d+)", + "https?://(?:(?:www\\.)?tiktok\\.com/@([\\w.-]+)/live|m\\.tiktok\\.com/share/live/(\\d+))", + "https?://(?:www\\.)?tiktok\\.com/music/[\\w\\.-]+-([\\d]+)[/?#&]?", + "https?://(?:www\\.)?tiktok\\.com/tag/([^/?#&]+)", + "(?:tiktokuser:|https?://(?:www\\.)?tiktok\\.com/@)([\\w.-]+)/?(?:$|[#?])" + ], + "regexp": "(https?://www\\.tiktok\\.com/@([\\w.-]+)/collection/([^/?#]+)-(\\d+)/?(?:[?#]|$))|(https?://(?:www\\.)?tiktok\\.com/sticker/[\\w\\.-]+-([\\d]+)[/?#&]?)|(https?://www\\.tiktok\\.com/(?:embed|@([\\w\\.-]+)?/video)/(\\d+))|(https?://(?:(?:www\\.)?tiktok\\.com/@([\\w.-]+)/live|m\\.tiktok\\.com/share/live/(\\d+)))|(https?://(?:www\\.)?tiktok\\.com/music/[\\w\\.-]+-([\\d]+)[/?#&]?)|(https?://(?:www\\.)?tiktok\\.com/tag/([^/?#&]+))|((?:tiktokuser:|https?://(?:www\\.)?tiktok\\.com/@)([\\w.-]+)/?(?:$|[#?]))" + }, + "tlc": { + "name": "tlc", + "type": "free", + "domains": [ + "go.tlc.com" + ], + "regexps": [ + "https?://(?:go\\.)?tlc\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:go\\.)?tlc\\.com/video/([^/]+/[^/?#]+)" + }, + "tmz": { + "name": "tmz", + "type": "free", + "domains": [ + "tmz.com" + ], + "regexps": [ + "https?://(?:www\\.)?tmz\\.com/.*" + ], + "regexp": "https?://(?:www\\.)?tmz\\.com/.*" + }, + "tnaflix": { + "name": "tnaflix", + "type": "free", + "domains": [ + "tnaflix.com" + ], + "regexps": [ + "https?://(?:www\\.)?(tnaflix)\\.com/[^/]+/([^/]+)/video(\\d+)" + ], + "regexp": "https?://(?:www\\.)?(tnaflix)\\.com/[^/]+/([^/]+)/video(\\d+)" + }, + "tnaflixnetworkembed": { + "name": "tnaflixnetworkembed", + "type": "free", + "domains": [ + "player.tnaflix.com", + "player.empflix.com" + ], + "regexps": [ + "https?://player\\.(tnaflix|empflix)\\.com/video/(\\d+)" + ], + "regexp": "https?://player\\.(tnaflix|empflix)\\.com/video/(\\d+)" + }, + "toggle": { + "name": "toggle", + "type": "free", + "domains": [ + "mewatch.sg", + "video.toggle.sg" + ], + "regexps": [ + "(?:https?://(?:(?:www\\.)?mewatch|video\\.toggle)\\.sg/(?:en|zh)/(?:[^/]+/){2,}|toggle:)([0-9]+)" + ], + "regexp": "(?:https?://(?:(?:www\\.)?mewatch|video\\.toggle)\\.sg/(?:en|zh)/(?:[^/]+/){2,}|toggle:)([0-9]+)" + }, + "toggo": { + "name": "toggo", + "type": "free", + "domains": [ + "toggo.de" + ], + "regexps": [ + "https?://(?:www\\.)?toggo\\.de/(?:toggolino/)?[^/?#]+/(?:folge|video)/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?toggo\\.de/(?:toggolino/)?[^/?#]+/(?:folge|video)/([^/?#]+)" + }, + "tokfm": { + "name": "tokfm", + "type": "free", + "domains": [ + "audycje.tokfm.pl" + ], + "regexps": [ + "(?:https?://audycje\\.tokfm\\.pl/audycja/|tokfm:audition:)(\\d+),?", + "(?:https?://audycje\\.tokfm\\.pl/podcast/|tokfm:podcast:)(\\d+),?" + ], + "regexp": "((?:https?://audycje\\.tokfm\\.pl/audycja/|tokfm:audition:)(\\d+),?)|((?:https?://audycje\\.tokfm\\.pl/podcast/|tokfm:podcast:)(\\d+),?)" + }, + "toongoggles": { + "name": "toongoggles", + "type": "free", + "domains": [ + "toongoggles.com" + ], + "regexps": [ + "https?://(?:www\\.)?toongoggles\\.com/shows/(\\d+)(?:/[^/]+/episodes/(\\d+))?" + ], + "regexp": "https?://(?:www\\.)?toongoggles\\.com/shows/(\\d+)(?:/[^/]+/episodes/(\\d+))?" + }, + "tou.tv": { + "name": "tou.tv", + "type": "free", + "domains": [ + "ici.tou.tv" + ], + "regexps": [ + "https?://ici\\.tou\\.tv/([a-zA-Z0-9_-]+(?:/S[0-9]+[EC][0-9]+)?)" + ], + "regexp": "https?://ici\\.tou\\.tv/([a-zA-Z0-9_-]+(?:/S[0-9]+[EC][0-9]+)?)" + }, + "toutiao": { + "name": "toutiao", + "type": "free", + "domains": [ + "toutiao.com" + ], + "regexps": [ + "https?://www\\.toutiao\\.com/video/(\\d+)/?(?:[?#]|$)" + ], + "regexp": "https?://www\\.toutiao\\.com/video/(\\d+)/?(?:[?#]|$)" + }, + "toypics": { + "name": "toypics", + "type": "free", + "domains": [], + "regexps": [ + "https?://videos\\.toypics\\.net/view/([0-9]+)" + ], + "regexp": "https?://videos\\.toypics\\.net/view/([0-9]+)" + }, + "toypicsuser": { + "name": "toypicsuser", + "type": "free", + "domains": [], + "regexps": [ + "https?://videos\\.toypics\\.net/(?!view)([^/?#&]+)" + ], + "regexp": "https?://videos\\.toypics\\.net/(?!view)([^/?#&]+)" + }, + "traileraddict": { + "name": "traileraddict", + "type": "free", + "domains": [], + "regexps": [ + "(?:https?://)?(?:www\\.)?traileraddict\\.com/(?:trailer|clip)/(.+?)/(.+)" + ], + "regexp": "(?:https?://)?(?:www\\.)?traileraddict\\.com/(?:trailer|clip)/(.+?)/(.+)" + }, + "travelchannel": { + "name": "travelchannel", + "type": "free", + "domains": [ + "watch.travelchannel.com" + ], + "regexps": [ + "https?://(?:watch\\.)?travelchannel\\.com/video/([^/]+/[^/?#]+)" + ], + "regexp": "https?://(?:watch\\.)?travelchannel\\.com/video/([^/]+/[^/?#]+)" + }, + "triller": { + "name": "triller", + "type": "free", + "domains": [ + "triller.co" + ], + "regexps": [ + "https?://(?:www\\.)?triller\\.co/@([\\w.]+)/video/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + ], + "regexp": "https?://(?:www\\.)?triller\\.co/@([\\w.]+)/video/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + }, + "trillershort": { + "name": "trillershort", + "type": "free", + "domains": [ + "v.triller.co" + ], + "regexps": [ + "https?://v\\.triller\\.co/(\\w+)" + ], + "regexp": "https?://v\\.triller\\.co/(\\w+)" + }, + "trilleruser": { + "name": "trilleruser", + "type": "free", + "domains": [ + "triller.co" + ], + "regexps": [ + "https?://(?:www\\.)?triller\\.co/@([\\w.]+)/?(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?triller\\.co/@([\\w.]+)/?(?:$|[#?])" + }, + "trovo": { + "name": "trovo", + "type": "free", + "domains": [ + "trovo.live" + ], + "regexps": [ + "https?://(?:www\\.)?trovo\\.live/(?:s/)?(?!(?:clip|video)/)((?!s/)[^/?&#]+(?![^#]+[?&]vid=))" + ], + "regexp": "https?://(?:www\\.)?trovo\\.live/(?:s/)?(?!(?:clip|video)/)((?!s/)[^/?&#]+(?![^#]+[?&]vid=))" + }, + "trovochannelclip": { + "name": "trovochannelclip", + "type": "free", + "domains": [], + "regexps": [ + "trovoclip:([^\\s]+)" + ], + "regexp": "trovoclip:([^\\s]+)" + }, + "trovochannelvod": { + "name": "trovochannelvod", + "type": "free", + "domains": [], + "regexps": [ + "trovovod:([^\\s]+)" + ], + "regexp": "trovovod:([^\\s]+)" + }, + "trtcocukvideo": { + "name": "trtcocukvideo", + "type": "free", + "domains": [ + "trtcocuk.net.tr" + ], + "regexps": [ + "https?://www\\.trtcocuk\\.net\\.tr/video/([\\w-]+)" + ], + "regexp": "https?://www\\.trtcocuk\\.net\\.tr/video/([\\w-]+)" + }, + "trtworld": { + "name": "trtworld", + "type": "free", + "domains": [ + "trtworld.com" + ], + "regexps": [ + "https?://www\\.trtworld\\.com/video/[\\w-]+/[\\w-]+-(\\d+)" + ], + "regexp": "https?://www\\.trtworld\\.com/video/[\\w-]+/[\\w-]+-(\\d+)" + }, + "trueid": { + "name": "trueid", + "type": "free", + "domains": [ + "trueid.id", + "vn.trueid.net", + "trueid.ph" + ], + "regexps": [ + "https?://(vn\\.trueid\\.net|trueid\\.(?:id|ph))/(?:movie|series/[^/]+)/([^/?#&]+)" + ], + "regexp": "https?://(vn\\.trueid\\.net|trueid\\.(?:id|ph))/(?:movie|series/[^/]+)/([^/?#&]+)" + }, + "trunews": { + "name": "trunews", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?trunews\\.com/stream/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?trunews\\.com/stream/([^/?#&]+)" + }, + "truth": { + "name": "truth", + "type": "free", + "domains": [ + "truthsocial.com" + ], + "regexps": [ + "https?://truthsocial\\.com/@[^/]+/posts/(\\d+)" + ], + "regexp": "https?://truthsocial\\.com/@[^/]+/posts/(\\d+)" + }, + "ttinglive": { + "name": "ttinglive", + "type": "free", + "domains": [ + "flextv.co.kr" + ], + "regexps": [ + "https?://(?:www\\.)?(?:ttinglive\\.com|flextv\\.co\\.kr)/channels/(\\d+)/live" + ], + "regexp": "https?://(?:www\\.)?(?:ttinglive\\.com|flextv\\.co\\.kr)/channels/(\\d+)/live" + }, + "tube8": { + "name": "tube8", + "type": "free", + "domains": [ + "tube8.com" + ], + "regexps": [ + "https?://(?:www\\.)?tube8\\.com/(?:[^/]+/)+([^/]+)/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?tube8\\.com/(?:[^/]+/)+([^/]+)/(\\d+)" + }, + "tubetugraz": { + "name": "tubetugraz", + "type": "free", + "domains": [ + "tube.tugraz.at" + ], + "regexps": [ + "https?://tube\\.tugraz\\.at/(?:paella/ui/watch\\.html\\?(?:[^#]*&)?id=|portal/watch/)([0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})" + ], + "regexp": "https?://tube\\.tugraz\\.at/(?:paella/ui/watch\\.html\\?(?:[^#]*&)?id=|portal/watch/)([0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})" + }, + "tubetugrazseries": { + "name": "tubetugrazseries", + "type": "free", + "domains": [ + "tube.tugraz.at" + ], + "regexps": [ + "https?://tube\\.tugraz\\.at/paella/ui/browse\\.html\\?series=([0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})" + ], + "regexp": "https?://tube\\.tugraz\\.at/paella/ui/browse\\.html\\?series=([0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})" + }, + "tubitv": { + "name": "tubitv", + "type": "free", + "domains": [ + "tubitv.com" + ], + "regexps": [ + "https?://(?:www\\.)?tubitv\\.com/(video|movies|tv-shows)/(\\d+)", + "https?://(?:www\\.)?tubitv\\.com/series/\\d+/([^/?#]+)(?:/season-(\\d+))?" + ], + "regexp": "(https?://(?:www\\.)?tubitv\\.com/(video|movies|tv-shows)/(\\d+))|(https?://(?:www\\.)?tubitv\\.com/series/\\d+/([^/?#]+)(?:/season-(\\d+))?)" + }, + "tumblr": { + "name": "tumblr", + "type": "free", + "domains": [ + "tatianamaslanydaily.tumblr.com", + "maskofthedragon.tumblr.com", + "shieldfoss.tumblr.com", + "jujanon.tumblr.com", + "bartlebyshop.tumblr.com", + "afloweroutofstone.tumblr.com", + "prozdvoices.tumblr.com", + "dominustempori.tumblr.com", + "silami.tumblr.com", + "tumblr.com", + "patricia-taxxon.tumblr.com", + "silverfoxstole.tumblr.com", + "fansofcolor.tumblr.com" + ], + "regexps": [ + "https?://([^/?#&]+)\\.tumblr\\.com/(?:post|video|([a-zA-Z\\d-]+))/([0-9]+)(?:$|[/?#])" + ], + "regexp": "https?://([^/?#&]+)\\.tumblr\\.com/(?:post|video|([a-zA-Z\\d-]+))/([0-9]+)(?:$|[/?#])" + }, + "tunein": { + "name": "tunein", + "type": "free", + "domains": [ + "tunein.com" + ], + "regexps": [ + "https?://tunein\\.com/embed/player/([^/?#]+)", + "https?://tunein\\.com/podcasts(?:/[^/?#]+){1,2}(p\\d+)/?\\?(?:[^#]+&)?(?i:topicid)=(\\d+)", + "https?://tunein\\.com/podcasts(?:/[^/?#]+){1,2}(p\\d+)", + "https?://tunein\\.com/radio/[^/?#]+(s\\d+)" + ], + "regexp": "(https?://tunein\\.com/embed/player/([^/?#]+))|(https?://tunein\\.com/podcasts(?:/[^/?#]+){1,2}(p\\d+)/?\\?(?:[^#]+&)?(?i:topicid)=(\\d+))|(https?://tunein\\.com/podcasts(?:/[^/?#]+){1,2}(p\\d+))|(https?://tunein\\.com/radio/[^/?#]+(s\\d+))" + }, + "tv.dfb.de": { + "name": "tv.dfb.de", + "type": "free", + "domains": [], + "regexps": [ + "https?://tv\\.dfb\\.de/video/([^/]+)/(\\d+)" + ], + "regexp": "https?://tv\\.dfb\\.de/video/([^/]+)/(\\d+)" + }, + "tv2": { + "name": "tv2", + "type": "free", + "domains": [ + "tv2.no" + ], + "regexps": [ + "https?://(?:www\\.)?tv2\\.no/v(?:ideo)?\\d*/(?:[^?#]+/)*(\\d+)" + ], + "regexp": "https?://(?:www\\.)?tv2\\.no/v(?:ideo)?\\d*/(?:[^?#]+/)*(\\d+)" + }, + "tv2article": { + "name": "tv2article", + "type": "free", + "domains": [ + "tv2.no" + ], + "regexps": [ + "https?://(?:www\\.)?tv2\\.no/(?!v(?:ideo)?\\d*/)[^?#]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?tv2\\.no/(?!v(?:ideo)?\\d*/)[^?#]+/(\\d+)" + }, + "tv2dk": { + "name": "tv2dk", + "type": "free", + "domains": [ + "tvsyd.dk", + "tv2lorry.dk", + "tv2ostjylland.dk", + "tvmidtvest.dk", + "tv2fyn.dk", + "tv2east.dk", + "tv2nord.dk", + "tv2kosmopol.dk" + ], + "regexps": [ + "https?://(?:www\\.)?(?:tvsyd|tv2ostjylland|tvmidtvest|tv2fyn|tv2east|tv2lorry|tv2nord|tv2kosmopol)\\.dk/(?:[^/?#]+/)*([^/?\\#&]+)" + ], + "regexp": "https?://(?:www\\.)?(?:tvsyd|tv2ostjylland|tvmidtvest|tv2fyn|tv2east|tv2lorry|tv2nord|tv2kosmopol)\\.dk/(?:[^/?#]+/)*([^/?\\#&]+)" + }, + "tv2dkbornholmplay": { + "name": "tv2dkbornholmplay", + "type": "free", + "domains": [], + "regexps": [ + "https?://play\\.tv2bornholm\\.dk/\\?.*?\\bid=(\\d+)" + ], + "regexp": "https?://play\\.tv2bornholm\\.dk/\\?.*?\\bid=(\\d+)" + }, + "tv2play.hu": { + "name": "tv2play.hu", + "type": "free", + "domains": [ + "tv2play.hu" + ], + "regexps": [ + "https?://(?:www\\.)?tv2play\\.hu/(?!szalag/)([^#&?]+)" + ], + "regexp": "https?://(?:www\\.)?tv2play\\.hu/(?!szalag/)([^#&?]+)" + }, + "tv2playseries.hu": { + "name": "tv2playseries.hu", + "type": "free", + "domains": [ + "tv2play.hu" + ], + "regexps": [ + "https?://(?:www\\.)?tv2play\\.hu/szalag/([^#&?]+)" + ], + "regexp": "https?://(?:www\\.)?tv2play\\.hu/szalag/([^#&?]+)" + }, + "tv4": { + "name": "tv4", + "type": "free", + "domains": [ + "tv4.se", + "tv4play.se" + ], + "regexps": [ + "https?://(?:www\\.)?(?:tv4\\.se/(?:[^/]+)/klipp/(?:.*)-|tv4play\\.se/(?:(?:program|barn)/(?:(?:[^/]+/){1,2}|(?:[^\\?]+)\\?video_id=)|iframe/video/|film/|sport/|))([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?(?:tv4\\.se/(?:[^/]+)/klipp/(?:.*)-|tv4play\\.se/(?:(?:program|barn)/(?:(?:[^/]+/){1,2}|(?:[^\\?]+)\\?video_id=)|iframe/video/|film/|sport/|))([0-9]+)" + }, + "tv5monde": { + "name": "tv5monde", + "type": "free", + "domains": [ + "tv5monde.com" + ], + "regexps": [ + "https?://(?:www\\.)?tv5monde\\.com/tv/video/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?tv5monde\\.com/tv/video/([^/?#]+)" + }, + "tv5unis": { + "name": "tv5unis", + "type": "free", + "domains": [ + "tv5unis.ca" + ], + "regexps": [ + "https?://(?:www\\.)?tv5unis\\.ca/videos/([^/]+)(?:/saisons/(\\d+)/episodes/(\\d+))?/?(?:[?#&]|$)", + "https?://(?:www\\.)?tv5unis\\.ca/videos/[^/]+/(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?tv5unis\\.ca/videos/([^/]+)(?:/saisons/(\\d+)/episodes/(\\d+))?/?(?:[?#&]|$))|(https?://(?:www\\.)?tv5unis\\.ca/videos/[^/]+/(\\d+))" + }, + "tv8.it": { + "name": "tv8.it", + "type": "free", + "domains": [ + "tv8.it" + ], + "regexps": [ + "https?://(?:www\\.)?tv8\\.it/(?:show)?video/(?:[0-9a-z-]+-)?(\\d+)", + "https?://(?:www\\.)?tv8\\.it/streaming", + "https?://(?:www\\.)?tv8\\.it/(?!video)[^/#?]+/([^/#?]+)" + ], + "regexp": "(https?://(?:www\\.)?tv8\\.it/(?:show)?video/(?:[0-9a-z-]+-)?(\\d+))|(https?://(?:www\\.)?tv8\\.it/streaming)|(https?://(?:www\\.)?tv8\\.it/(?!video)[^/#?]+/([^/#?]+))" + }, + "tvanouvelles": { + "name": "tvanouvelles", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?tvanouvelles\\.ca/videos/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?tvanouvelles\\.ca/videos/(\\d+)" + }, + "tvanouvellesarticle": { + "name": "tvanouvellesarticle", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?tvanouvelles\\.ca/(?:[^/]+/)+([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?tvanouvelles\\.ca/(?:[^/]+/)+([^/?#&]+)" + }, + "tvaplus": { + "name": "tvaplus", + "type": "free", + "domains": [ + "tvaplus.ca" + ], + "regexps": [ + "https?://(?:www\\.)?tvaplus\\.ca/(?:[^/?#]+/)*[\\w-]+-(\\d+)(?:$|[#?])" + ], + "regexp": "https?://(?:www\\.)?tvaplus\\.ca/(?:[^/?#]+/)*[\\w-]+-(\\d+)(?:$|[#?])" + }, + "tvc": { + "name": "tvc", + "type": "free", + "domains": [ + "tvc.ru" + ], + "regexps": [ + "https?://(?:www\\.)?tvc\\.ru/video/iframe/id/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?tvc\\.ru/video/iframe/id/(\\d+)" + }, + "tvcarticle": { + "name": "tvcarticle", + "type": "free", + "domains": [ + "tvc.ru" + ], + "regexps": [ + "https?://(?:www\\.)?tvc\\.ru/(?!video/iframe/id/)([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?tvc\\.ru/(?!video/iframe/id/)([^?#]+)" + }, + "tver": { + "name": "tver", + "type": "free", + "domains": [ + "tver.jp" + ], + "regexps": [ + "https?://(?:www\\.)?tver\\.jp/(?:(lp|corner|series|episodes?|feature)/)+([a-zA-Z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?tver\\.jp/(?:(lp|corner|series|episodes?|feature)/)+([a-zA-Z0-9]+)" + }, + "tvigle": { + "name": "tvigle", + "type": "free", + "domains": [ + "tvigle.ru", + "cloud.tvigle.ru" + ], + "regexps": [ + "https?://(?:www\\.)?(?:tvigle\\.ru/(?:[^/]+/)+([^/]+)/$|cloud\\.tvigle\\.ru/video/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?(?:tvigle\\.ru/(?:[^/]+/)+([^/]+)/$|cloud\\.tvigle\\.ru/video/(\\d+))" + }, + "tviplayer": { + "name": "tviplayer", + "type": "free", + "domains": [ + "tviplayer.iol.pt" + ], + "regexps": [ + "https?://tviplayer\\.iol\\.pt(/programa/[\\w-]+/[a-f0-9]+)?/\\w+/(\\w+)" + ], + "regexp": "https?://tviplayer\\.iol\\.pt(/programa/[\\w-]+/[a-f0-9]+)?/\\w+/(\\w+)" + }, + "tvn24": { + "name": "tvn24", + "type": "free", + "domains": [ + "tvn24.pl", + "tvnmeteo.tvn24.pl", + "fakty.tvn24.pl", + "sport.tvn24.pl", + "tvn24bis.pl" + ], + "regexps": [ + "https?://(?:(?!eurosport)[^/]+\\.)?tvn24(?:bis)?\\.pl/(?:[^/?#]+/)*([^/?#]+)" + ], + "regexp": "https?://(?:(?!eurosport)[^/]+\\.)?tvn24(?:bis)?\\.pl/(?:[^/?#]+/)*([^/?#]+)" + }, + "tvnoe": { + "name": "tvnoe", + "type": "free", + "domains": [ + "tvnoe.cz" + ], + "regexps": [ + "https?://(?:www\\.)?tvnoe\\.cz/porad/([\\w-]+)" + ], + "regexp": "https?://(?:www\\.)?tvnoe\\.cz/porad/([\\w-]+)" + }, + "tvopengr": { + "name": "tvopengr", + "type": "free", + "domains": [ + "cdn.ethnos.gr", + "ethnos.gr", + "tvopen.gr" + ], + "regexps": [ + "(?:https?:)?//(?:www\\.|cdn\\.|)(?:tvopen|ethnos).gr/embed/(\\d+)", + "https?://((?:www\\.)?(?:tvopen|ethnos)\\.gr)/watch/(\\d+)/([^/]+)" + ], + "regexp": "((?:https?:)?//(?:www\\.|cdn\\.|)(?:tvopen|ethnos).gr/embed/(\\d+))|(https?://((?:www\\.)?(?:tvopen|ethnos)\\.gr)/watch/(\\d+)/([^/]+))" + }, + "tvp": { + "name": "tvp", + "type": "free", + "domains": [ + "tvp.pl", + "tvp.info", + "wiadomosci.tvp.pl", + "swipeto.pl", + "warszawa.tvp.pl", + "opole.tvp.pl", + "abc.tvp.pl", + "jp2.tvp.pl", + "vod.tvp.pl", + "krakow.tvp.pl", + "teleexpress.tvp.pl", + "sport.tvp.pl", + "tvpparlament.pl", + "tvpworld.com", + "stream.tvp.pl", + "tvpstream.vod.tvp.pl" + ], + "regexps": [ + "(?:tvp:|https?://(?:[^/]+\\.)?(?:tvp(?:parlament)?\\.pl|tvp\\.info|tvpworld\\.com|swipeto\\.pl)/(?:sess/(?:tvplayer\\.php\\?.*?object_id|TVPlayer2/(?:embed|api)\\.php\\?.*[Ii][Dd])|shared/details\\.php\\?.*?object_id)=)(\\d+)", + "https?://(?:[^/]+\\.)?(?:tvp(?:parlament)?\\.(?:pl|info)|tvpworld\\.com|swipeto\\.pl)/(?:(?!\\d+/)[^/]+/)*(\\d+)(?:[/?#]|$)", + "(?:tvpstream:|https?://(?:tvpstream\\.vod|stream)\\.tvp\\.pl/(?:\\?(?:[^&]+[&;])*channel_id=)?)(\\d*)", + "https?://vod\\.tvp\\.pl/[a-z\\d-]+,\\d+/[a-z\\d-]+-odcinki,(\\d+)(?:\\?[^#]+)?(?:#.+)?$" + ], + "regexp": "((?:tvp:|https?://(?:[^/]+\\.)?(?:tvp(?:parlament)?\\.pl|tvp\\.info|tvpworld\\.com|swipeto\\.pl)/(?:sess/(?:tvplayer\\.php\\?.*?object_id|TVPlayer2/(?:embed|api)\\.php\\?.*[Ii][Dd])|shared/details\\.php\\?.*?object_id)=)(\\d+))|(https?://(?:[^/]+\\.)?(?:tvp(?:parlament)?\\.(?:pl|info)|tvpworld\\.com|swipeto\\.pl)/(?:(?!\\d+/)[^/]+/)*(\\d+)(?:[/?#]|$))|((?:tvpstream:|https?://(?:tvpstream\\.vod|stream)\\.tvp\\.pl/(?:\\?(?:[^&]+[&;])*channel_id=)?)(\\d*))|(https?://vod\\.tvp\\.pl/[a-z\\d-]+,\\d+/[a-z\\d-]+-odcinki,(\\d+)(?:\\?[^#]+)?(?:#.+)?$)" + }, + "tvplayer": { + "name": "tvplayer", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?tvplayer\\.com/watch/([^/?#]+)" + ], + "regexp": "https?://(?:www\\.)?tvplayer\\.com/watch/([^/?#]+)" + }, + "tvplayhome": { + "name": "tvplayhome", + "type": "free", + "domains": [ + "play.tv3.lt", + "tv3play.skaties.lv", + "play.tv3.ee" + ], + "regexps": [ + "https?://(?:tv3?)?play\\.(?:tv3|skaties)\\.(lv|lt|ee)/(lives/)?[^?#&]+(?:episode|programme|clip)-(\\d+)" + ], + "regexp": "https?://(?:tv3?)?play\\.(?:tv3|skaties)\\.(lv|lt|ee)/(lives/)?[^?#&]+(?:episode|programme|clip)-(\\d+)" + }, + "tvw": { + "name": "tvw", + "type": "free", + "domains": [ + "tvw.org" + ], + "regexps": [ + "https?://(?:www\\.)?tvw\\.org/video/([^/?#]+)", + "https?://(?:www\\.)?tvw\\.org/watch/?\\?(?:[^#]+&)?eventID=(\\d+)", + "https?://(?:www\\.)?tvw\\.org/\\d{4}/\\d{2}/([^/?#]+)", + "https?://(?:www\\.)?tvw\\.org/tvchannels/([^/?#]+)" + ], + "regexp": "(https?://(?:www\\.)?tvw\\.org/video/([^/?#]+))|(https?://(?:www\\.)?tvw\\.org/watch/?\\?(?:[^#]+&)?eventID=(\\d+))|(https?://(?:www\\.)?tvw\\.org/\\d{4}/\\d{2}/([^/?#]+))|(https?://(?:www\\.)?tvw\\.org/tvchannels/([^/?#]+))" + }, + "tweakers": { + "name": "tweakers", + "type": "free", + "domains": [], + "regexps": [ + "https?://tweakers\\.net/video/(\\d+)" + ], + "regexp": "https?://tweakers\\.net/video/(\\d+)" + }, + "twitcasting": { + "name": "twitcasting", + "type": "free", + "domains": [ + "twitcasting.tv" + ], + "regexps": [ + "https?://(?:[^/?#]+\\.)?twitcasting\\.tv/([^/?#]+)/(?:movie|twplayer)/(\\d+)" + ], + "regexp": "https?://(?:[^/?#]+\\.)?twitcasting\\.tv/([^/?#]+)/(?:movie|twplayer)/(\\d+)" + }, + "twitcastinglive": { + "name": "twitcastinglive", + "type": "free", + "domains": [ + "twitcasting.tv" + ], + "regexps": [ + "https?://(?:[^/?#]+\\.)?twitcasting\\.tv/([^/?#]+)/?(?:[#?]|$)" + ], + "regexp": "https?://(?:[^/?#]+\\.)?twitcasting\\.tv/([^/?#]+)/?(?:[#?]|$)" + }, + "twitcastinguser": { + "name": "twitcastinguser", + "type": "free", + "domains": [ + "twitcasting.tv" + ], + "regexps": [ + "https?://(?:[^/?#]+\\.)?twitcasting\\.tv/([^/?#]+)/(?:show|archive)/?(?:[#?]|$)" + ], + "regexp": "https?://(?:[^/?#]+\\.)?twitcasting\\.tv/([^/?#]+)/(?:show|archive)/?(?:[#?]|$)" + }, + "twitter": { + "name": "twitter", + "type": "free", + "domains": [ + "twitter.com", + "x.com", + "twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid.onion" + ], + "regexps": [ + "https?://amp\\.twimg\\.com/v/([0-9a-f\\-]{36})", + "https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/i/(broadcasts|events)/(\\w+)", + "https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/i/(?:cards/tfw/v1|videos(?:/tweet)?)/(\\d+)", + "https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/(?:(?:i/web|[^/]+)/status|statuses)/(\\d+)(?:/(?:video|photo)/(\\d+))?", + "https?://t\\.co/([^?#]+)|tco:([^?#]+)", + "https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/i/spaces/([0-9a-zA-Z]{13})" + ], + "regexp": "(https?://amp\\.twimg\\.com/v/([0-9a-f\\-]{36}))|(https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/i/(broadcasts|events)/(\\w+))|(https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/i/(?:cards/tfw/v1|videos(?:/tweet)?)/(\\d+))|(https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/(?:(?:i/web|[^/]+)/status|statuses)/(\\d+)(?:/(?:video|photo)/(\\d+))?)|(https?://t\\.co/([^?#]+)|tco:([^?#]+))|(https?://(?:(?:www|m(?:obile)?)\\.)?(?:(?:twitter|x)\\.com|twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4avyoid\\.onion)/i/spaces/([0-9a-zA-Z]{13}))" + }, + "txxx": { + "name": "txxx", + "type": "free", + "domains": [ + "txxx.com", + "txxx.tube", + "vxxx.com", + "hclips.com", + "hdzog.com", + "hdzog.tube", + "hotmovs.com", + "hotmovs.tube", + "inporn.com", + "privatehomeclips.com", + "tubepornclassic.com", + "upornia.com", + "upornia.tube", + "vjav.com", + "vjav.tube", + "voyeurhit.com", + "voyeurhit.tube" + ], + "regexps": [ + "https?://(?:www\\.)?(hclips\\.com|hdzog\\.com|hdzog\\.tube|hotmovs\\.com|hotmovs\\.tube|inporn\\.com|privatehomeclips\\.com|tubepornclassic\\.com|txxx\\.com|txxx\\.tube|upornia\\.com|upornia\\.tube|vjav\\.com|vjav\\.tube|vxxx\\.com|voyeurhit\\.com|voyeurhit\\.tube)/(?:videos?[/-]|embed/)(\\d+)(?:/([^/?#]+))?" + ], + "regexp": "https?://(?:www\\.)?(hclips\\.com|hdzog\\.com|hdzog\\.tube|hotmovs\\.com|hotmovs\\.tube|inporn\\.com|privatehomeclips\\.com|tubepornclassic\\.com|txxx\\.com|txxx\\.tube|upornia\\.com|upornia\\.tube|vjav\\.com|vjav\\.tube|vxxx\\.com|voyeurhit\\.com|voyeurhit\\.tube)/(?:videos?[/-]|embed/)(\\d+)(?:/([^/?#]+))?" + }, + "udemy": { + "name": "udemy", + "type": "free", + "domains": [ + "udemy.com", + "wipro.udemy.com" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?udemy\\.com/([^/?#&]+)", + "https?://(?:[^/]+\\.)?udemy\\.com/(?:[^#]+\\#/lecture/|lecture/view/?\\?lectureId=|[^/]+/learn/v4/t/lecture/)(\\d+)" + ], + "regexp": "(https?://(?:[^/]+\\.)?udemy\\.com/([^/?#&]+))|(https?://(?:[^/]+\\.)?udemy\\.com/(?:[^#]+\\#/lecture/|lecture/view/?\\?lectureId=|[^/]+/learn/v4/t/lecture/)(\\d+))" + }, + "udnembed": { + "name": "udnembed", + "type": "free", + "domains": [ + "video.udn.com" + ], + "regexps": [ + "https?://video\\.udn\\.com/(?:embed|play)/news/(\\d+)" + ], + "regexp": "https?://video\\.udn\\.com/(?:embed|play)/news/(\\d+)" + }, + "ufcarabia": { + "name": "ufcarabia", + "type": "free", + "domains": [], + "regexps": [ + "https?://((?:(?:app|www)\\.)?ufcarabia\\.(?:ae|com))/(live|playlist|video)/(\\d+)(?:\\?.*?\\bplaylistId=(\\d+))?" + ], + "regexp": "https?://((?:(?:app|www)\\.)?ufcarabia\\.(?:ae|com))/(live|playlist|video)/(\\d+)(?:\\?.*?\\bplaylistId=(\\d+))?" + }, + "ufctv": { + "name": "ufctv", + "type": "free", + "domains": [], + "regexps": [ + "https?://((?:(?:app|www)\\.)?(?:ufc\\.tv|(?:ufc)?fightpass\\.com)|ufcfightpass\\.img(?:dge|gaming)\\.com)/(live|playlist|video)/(\\d+)(?:\\?.*?\\bplaylistId=(\\d+))?" + ], + "regexp": "https?://((?:(?:app|www)\\.)?(?:ufc\\.tv|(?:ufc)?fightpass\\.com)|ufcfightpass\\.img(?:dge|gaming)\\.com)/(live|playlist|video)/(\\d+)(?:\\?.*?\\bplaylistId=(\\d+))?" + }, + "ukcolumn": { + "name": "ukcolumn", + "type": "free", + "domains": [ + "ukcolumn.org" + ], + "regexps": [ + "(?i)https?://(?:www\\.)?ukcolumn\\.org(/index\\.php)?/(?:video|ukcolumn-news)/([-a-z0-9]+)" + ], + "regexp": "(?i)https?://(?:www\\.)?ukcolumn\\.org(/index\\.php)?/(?:video|ukcolumn-news)/([-a-z0-9]+)" + }, + "uktvplay": { + "name": "uktvplay", + "type": "free", + "domains": [ + "uktvplay.uktv.co.uk", + "uktvplay.co.uk" + ], + "regexps": [ + "https?://uktvplay\\.(?:uktv\\.)?co\\.uk/(?:.+?\\?.*?\\bvideo=|([^/]+/)*)(\\d+)" + ], + "regexp": "https?://uktvplay\\.(?:uktv\\.)?co\\.uk/(?:.+?\\?.*?\\bvideo=|([^/]+/)*)(\\d+)" + }, + "ulizaplayer": { + "name": "ulizaplayer", + "type": "free", + "domains": [ + "player-api.p.uliza.jp" + ], + "regexps": [ + "https://player-api\\.p\\.uliza\\.jp/v1/players/[^?#]+\\?(?:[^#]*&)?name=([^#&]+)" + ], + "regexp": "https://player-api\\.p\\.uliza\\.jp/v1/players/[^?#]+\\?(?:[^#]*&)?name=([^#&]+)" + }, + "ulizaportal": { + "name": "ulizaportal", + "type": "free", + "domains": [ + "ulizaportal.jp" + ], + "regexps": [ + "https?://(?:www\\.)?ulizaportal\\.jp/pages/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + ], + "regexp": "https?://(?:www\\.)?ulizaportal\\.jp/pages/([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + }, + "umg": { + "name": "umg", + "type": "free", + "domains": [ + "universal-music.de" + ], + "regexps": [ + "https?://(?:www\\.)?universal-music\\.de/[^/?#]+/videos/([^/?#]+-(\\d+))" + ], + "regexp": "https?://(?:www\\.)?universal-music\\.de/[^/?#]+/videos/([^/?#]+-(\\d+))" + }, + "unistra": { + "name": "unistra", + "type": "free", + "domains": [ + "utv.unistra.fr" + ], + "regexps": [ + "https?://utv\\.unistra\\.fr/(?:index|video)\\.php\\?id_video\\=(\\d+)" + ], + "regexp": "https?://utv\\.unistra\\.fr/(?:index|video)\\.php\\?id_video\\=(\\d+)" + }, + "unitednationswebtv": { + "name": "unitednationswebtv", + "type": "free", + "domains": [ + "webtv.un.org" + ], + "regexps": [ + "https?://webtv\\.un\\.org/(?:ar|zh|en|fr|ru|es)/asset/\\w+/(\\w+)" + ], + "regexp": "https?://webtv\\.un\\.org/(?:ar|zh|en|fr|ru|es)/asset/\\w+/(\\w+)" + }, + "unity": { + "name": "unity", + "type": "free", + "domains": [ + "unity3d.com" + ], + "regexps": [ + "https?://(?:www\\.)?unity3d\\.com/learn/tutorials/(?:[^/]+/)*([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?unity3d\\.com/learn/tutorials/(?:[^/]+/)*([^/?#&]+)" + }, + "uol.com.br": { + "name": "uol.com.br", + "type": "free", + "domains": [ + "player.mais.uol.com.br", + "tvuol.uol.com.br", + "mais.uol.com.br", + "noticias.band.uol.com.br", + "videos.band.uol.com.br", + "noticias.uol.com.br" + ], + "regexps": [ + "https?://(?:.+?\\.)?uol\\.com\\.br/.*?(?:(?:mediaId|v)=|view/(?:[a-z0-9]+/)?|video(?:=|/(?:\\d{4}/\\d{2}/\\d{2}/)?))(\\d+|[\\w-]+-[A-Z0-9]+)" + ], + "regexp": "https?://(?:.+?\\.)?uol\\.com\\.br/.*?(?:(?:mediaId|v)=|view/(?:[a-z0-9]+/)?|video(?:=|/(?:\\d{4}/\\d{2}/\\d{2}/)?))(\\d+|[\\w-]+-[A-Z0-9]+)" + }, + "uplynk": { + "name": "uplynk", + "type": "free", + "domains": [], + "regexps": [ + "https?://[\\w-]+\\.uplynk\\.com/(ext/[0-9a-f]{32}/([^/?&]+)|([0-9a-f]{32}))\\.(?:m3u8|json)(?:.*?\\bpbs=([^&]+))?", + "https?://[\\w-]+\\.uplynk\\.com/preplay2?/(ext/[0-9a-f]{32}/([^/?&]+)|([0-9a-f]{32}))\\.json" + ], + "regexp": "(https?://[\\w-]+\\.uplynk\\.com/(ext/[0-9a-f]{32}/([^/?&]+)|([0-9a-f]{32}))\\.(?:m3u8|json)(?:.*?\\bpbs=([^&]+))?)|(https?://[\\w-]+\\.uplynk\\.com/preplay2?/(ext/[0-9a-f]{32}/([^/?&]+)|([0-9a-f]{32}))\\.json)" + }, + "urort": { + "name": "urort", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?urort\\.p3\\.no/#!/Band/([^/]+)$" + ], + "regexp": "https?://(?:www\\.)?urort\\.p3\\.no/#!/Band/([^/]+)$" + }, + "urplay": { + "name": "urplay", + "type": "free", + "domains": [ + "urplay.se", + "urskola.se" + ], + "regexps": [ + "https?://(?:www\\.)?ur(?:play|skola)\\.se/(?:program|Produkter)/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?ur(?:play|skola)\\.se/(?:program|Produkter)/([0-9]+)" + }, + "usanetwork": { + "name": "usanetwork", + "type": "free", + "domains": [ + "usanetwork.com" + ], + "regexps": [ + "https?(://(?:www\\.)?usanetwork\\.com/(?:[^/]+/videos?|movies?)/(?:[^/]+/)?(\\d+))" + ], + "regexp": "https?(://(?:www\\.)?usanetwork\\.com/(?:[^/]+/videos?|movies?)/(?:[^/]+/)?(\\d+))" + }, + "usatoday": { + "name": "usatoday", + "type": "free", + "domains": [ + "usatoday.com" + ], + "regexps": [ + "https?://(?:www\\.)?usatoday\\.com/(?:[^/]+/)*([^?/#]+)" + ], + "regexp": "https?://(?:www\\.)?usatoday\\.com/(?:[^/]+/)*([^?/#]+)" + }, + "ustream": { + "name": "ustream", + "type": "free", + "domains": [ + "ustream.tv", + "video.ibm.com" + ], + "regexps": [ + "https?://(?:www\\.)?ustream\\.tv/channel/(.+)", + "https?://(?:www\\.)?(?:ustream\\.tv|video\\.ibm\\.com)/(recorded|embed|embed/recorded)/(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?ustream\\.tv/channel/(.+))|(https?://(?:www\\.)?(?:ustream\\.tv|video\\.ibm\\.com)/(recorded|embed|embed/recorded)/(\\d+))" + }, + "ustudio": { + "name": "ustudio", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:(?:app|embed)\\.)?ustudio\\.com/embed/([^/]+)/([^/]+)", + "https?://(?:(?:www|v1)\\.)?ustudio\\.com/video/([^/]+)/([^/?#&]+)" + ], + "regexp": "(https?://(?:(?:app|embed)\\.)?ustudio\\.com/embed/([^/]+)/([^/]+))|(https?://(?:(?:www|v1)\\.)?ustudio\\.com/video/([^/]+)/([^/?#&]+))" + }, + "varzesh3": { + "name": "varzesh3", + "type": "free", + "domains": [ + "video.varzesh3.com" + ], + "regexps": [ + "https?://(?:www\\.)?video\\.varzesh3\\.com/(?:[^/]+/)+([^/]+)/?" + ], + "regexp": "https?://(?:www\\.)?video\\.varzesh3\\.com/(?:[^/]+/)+([^/]+)/?" + }, + "vbox7": { + "name": "vbox7", + "type": "free", + "domains": [ + "vbox7.com", + "i49.vbox7.com" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?vbox7\\.com/(?:play:|(?:emb/external\\.php|player/ext\\.swf)\\?.*?\\bvid=)([\\da-fA-F]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?vbox7\\.com/(?:play:|(?:emb/external\\.php|player/ext\\.swf)\\?.*?\\bvid=)([\\da-fA-F]+)" + }, + "veo": { + "name": "veo", + "type": "free", + "domains": [ + "app.veo.co" + ], + "regexps": [ + "https?://app\\.veo\\.co/matches/([0-9A-Za-z-_]+)" + ], + "regexp": "https?://app\\.veo\\.co/matches/([0-9A-Za-z-_]+)" + }, + "vevo": { + "name": "vevo", + "type": "free", + "domains": [ + "vevo.com", + "embed.vevo.com", + "tv.vevo.com" + ], + "regexps": [ + "(?:https?://(?:www\\.)?vevo\\.com/watch/(?!playlist|genre)(?:[^/]+/(?:[^/]+/)?)?|https?://cache\\.vevo\\.com/m/html/embed\\.html\\?video=|https?://videoplayer\\.vevo\\.com/embed/embedded\\?videoId=|https?://embed\\.vevo\\.com/.*?[?&]isrc=|https?://tv\\.vevo\\.com/watch/artist/(?:[^/]+)/|vevo:)([^&?#]+)" + ], + "regexp": "(?:https?://(?:www\\.)?vevo\\.com/watch/(?!playlist|genre)(?:[^/]+/(?:[^/]+/)?)?|https?://cache\\.vevo\\.com/m/html/embed\\.html\\?video=|https?://videoplayer\\.vevo\\.com/embed/embedded\\?videoId=|https?://embed\\.vevo\\.com/.*?[?&]isrc=|https?://tv\\.vevo\\.com/watch/artist/(?:[^/]+)/|vevo:)([^&?#]+)" + }, + "vevoplaylist": { + "name": "vevoplaylist", + "type": "free", + "domains": [ + "vevo.com" + ], + "regexps": [ + "https?://(?:www\\.)?vevo\\.com/watch/(playlist|genre)/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?vevo\\.com/watch/(playlist|genre)/([^/?#&]+)" + }, + "vgtv": { + "name": "vgtv", + "type": "free", + "domains": [ + "vgtv.no", + "aftenposten.no", + "tv.vg.no", + "bt.no", + "ap.vgtv.no", + "tv.aftonbladet.se", + "aftonbladet.se" + ], + "regexps": [ + "(?:https?://(?:www\\.)?(tv.vg.no|vgtv.no|bt.no/tv|aftenbladet.no/tv|fvn.no/fvntv|aftenposten.no/webtv|ap.vgtv.no/webtv|tv.aftonbladet.se|tv.aftonbladet.se/abtv|www.aftonbladet.se/tv)/?(?:(?:\\#!/)?(?:video|live)/|embed?.*id=|a(?:rticles)?/)|(vgtv|bttv|satv|fvntv|aptv|abtv):)(\\d+)" + ], + "regexp": "(?:https?://(?:www\\.)?(tv.vg.no|vgtv.no|bt.no/tv|aftenbladet.no/tv|fvn.no/fvntv|aftenposten.no/webtv|ap.vgtv.no/webtv|tv.aftonbladet.se|tv.aftonbladet.se/abtv|www.aftonbladet.se/tv)/?(?:(?:\\#!/)?(?:video|live)/|embed?.*id=|a(?:rticles)?/)|(vgtv|bttv|satv|fvntv|aptv|abtv):)(\\d+)" + }, + "vh1.com": { + "name": "vh1.com", + "type": "free", + "domains": [ + "vh1.com" + ], + "regexps": [ + "https?://(?:www\\.)?vh1\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + ], + "regexp": "https?://(?:www\\.)?vh1\\.com/(?:video-clips|episodes)/([\\da-z]{6})" + }, + "vhx": { + "name": "vhx", + "type": "free", + "domains": [], + "regexps": [ + "https?://embed\\.vhx\\.tv/videos/(\\d+)" + ], + "regexp": "https?://embed\\.vhx\\.tv/videos/(\\d+)" + }, + "vice": { + "name": "vice", + "type": "free", + "domains": [ + "vice.com", + "video.vice.com", + "vms.vice.com", + "viceland.com", + "vicetv.com" + ], + "regexps": [ + "https?://(?:www\\.)?vice\\.com/([^/]+)/article/(?:[0-9a-z]{6}/)?([^?#]+)", + "https?://(?:(?:video|vms)\\.vice|(?:www\\.)?vice(?:land|tv))\\.com/([^/]+)/(?:video/[^/]+|embed)/([\\da-f]{24})", + "https?://(?:video\\.vice|(?:www\\.)?vice(?:land|tv))\\.com/([^/]+)/show/([^/?#&]+)" + ], + "regexp": "(https?://(?:www\\.)?vice\\.com/([^/]+)/article/(?:[0-9a-z]{6}/)?([^?#]+))|(https?://(?:(?:video|vms)\\.vice|(?:www\\.)?vice(?:land|tv))\\.com/([^/]+)/(?:video/[^/]+|embed)/([\\da-f]{24}))|(https?://(?:video\\.vice|(?:www\\.)?vice(?:land|tv))\\.com/([^/]+)/show/([^/?#&]+))" + }, + "viddler": { + "name": "viddler", + "type": "free", + "domains": [ + "viddler.com" + ], + "regexps": [ + "https?://(?:www\\.)?viddler\\.com/(?:v|embed|player)/([a-z0-9]+)(?:.+?\\bsecret=(\\d+))?" + ], + "regexp": "https?://(?:www\\.)?viddler\\.com/(?:v|embed|player)/([a-z0-9]+)(?:.+?\\bsecret=(\\d+))?" + }, + "videa": { + "name": "videa", + "type": "free", + "domains": [ + "videa.hu", + "videakid.hu" + ], + "regexps": [ + "https?://videa(?:kid)?\\.hu/(?:videok/(?:[^/]+/)*[^?#&]+-|(?:videojs_)?player\\?.*?\\bv=|player/v/)([^?#&]+)" + ], + "regexp": "https?://videa(?:kid)?\\.hu/(?:videok/(?:[^/]+/)*[^?#&]+-|(?:videojs_)?player\\?.*?\\bv=|player/v/)([^?#&]+)" + }, + "video.arnes.si": { + "name": "video.arnes.si", + "type": "free", + "domains": [ + "video.arnes.si" + ], + "regexps": [ + "https?://video\\.arnes\\.si/(?:[a-z]{2}/)?(?:watch|embed|api/(?:asset|public/video))/([0-9a-zA-Z]{12})" + ], + "regexp": "https?://video\\.arnes\\.si/(?:[a-z]{2}/)?(?:watch|embed|api/(?:asset|public/video))/([0-9a-zA-Z]{12})" + }, + "video.google": { + "name": "video.google", + "type": "free", + "domains": [], + "regexps": [ + "gvsearch(|[1-9][0-9]*|all):([\\s\\S]+)" + ], + "regexp": "gvsearch(|[1-9][0-9]*|all):([\\s\\S]+)" + }, + "video.sky.it": { + "name": "video.sky.it", + "type": "free", + "domains": [ + "video.sky.it", + "xfactor.sky.it", + "masterchef.sky.it" + ], + "regexps": [ + "https?://(?:masterchef|video|xfactor)\\.sky\\.it(?:/[^/]+)*/video/[0-9a-z-]+-(\\d+)", + "https?://video\\.sky\\.it/diretta/([^/?&#]+)" + ], + "regexp": "(https?://(?:masterchef|video|xfactor)\\.sky\\.it(?:/[^/]+)*/video/[0-9a-z-]+-(\\d+))|(https?://video\\.sky\\.it/diretta/([^/?&#]+))" + }, + "videodetective": { + "name": "videodetective", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?videodetective\\.com/[^/]+/[^/]+/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?videodetective\\.com/[^/]+/[^/]+/(\\d+)" + }, + "videofy.me": { + "name": "videofy.me", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.videofy\\.me/.+?|p\\.videofy\\.me/v)/(\\d+)(&|#|$)" + ], + "regexp": "https?://(?:www\\.videofy\\.me/.+?|p\\.videofy\\.me/v)/(\\d+)(&|#|$)" + }, + "videoken": { + "name": "videoken", + "type": "free", + "domains": [ + "videos.neurips.cc", + "videos.icts.res.in", + "videos.cncf.io" + ], + "regexps": [ + "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/(?:(?:topic|category)/[^/#?]+/)?video/([\\w-]+)" + ], + "regexp": "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/(?:(?:topic|category)/[^/#?]+/)?video/([\\w-]+)" + }, + "videokencategory": { + "name": "videokencategory", + "type": "free", + "domains": [ + "videos.icts.res.in", + "videos.neurips.cc", + "videos.cncf.io" + ], + "regexps": [ + "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/category/(\\d+)/?(?:$|[?#])" + ], + "regexp": "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/category/(\\d+)/?(?:$|[?#])" + }, + "videokenplayer": { + "name": "videokenplayer", + "type": "free", + "domains": [ + "player.videoken.com" + ], + "regexps": [ + "https?://player\\.videoken\\.com/embed/slideslive-(\\d+)" + ], + "regexp": "https?://player\\.videoken\\.com/embed/slideslive-(\\d+)" + }, + "videokenplaylist": { + "name": "videokenplaylist", + "type": "free", + "domains": [ + "videos.icts.res.in" + ], + "regexps": [ + "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/(?:category/\\d+/)?playlist/(\\d+)" + ], + "regexp": "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/(?:category/\\d+/)?playlist/(\\d+)" + }, + "videokentopic": { + "name": "videokentopic", + "type": "free", + "domains": [ + "videos.neurips.cc", + "videos.icts.res.in", + "videos.cncf.io" + ], + "regexps": [ + "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/topic/([^/#?]+)/?(?:$|[?#])" + ], + "regexp": "https?://(videos\\.icts\\.res\\.in|videos\\.cncf\\.io|videos\\.neurips\\.cc)/topic/([^/#?]+)/?(?:$|[?#])" + }, + "videomore": { + "name": "videomore", + "type": "free", + "domains": [ + "videomore.ru", + "player.videomore.ru", + "odysseus.more.tv", + "siren.more.tv", + "more.tv" + ], + "regexps": [ + "videomore:(\\d+)$|https?://(?:videomore\\.ru/(?:embed|[^/]+/[^/]+)/|(?:(?:player\\.)?videomore\\.ru|siren\\.more\\.tv/player)/[^/]*\\?.*?\\btrack_id=|odysseus\\.more.tv/player/(\\d+)/)(\\d+)(?:[/?#&]|\\.(?:xml|json)|$)", + "https?://(?:videomore\\.ru|more\\.tv)/(?!embed)([^/]+/[^/?#&]+)(?:/*|[?#&].*?)$", + "https?://(?:videomore\\.ru|more\\.tv)/((?:(?:[^/]+/){2})?[^/?#&]+)(?:/*|[?#&].*?)$" + ], + "regexp": "(videomore:(\\d+)$|https?://(?:videomore\\.ru/(?:embed|[^/]+/[^/]+)/|(?:(?:player\\.)?videomore\\.ru|siren\\.more\\.tv/player)/[^/]*\\?.*?\\btrack_id=|odysseus\\.more.tv/player/(\\d+)/)(\\d+)(?:[/?#&]|\\.(?:xml|json)|$))|(https?://(?:videomore\\.ru|more\\.tv)/(?!embed)([^/]+/[^/?#&]+)(?:/*|[?#&].*?)$)|(https?://(?:videomore\\.ru|more\\.tv)/((?:(?:[^/]+/){2})?[^/?#&]+)(?:/*|[?#&].*?)$)" + }, + "videopress": { + "name": "videopress", + "type": "free", + "domains": [ + "videopress.com", + "video.wordpress.com" + ], + "regexps": [ + "https?://video(?:\\.word)?press\\.com/embed/([\\da-zA-Z]{8})" + ], + "regexp": "https?://video(?:\\.word)?press\\.com/embed/([\\da-zA-Z]{8})" + }, + "vidflex": { + "name": "vidflex", + "type": "free", + "domains": [ + "video.hockeycanada.ca", + "myfbcgreenville.vidflex.tv", + "figureitoutbaseball.com", + "videos.telusworldofscienceedmonton.ca", + "tuffhedemantv.com", + "albertalacrossetv.com", + "silenticetv.com", + "jphl.vidflex.tv" + ], + "regexps": [ + "https?://(?:[^.]+\\.vidflex\\.tv|(?:www\\.)?acactv\\.ca|(?:www\\.)?albertalacrossetv\\.com|(?:www\\.)?cjfltv\\.com|(?:www\\.)?figureitoutbaseball\\.com|(?:www\\.)?ocaalive\\.com|(?:www\\.)?pegasussports\\.tv|(?:www\\.)?praxisseries\\.ca|(?:www\\.)?silenticetv\\.com|(?:www\\.)?tuffhedemantv\\.com|(?:www\\.)?watchfuntv\\.com|live\\.ofsaa\\.on\\.ca|tv\\.procoro\\.ca|tv\\.realcastmedia\\.net|tv\\.fringetheatre\\.ca|video\\.haisla\\.ca|video\\.hockeycanada\\.ca|video\\.huuayaht\\.org|video\\.turningpointensemble\\.ca|videos\\.livingworks\\.net|videos\\.telusworldofscienceedmonton\\.ca|watch\\.binghamtonbulldogs\\.com|watch\\.rekindle\\.tv|watch\\.wpca\\.com)/[a-z]{2}(?:-[a-z]{2})?/c/[\\w-]+\\.(\\d+)" + ], + "regexp": "https?://(?:[^.]+\\.vidflex\\.tv|(?:www\\.)?acactv\\.ca|(?:www\\.)?albertalacrossetv\\.com|(?:www\\.)?cjfltv\\.com|(?:www\\.)?figureitoutbaseball\\.com|(?:www\\.)?ocaalive\\.com|(?:www\\.)?pegasussports\\.tv|(?:www\\.)?praxisseries\\.ca|(?:www\\.)?silenticetv\\.com|(?:www\\.)?tuffhedemantv\\.com|(?:www\\.)?watchfuntv\\.com|live\\.ofsaa\\.on\\.ca|tv\\.procoro\\.ca|tv\\.realcastmedia\\.net|tv\\.fringetheatre\\.ca|video\\.haisla\\.ca|video\\.hockeycanada\\.ca|video\\.huuayaht\\.org|video\\.turningpointensemble\\.ca|videos\\.livingworks\\.net|videos\\.telusworldofscienceedmonton\\.ca|watch\\.binghamtonbulldogs\\.com|watch\\.rekindle\\.tv|watch\\.wpca\\.com)/[a-z]{2}(?:-[a-z]{2})?/c/[\\w-]+\\.(\\d+)" + }, + "vidio": { + "name": "vidio", + "type": "free", + "domains": [ + "vidio.com" + ], + "regexps": [ + "https?://(?:www\\.)?vidio\\.com/(watch|embed)/(\\d+)-([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?vidio\\.com/(watch|embed)/(\\d+)-([^/?#&]+)" + }, + "vidiolive": { + "name": "vidiolive", + "type": "free", + "domains": [ + "vidio.com" + ], + "regexps": [ + "https?://(?:www\\.)?vidio\\.com/live/(\\d+)-([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?vidio\\.com/live/(\\d+)-([^/?#&]+)" + }, + "vidiopremier": { + "name": "vidiopremier", + "type": "free", + "domains": [ + "vidio.com" + ], + "regexps": [ + "https?://(?:www\\.)?vidio\\.com/premier/(\\d+)/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?vidio\\.com/premier/(\\d+)/([^/?#&]+)" + }, + "vidlii": { + "name": "vidlii", + "type": "free", + "domains": [ + "vidlii.com" + ], + "regexps": [ + "https?://(?:www\\.)?vidlii\\.com/(?:watch|embed)\\?.*?\\bv=([0-9A-Za-z_-]{11})" + ], + "regexp": "https?://(?:www\\.)?vidlii\\.com/(?:watch|embed)\\?.*?\\bv=([0-9A-Za-z_-]{11})" + }, + "vidly": { + "name": "vidly", + "type": "free", + "domains": [ + "vid.ly", + "s.vid.ly" + ], + "regexps": [ + "https?://(?:vid\\.ly/|(?:s\\.)?vid\\.ly/embeded\\.html\\?(?:[^#]+&)?link=)(\\w+)" + ], + "regexp": "https?://(?:vid\\.ly/|(?:s\\.)?vid\\.ly/embeded\\.html\\?(?:[^#]+&)?link=)(\\w+)" + }, + "vids.io": { + "name": "vids.io", + "type": "free", + "domains": [ + "how-to-video.vids.io" + ], + "regexps": [ + "https?://[\\w-]+\\.vids\\.io/videos/([\\da-f]+)/([\\w-]+)" + ], + "regexp": "https?://[\\w-]+\\.vids\\.io/videos/([\\da-f]+)/([\\w-]+)" + }, + "vidyard": { + "name": "vidyard", + "type": "free", + "domains": [ + "vyexample03.hubs.vidyard.com", + "share.vidyard.com", + "embed.vidyard.com", + "thelink.hubs.vidyard.com", + "salesforce.vidyard.com", + "play.vidyard.com" + ], + "regexps": [ + "https?://[\\w-]+(?:\\.hubs)?\\.vidyard\\.com/watch/([\\w-]+)", + "https?://(?:embed|share)\\.vidyard\\.com/share/([\\w-]+)", + "https?://play\\.vidyard\\.com/(?:player/)?([\\w-]+)" + ], + "regexp": "(https?://[\\w-]+(?:\\.hubs)?\\.vidyard\\.com/watch/([\\w-]+))|(https?://(?:embed|share)\\.vidyard\\.com/share/([\\w-]+))|(https?://play\\.vidyard\\.com/(?:player/)?([\\w-]+))" + }, + "viewlift": { + "name": "viewlift", + "type": "free", + "domains": [ + "embed.snagfilms.com", + "snagfilms.com", + "main.snagfilms.com", + "winnersview.com", + "monumentalsportsnetwork.com", + "marquee.tv", + "hoichoi.tv", + "chorki.com" + ], + "regexps": [ + "https?://(?:(?:www|embed)\\.)?((?:(?:main\\.)?snagfilms|snagxtreme|funnyforfree|kiddovid|winnersview|(?:monumental|lax)sportsnetwork|vayafilm|failarmy|ftfnext|lnppass\\.legapallacanestro|moviespree|app\\.myoutdoortv|neoufitness|pflmma|theidentitytb|chorki)\\.com|(?:hoichoi|app\\.horseandcountry|kronon|marquee|supercrosslive)\\.tv)/embed/player\\?.*\\bfilmId=([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})", + "https?://(?:www\\.)?((?:(?:main\\.)?snagfilms|snagxtreme|funnyforfree|kiddovid|winnersview|(?:monumental|lax)sportsnetwork|vayafilm|failarmy|ftfnext|lnppass\\.legapallacanestro|moviespree|app\\.myoutdoortv|neoufitness|pflmma|theidentitytb|chorki)\\.com|(?:hoichoi|app\\.horseandcountry|kronon|marquee|supercrosslive)\\.tv)((?:/(?:films/title|show|(?:news/)?videos?|watch))?/([^?#]+))" + ], + "regexp": "(https?://(?:(?:www|embed)\\.)?((?:(?:main\\.)?snagfilms|snagxtreme|funnyforfree|kiddovid|winnersview|(?:monumental|lax)sportsnetwork|vayafilm|failarmy|ftfnext|lnppass\\.legapallacanestro|moviespree|app\\.myoutdoortv|neoufitness|pflmma|theidentitytb|chorki)\\.com|(?:hoichoi|app\\.horseandcountry|kronon|marquee|supercrosslive)\\.tv)/embed/player\\?.*\\bfilmId=([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12}))|(https?://(?:www\\.)?((?:(?:main\\.)?snagfilms|snagxtreme|funnyforfree|kiddovid|winnersview|(?:monumental|lax)sportsnetwork|vayafilm|failarmy|ftfnext|lnppass\\.legapallacanestro|moviespree|app\\.myoutdoortv|neoufitness|pflmma|theidentitytb|chorki)\\.com|(?:hoichoi|app\\.horseandcountry|kronon|marquee|supercrosslive)\\.tv)((?:/(?:films/title|show|(?:news/)?videos?|watch))?/([^?#]+)))" + }, + "viidea": { + "name": "viidea", + "type": "free", + "domains": [ + "videolectures.net" + ], + "regexps": [ + "https?://(?:www\\.)?(?:videolectures\\.net|flexilearn\\.viidea\\.net|presentations\\.ocwconsortium\\.org|video\\.travel-zoom\\.si|video\\.pomp-forum\\.si|tv\\.nil\\.si|video\\.hekovnik.com|video\\.szko\\.si|kpk\\.viidea\\.com|inside\\.viidea\\.net|video\\.kiberpipa\\.org|bvvideo\\.si|kongres\\.viidea\\.net|edemokracija\\.viidea\\.com)(?:/lecture)?/([^/]+)(?:/video/(\\d+))?/*(?:[#?].*)?$" + ], + "regexp": "https?://(?:www\\.)?(?:videolectures\\.net|flexilearn\\.viidea\\.net|presentations\\.ocwconsortium\\.org|video\\.travel-zoom\\.si|video\\.pomp-forum\\.si|tv\\.nil\\.si|video\\.hekovnik.com|video\\.szko\\.si|kpk\\.viidea\\.com|inside\\.viidea\\.net|video\\.kiberpipa\\.org|bvvideo\\.si|kongres\\.viidea\\.net|edemokracija\\.viidea\\.com)(?:/lecture)?/([^/]+)(?:/video/(\\d+))?/*(?:[#?].*)?$" + }, + "vimm": { + "name": "vimm", + "type": "free", + "domains": [ + "vimm.tv" + ], + "regexps": [ + "https?://(?:www\\.)?vimm\\.tv/(?:c/)?([0-9a-z-]+)$", + "https?://(?:www\\.)?vimm\\.tv/c/([0-9a-z-]+)\\?v=([0-9A-Za-z]+)" + ], + "regexp": "(https?://(?:www\\.)?vimm\\.tv/(?:c/)?([0-9a-z-]+)$)|(https?://(?:www\\.)?vimm\\.tv/c/([0-9a-z-]+)\\?v=([0-9A-Za-z]+))" + }, + "vimp": { + "name": "vimp", + "type": "free", + "domains": [ + "vimp.oth-regensburg.de", + "hsbi.de", + "videocampus.sachsen.de", + "www2.univ-sba.dz", + "vimp.weka-fachmedien.de" + ], + "regexps": [ + "(https?://(?:bergauf\\.tv|campus\\.demo\\.vimp\\.com|corporate\\.demo\\.vimp\\.com|dancehalldatabase\\.com|drehzahl\\.tv|educhannel\\.hs\\-gesundheit\\.de|emedia\\.ls\\.haw\\-hamburg\\.de|globale\\-evolution\\.net|hohu\\.tv|htvideos\\.hightechhigh\\.org|k210039\\.vimp\\.mivitec\\.net|media\\.cmslegal\\.com|media\\.fh\\-swf\\.de|media\\.hs\\-furtwangen\\.de|media\\.hwr\\-berlin\\.de|mediathek\\.dkfz\\.de|mediathek\\.htw\\-berlin\\.de|mediathek\\.polizei\\-bw\\.de|medien\\.hs\\-merseburg\\.de|mitmedia\\.manukau\\.ac\\.nz|mportal\\.europa\\-uni\\.de|pacific\\.demo\\.vimp\\.com|slctv\\.com|streaming\\.prairiesouth\\.ca|tube\\.isbonline\\.cn|univideo\\.uni\\-kassel\\.de|ursula2\\.genetics\\.emory\\.edu|ursulablicklevideoarchiv\\.com|v\\.agrarumweltpaedagogik\\.at|video\\.eplay\\-tv\\.de|video\\.fh\\-dortmund\\.de|video\\.hs\\-nb\\.de|video\\.hs\\-offenburg\\.de|video\\.hs\\-pforzheim\\.de|video\\.hspv\\.nrw\\.de|video\\.irtshdf\\.fr|video\\.pareygo\\.de|video\\.tu\\-dortmund\\.de|video\\.tu\\-freiberg\\.de|videocampus\\.sachsen\\.de|videoportal\\.uni\\-freiburg\\.de|videoportal\\.vm\\.uni\\-freiburg\\.de|videos\\.duoc\\.cl|videos\\.uni\\-paderborn\\.de|vimp\\-bemus\\.udk\\-berlin\\.de|vimp\\.aekwl\\.de|vimp\\.hs\\-mittweida\\.de|vimp\\.landesfilmdienste\\.de|vimp\\.oth\\-regensburg\\.de|vimp\\.ph\\-heidelberg\\.de|vimp\\.sma\\-events\\.com|vimp\\.weka\\-fachmedien\\.de|vimpdesk\\.com|webtv\\.univ\\-montp3\\.fr|www\\.b\\-tu\\.de/media|www\\.bergauf\\.tv|www\\.bigcitytv\\.de|www\\.cad\\-videos\\.de|www\\.drehzahl\\.tv|www\\.hohu\\.tv|www\\.hsbi\\.de/medienportal|www\\.logistic\\.tv|www\\.orvovideo\\.com|www\\.printtube\\.co\\.uk|www\\.rwe\\.tv|www\\.salzi\\.tv|www\\.signtube\\.co\\.uk|www\\.twb\\-power\\.com|www\\.wenglor\\-media\\.com|www2\\.univ\\-sba\\.dz))/(?:(album)/view/aid/([0-9]+)|(category|channel)/([\\w-]+)/([0-9]+)|(tag)/([0-9]+))", + "https?://(bergauf\\.tv|campus\\.demo\\.vimp\\.com|corporate\\.demo\\.vimp\\.com|dancehalldatabase\\.com|drehzahl\\.tv|educhannel\\.hs\\-gesundheit\\.de|emedia\\.ls\\.haw\\-hamburg\\.de|globale\\-evolution\\.net|hohu\\.tv|htvideos\\.hightechhigh\\.org|k210039\\.vimp\\.mivitec\\.net|media\\.cmslegal\\.com|media\\.fh\\-swf\\.de|media\\.hs\\-furtwangen\\.de|media\\.hwr\\-berlin\\.de|mediathek\\.dkfz\\.de|mediathek\\.htw\\-berlin\\.de|mediathek\\.polizei\\-bw\\.de|medien\\.hs\\-merseburg\\.de|mitmedia\\.manukau\\.ac\\.nz|mportal\\.europa\\-uni\\.de|pacific\\.demo\\.vimp\\.com|slctv\\.com|streaming\\.prairiesouth\\.ca|tube\\.isbonline\\.cn|univideo\\.uni\\-kassel\\.de|ursula2\\.genetics\\.emory\\.edu|ursulablicklevideoarchiv\\.com|v\\.agrarumweltpaedagogik\\.at|video\\.eplay\\-tv\\.de|video\\.fh\\-dortmund\\.de|video\\.hs\\-nb\\.de|video\\.hs\\-offenburg\\.de|video\\.hs\\-pforzheim\\.de|video\\.hspv\\.nrw\\.de|video\\.irtshdf\\.fr|video\\.pareygo\\.de|video\\.tu\\-dortmund\\.de|video\\.tu\\-freiberg\\.de|videocampus\\.sachsen\\.de|videoportal\\.uni\\-freiburg\\.de|videoportal\\.vm\\.uni\\-freiburg\\.de|videos\\.duoc\\.cl|videos\\.uni\\-paderborn\\.de|vimp\\-bemus\\.udk\\-berlin\\.de|vimp\\.aekwl\\.de|vimp\\.hs\\-mittweida\\.de|vimp\\.landesfilmdienste\\.de|vimp\\.oth\\-regensburg\\.de|vimp\\.ph\\-heidelberg\\.de|vimp\\.sma\\-events\\.com|vimp\\.weka\\-fachmedien\\.de|vimpdesk\\.com|webtv\\.univ\\-montp3\\.fr|www\\.b\\-tu\\.de/media|www\\.bergauf\\.tv|www\\.bigcitytv\\.de|www\\.cad\\-videos\\.de|www\\.drehzahl\\.tv|www\\.hohu\\.tv|www\\.hsbi\\.de/medienportal|www\\.logistic\\.tv|www\\.orvovideo\\.com|www\\.printtube\\.co\\.uk|www\\.rwe\\.tv|www\\.salzi\\.tv|www\\.signtube\\.co\\.uk|www\\.twb\\-power\\.com|www\\.wenglor\\-media\\.com|www2\\.univ\\-sba\\.dz)/(?:m/([0-9a-f]+)|(?:category/)?video/([\\w-]+)/([0-9a-f]{32})|media/embed.*(?:\\?|&)key=([0-9a-f]{32}&?))" + ], + "regexp": "((https?://(?:bergauf\\.tv|campus\\.demo\\.vimp\\.com|corporate\\.demo\\.vimp\\.com|dancehalldatabase\\.com|drehzahl\\.tv|educhannel\\.hs\\-gesundheit\\.de|emedia\\.ls\\.haw\\-hamburg\\.de|globale\\-evolution\\.net|hohu\\.tv|htvideos\\.hightechhigh\\.org|k210039\\.vimp\\.mivitec\\.net|media\\.cmslegal\\.com|media\\.fh\\-swf\\.de|media\\.hs\\-furtwangen\\.de|media\\.hwr\\-berlin\\.de|mediathek\\.dkfz\\.de|mediathek\\.htw\\-berlin\\.de|mediathek\\.polizei\\-bw\\.de|medien\\.hs\\-merseburg\\.de|mitmedia\\.manukau\\.ac\\.nz|mportal\\.europa\\-uni\\.de|pacific\\.demo\\.vimp\\.com|slctv\\.com|streaming\\.prairiesouth\\.ca|tube\\.isbonline\\.cn|univideo\\.uni\\-kassel\\.de|ursula2\\.genetics\\.emory\\.edu|ursulablicklevideoarchiv\\.com|v\\.agrarumweltpaedagogik\\.at|video\\.eplay\\-tv\\.de|video\\.fh\\-dortmund\\.de|video\\.hs\\-nb\\.de|video\\.hs\\-offenburg\\.de|video\\.hs\\-pforzheim\\.de|video\\.hspv\\.nrw\\.de|video\\.irtshdf\\.fr|video\\.pareygo\\.de|video\\.tu\\-dortmund\\.de|video\\.tu\\-freiberg\\.de|videocampus\\.sachsen\\.de|videoportal\\.uni\\-freiburg\\.de|videoportal\\.vm\\.uni\\-freiburg\\.de|videos\\.duoc\\.cl|videos\\.uni\\-paderborn\\.de|vimp\\-bemus\\.udk\\-berlin\\.de|vimp\\.aekwl\\.de|vimp\\.hs\\-mittweida\\.de|vimp\\.landesfilmdienste\\.de|vimp\\.oth\\-regensburg\\.de|vimp\\.ph\\-heidelberg\\.de|vimp\\.sma\\-events\\.com|vimp\\.weka\\-fachmedien\\.de|vimpdesk\\.com|webtv\\.univ\\-montp3\\.fr|www\\.b\\-tu\\.de/media|www\\.bergauf\\.tv|www\\.bigcitytv\\.de|www\\.cad\\-videos\\.de|www\\.drehzahl\\.tv|www\\.hohu\\.tv|www\\.hsbi\\.de/medienportal|www\\.logistic\\.tv|www\\.orvovideo\\.com|www\\.printtube\\.co\\.uk|www\\.rwe\\.tv|www\\.salzi\\.tv|www\\.signtube\\.co\\.uk|www\\.twb\\-power\\.com|www\\.wenglor\\-media\\.com|www2\\.univ\\-sba\\.dz))/(?:(album)/view/aid/([0-9]+)|(category|channel)/([\\w-]+)/([0-9]+)|(tag)/([0-9]+)))|(https?://(bergauf\\.tv|campus\\.demo\\.vimp\\.com|corporate\\.demo\\.vimp\\.com|dancehalldatabase\\.com|drehzahl\\.tv|educhannel\\.hs\\-gesundheit\\.de|emedia\\.ls\\.haw\\-hamburg\\.de|globale\\-evolution\\.net|hohu\\.tv|htvideos\\.hightechhigh\\.org|k210039\\.vimp\\.mivitec\\.net|media\\.cmslegal\\.com|media\\.fh\\-swf\\.de|media\\.hs\\-furtwangen\\.de|media\\.hwr\\-berlin\\.de|mediathek\\.dkfz\\.de|mediathek\\.htw\\-berlin\\.de|mediathek\\.polizei\\-bw\\.de|medien\\.hs\\-merseburg\\.de|mitmedia\\.manukau\\.ac\\.nz|mportal\\.europa\\-uni\\.de|pacific\\.demo\\.vimp\\.com|slctv\\.com|streaming\\.prairiesouth\\.ca|tube\\.isbonline\\.cn|univideo\\.uni\\-kassel\\.de|ursula2\\.genetics\\.emory\\.edu|ursulablicklevideoarchiv\\.com|v\\.agrarumweltpaedagogik\\.at|video\\.eplay\\-tv\\.de|video\\.fh\\-dortmund\\.de|video\\.hs\\-nb\\.de|video\\.hs\\-offenburg\\.de|video\\.hs\\-pforzheim\\.de|video\\.hspv\\.nrw\\.de|video\\.irtshdf\\.fr|video\\.pareygo\\.de|video\\.tu\\-dortmund\\.de|video\\.tu\\-freiberg\\.de|videocampus\\.sachsen\\.de|videoportal\\.uni\\-freiburg\\.de|videoportal\\.vm\\.uni\\-freiburg\\.de|videos\\.duoc\\.cl|videos\\.uni\\-paderborn\\.de|vimp\\-bemus\\.udk\\-berlin\\.de|vimp\\.aekwl\\.de|vimp\\.hs\\-mittweida\\.de|vimp\\.landesfilmdienste\\.de|vimp\\.oth\\-regensburg\\.de|vimp\\.ph\\-heidelberg\\.de|vimp\\.sma\\-events\\.com|vimp\\.weka\\-fachmedien\\.de|vimpdesk\\.com|webtv\\.univ\\-montp3\\.fr|www\\.b\\-tu\\.de/media|www\\.bergauf\\.tv|www\\.bigcitytv\\.de|www\\.cad\\-videos\\.de|www\\.drehzahl\\.tv|www\\.hohu\\.tv|www\\.hsbi\\.de/medienportal|www\\.logistic\\.tv|www\\.orvovideo\\.com|www\\.printtube\\.co\\.uk|www\\.rwe\\.tv|www\\.salzi\\.tv|www\\.signtube\\.co\\.uk|www\\.twb\\-power\\.com|www\\.wenglor\\-media\\.com|www2\\.univ\\-sba\\.dz)/(?:m/([0-9a-f]+)|(?:category/)?video/([\\w-]+)/([0-9a-f]{32})|media/embed.*(?:\\?|&)key=([0-9a-f]{32}&?)))" + }, + "viqeo": { + "name": "viqeo", + "type": "free", + "domains": [ + "cdn.viqeo.tv", + "api.viqeo.tv" + ], + "regexps": [ + "(?:viqeo:|https?://cdn\\.viqeo\\.tv/embed/*\\?.*?\\bvid=|https?://api\\.viqeo\\.tv/v\\d+/data/startup?.*?\\bvideo(?:%5B%5D|\\[\\])=)([\\da-f]+)" + ], + "regexp": "(?:viqeo:|https?://cdn\\.viqeo\\.tv/embed/*\\?.*?\\bvid=|https?://api\\.viqeo\\.tv/v\\d+/data/startup?.*?\\bvideo(?:%5B%5D|\\[\\])=)([\\da-f]+)" + }, + "viu": { + "name": "viu", + "type": "free", + "domains": [ + "viu.com", + "india.viu.com" + ], + "regexps": [ + "(?:viu:|https?://[^/]+\\.viu\\.com/[a-z]{2}/media/)(\\d+)", + "https?://(?:www\\.)?viu\\.com/ott/([a-z]{2})/([a-z]{2}-[a-z]{2})/vod/(\\d+)", + "https?://www\\.viu\\.com/[^/]+/listing/playlist-(\\d+)" + ], + "regexp": "((?:viu:|https?://[^/]+\\.viu\\.com/[a-z]{2}/media/)(\\d+))|(https?://(?:www\\.)?viu\\.com/ott/([a-z]{2})/([a-z]{2}-[a-z]{2})/vod/(\\d+))|(https?://www\\.viu\\.com/[^/]+/listing/playlist-(\\d+))" + }, + "viuottindonesia": { + "name": "viuottindonesia", + "type": "free", + "domains": [ + "viu.com" + ], + "regexps": [ + "https?://www\\.viu\\.com/ott/\\w+/\\w+/all/video-[\\w-]+-(\\d+)" + ], + "regexp": "https?://www\\.viu\\.com/ott/\\w+/\\w+/all/video-[\\w-]+-(\\d+)" + }, + "vk": { + "name": "vk", + "type": "free", + "domains": [ + "vk.com", + "vkvideo.ru", + "new.vk.com", + "vk.ru", + "vksport.vkvideo.ru", + "m.vk.com" + ], + "regexps": [ + "https?://(?:(?:(?:(?:m|new|vksport)\\.)?vk(?:(?:video)?\\.ru|\\.com)/video_|(?:www\\.)?daxab\\.com/)ext\\.php\\?(.*?\\boid=(-?\\d+).*?\\bid=(\\d+).*)|(?:(?:(?:m|new|vksport)\\.)?vk(?:(?:video)?\\.ru|\\.com)/(?:.+?\\?.*?z=)?(?:video|clip)|(?:www\\.)?daxab\\.com/embed/)(-?\\d+_\\d+)(?:.*\\blist=(([\\da-f]+)|(ln-[\\da-zA-Z]+)))?)", + "https?://(?:(?:m|new)\\.)?vk(?:video\\.ru|\\.com/video)/playlist/(-?\\d+_-?\\d+)", + "https?://(?:(?:m|new)\\.)?vk(?:video\\.ru|\\.com/video)/(@[^/?#]+)(?:/all)?/?(?!\\?.*\\bz=video)(?:[?#]|$)", + "https?://(?:(?:(?:(?:m|new)\\.)?vk\\.com/(?:[^?]+\\?.*\\bw=)?wall(-?\\d+_\\d+)))" + ], + "regexp": "(https?://(?:(?:(?:(?:m|new|vksport)\\.)?vk(?:(?:video)?\\.ru|\\.com)/video_|(?:www\\.)?daxab\\.com/)ext\\.php\\?(.*?\\boid=(-?\\d+).*?\\bid=(\\d+).*)|(?:(?:(?:m|new|vksport)\\.)?vk(?:(?:video)?\\.ru|\\.com)/(?:.+?\\?.*?z=)?(?:video|clip)|(?:www\\.)?daxab\\.com/embed/)(-?\\d+_\\d+)(?:.*\\blist=(([\\da-f]+)|(ln-[\\da-zA-Z]+)))?))|(https?://(?:(?:m|new)\\.)?vk(?:video\\.ru|\\.com/video)/playlist/(-?\\d+_-?\\d+))|(https?://(?:(?:m|new)\\.)?vk(?:video\\.ru|\\.com/video)/(@[^/?#]+)(?:/all)?/?(?!\\?.*\\bz=video)(?:[?#]|$))|(https?://(?:(?:(?:(?:m|new)\\.)?vk\\.com/(?:[^?]+\\?.*\\bw=)?wall(-?\\d+_\\d+))))" + }, + "vkplay": { + "name": "vkplay", + "type": "free", + "domains": [ + "vkplay.live", + "live.vkplay.ru", + "live.vkvideo.ru" + ], + "regexps": [ + "https?://(?:vkplay\\.live|live\\.vk(?:play|video)\\.ru)/([^/#?]+)/record/([\\da-f-]+)" + ], + "regexp": "https?://(?:vkplay\\.live|live\\.vk(?:play|video)\\.ru)/([^/#?]+)/record/([\\da-f-]+)" + }, + "vkplaylive": { + "name": "vkplaylive", + "type": "free", + "domains": [ + "vkplay.live", + "live.vkplay.ru", + "live.vkvideo.ru" + ], + "regexps": [ + "https?://(?:vkplay\\.live|live\\.vk(?:play|video)\\.ru)/([^/#?]+)/?(?:[#?]|$)" + ], + "regexp": "https?://(?:vkplay\\.live|live\\.vk(?:play|video)\\.ru)/([^/#?]+)/?(?:[#?]|$)" + }, + "vm.tiktok": { + "name": "vm.tiktok", + "type": "free", + "domains": [ + "tiktok.com", + "vm.tiktok.com", + "vt.tiktok.com" + ], + "regexps": [ + "https?://(?:(?:vm|vt)\\.tiktok\\.com|(?:www\\.)tiktok\\.com/t)/(\\w+)" + ], + "regexp": "https?://(?:(?:vm|vt)\\.tiktok\\.com|(?:www\\.)tiktok\\.com/t)/(\\w+)" + }, + "vocaroo": { + "name": "vocaroo", + "type": "free", + "domains": [ + "vocaroo.com", + "voca.ro" + ], + "regexps": [ + "https?://(?:www\\.)?(?:vocaroo\\.com|voca\\.ro)/(?:embed/)?(\\w+)" + ], + "regexp": "https?://(?:www\\.)?(?:vocaroo\\.com|voca\\.ro)/(?:embed/)?(\\w+)" + }, + "vodpl": { + "name": "vodpl", + "type": "free", + "domains": [ + "vod.pl" + ], + "regexps": [ + "https?://vod\\.pl/(?:[^/]+/)+([0-9a-zA-Z]+)" + ], + "regexp": "https?://vod\\.pl/(?:[^/]+/)+([0-9a-zA-Z]+)" + }, + "vodplatform": { + "name": "vodplatform", + "type": "free", + "domains": [ + "vod-platform.net", + "embed.kwikmotion.com" + ], + "regexps": [ + "https?://(?:(?:www\\.)?vod-platform\\.net|embed\\.kwikmotion\\.com)/[eE]mbed/([^/?#]+)" + ], + "regexp": "https?://(?:(?:www\\.)?vod-platform\\.net|embed\\.kwikmotion\\.com)/[eE]mbed/([^/?#]+)" + }, + "voicy": { + "name": "voicy", + "type": "free", + "domains": [ + "voicy.jp" + ], + "regexps": [ + "https?://voicy\\.jp/channel/(\\d+)", + "https?://voicy\\.jp/channel/(\\d+)/(\\d+)" + ], + "regexp": "(https?://voicy\\.jp/channel/(\\d+))|(https?://voicy\\.jp/channel/(\\d+)/(\\d+))" + }, + "volejtv": { + "name": "volejtv", + "type": "free", + "domains": [ + "volej.tv" + ], + "regexps": [ + "https?://volej\\.tv/video/(\\d+)" + ], + "regexp": "https?://volej\\.tv/video/(\\d+)" + }, + "voxmedia": { + "name": "voxmedia", + "type": "free", + "domains": [ + "theverge.com", + "vox.com", + "sbnation.com" + ], + "regexps": [ + "https?://(?:www\\.)?(?:(?:theverge|vox|sbnation|eater|polygon|curbed|racked|funnyordie)\\.com|recode\\.net)/(?:[^/]+/)*([^/?]+)" + ], + "regexp": "https?://(?:www\\.)?(?:(?:theverge|vox|sbnation|eater|polygon|curbed|racked|funnyordie)\\.com|recode\\.net)/(?:[^/]+/)*([^/?]+)" + }, + "voxmediavolume": { + "name": "voxmediavolume", + "type": "free", + "domains": [], + "regexps": [ + "https?://volume\\.vox-cdn\\.com/embed/([0-9a-f]{9})" + ], + "regexp": "https?://volume\\.vox-cdn\\.com/embed/([0-9a-f]{9})" + }, + "vpro": { + "name": "vpro", + "type": "free", + "domains": [ + "tegenlicht.vpro.nl", + "vpro.nl", + "2doc.nl" + ], + "regexps": [ + "https?://(?:www\\.)?(?:(?:tegenlicht\\.)?vpro|2doc)\\.nl/(?:[^/]+/)*([^/]+)\\.html" + ], + "regexp": "https?://(?:www\\.)?(?:(?:tegenlicht\\.)?vpro|2doc)\\.nl/(?:[^/]+/)*([^/]+)\\.html" + }, + "vqq": { + "name": "vqq", + "type": "free", + "domains": [ + "v.qq.com" + ], + "regexps": [ + "https?://v\\.qq\\.com/x/cover/(\\w+)\\.html/?(?:[?#]|$)", + "https?://v\\.qq\\.com/x/(?:page|cover/(\\w+))/(\\w+)" + ], + "regexp": "(https?://v\\.qq\\.com/x/cover/(\\w+)\\.html/?(?:[?#]|$))|(https?://v\\.qq\\.com/x/(?:page|cover/(\\w+))/(\\w+))" + }, + "vrsquare": { + "name": "vrsquare", + "type": "free", + "domains": [ + "livr.jp" + ], + "regexps": [ + "https?://livr\\.jp/channel/(\\w+)", + "https?://livr\\.jp/contents/([\\w-]+)", + "https?://livr\\.jp/web-search/?\\?(?:[^#]+&)?w=[^#]+", + "https?://livr\\.jp/(?:category|headline)/(\\w+)" + ], + "regexp": "(https?://livr\\.jp/channel/(\\w+))|(https?://livr\\.jp/contents/([\\w-]+))|(https?://livr\\.jp/web-search/?\\?(?:[^#]+&)?w=[^#]+)|(https?://livr\\.jp/(?:category|headline)/(\\w+))" + }, + "vrt": { + "name": "vrt", + "type": "free", + "domains": [ + "vrt.be", + "sporza.be" + ], + "regexps": [ + "https?://(?:www\\.)?(vrt\\.be/vrtnws|sporza\\.be)/[a-z]{2}/\\d{4}/\\d{2}/\\d{2}/([^/?&#]+)" + ], + "regexp": "https?://(?:www\\.)?(vrt\\.be/vrtnws|sporza\\.be)/[a-z]{2}/\\d{4}/\\d{2}/\\d{2}/([^/?&#]+)" + }, + "vrtmax": { + "name": "vrtmax", + "type": "free", + "domains": [ + "vrt.be" + ], + "regexps": [ + "https?://(?:www\\.)?vrt\\.be/(?:vrtnu|vrtmax)/a-z/(?:[^/]+/){2}([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?vrt\\.be/(?:vrtnu|vrtmax)/a-z/(?:[^/]+/){2}([^/?#&]+)" + }, + "vtm": { + "name": "vtm", + "type": "free", + "domains": [ + "vtm.be" + ], + "regexps": [ + "https?://(?:www\\.)?vtm\\.be/[^/?#]+~v([\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12})" + ], + "regexp": "https?://(?:www\\.)?vtm\\.be/[^/?#]+~v([\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12})" + }, + "vtv": { + "name": "vtv", + "type": "free", + "domains": [ + "vtv.vn" + ], + "regexps": [ + "https?://(?:www\\.)?vtv\\.vn/video/[\\w-]*?(\\d+)\\.htm" + ], + "regexp": "https?://(?:www\\.)?vtv\\.vn/video/[\\w-]*?(\\d+)\\.htm" + }, + "vtvgo": { + "name": "vtvgo", + "type": "free", + "domains": [ + "vtvgo.vn" + ], + "regexps": [ + "https?://(?:www\\.)?vtvgo\\.vn/(kho-video|tin-tuc)/[\\w.-]*?(\\d+)(?:\\.[a-z]+|/)?(?:$|[?#])", + "https?://(?:www\\.)?vtvgo\\.vn/digital/detail\\.php\\?(?:[^#]+&)?content_id=(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?vtvgo\\.vn/(kho-video|tin-tuc)/[\\w.-]*?(\\d+)(?:\\.[a-z]+|/)?(?:$|[?#]))|(https?://(?:www\\.)?vtvgo\\.vn/digital/detail\\.php\\?(?:[^#]+&)?content_id=(\\d+))" + }, + "vtxtv": { + "name": "vtxtv", + "type": "free", + "domains": [ + "vtxtv.ch" + ], + "regexps": [ + "https?://(?:www\\.)?vtxtv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?vtxtv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "vtxtvlive": { + "name": "vtxtvlive", + "type": "free", + "domains": [ + "vtxtv.ch" + ], + "regexps": [ + "https?://(?:www\\.)?vtxtv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?vtxtv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "vtxtvrecordings": { + "name": "vtxtvrecordings", + "type": "free", + "domains": [ + "vtxtv.ch" + ], + "regexps": [ + "https?://(?:www\\.)?vtxtv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?vtxtv\\.ch/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "vuclip": { + "name": "vuclip", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:m\\.)?vuclip\\.com/w\\?.*?cid=([0-9]+)" + ], + "regexp": "https?://(?:m\\.)?vuclip\\.com/w\\?.*?cid=([0-9]+)" + }, + "vvvvid": { + "name": "vvvvid", + "type": "free", + "domains": [ + "vvvvid.it" + ], + "regexps": [ + "https?://(?:www\\.)?vvvvid\\.it/(?:#!)?(?:show|anime|film|series)/(\\d+)/[^/]+/(\\d+)/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?vvvvid\\.it/(?:#!)?(?:show|anime|film|series)/(\\d+)/[^/]+/(\\d+)/([0-9]+)" + }, + "vvvvidshow": { + "name": "vvvvidshow", + "type": "free", + "domains": [ + "vvvvid.it" + ], + "regexps": [ + "(https?://(?:www\\.)?vvvvid\\.it/(?:#!)?(?:show|anime|film|series)/(\\d+)(?:/([^/?&#]+))?)/?(?:[?#&]|$)" + ], + "regexp": "(https?://(?:www\\.)?vvvvid\\.it/(?:#!)?(?:show|anime|film|series)/(\\d+)(?:/([^/?&#]+))?)/?(?:[?#&]|$)" + }, + "walla": { + "name": "walla", + "type": "free", + "domains": [], + "regexps": [ + "https?://vod\\.walla\\.co\\.il/[^/]+/(\\d+)/(.+)" + ], + "regexp": "https?://vod\\.walla\\.co\\.il/[^/]+/(\\d+)/(.+)" + }, + "walytv": { + "name": "walytv", + "type": "free", + "domains": [ + "player.waly.tv" + ], + "regexps": [ + "https?://(?:www\\.)?player\\.waly\\.tv/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?player\\.waly\\.tv/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "walytvlive": { + "name": "walytvlive", + "type": "free", + "domains": [ + "player.waly.tv" + ], + "regexps": [ + "https?://(?:www\\.)?player\\.waly\\.tv/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?player\\.waly\\.tv/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "walytvrecordings": { + "name": "walytvrecordings", + "type": "free", + "domains": [ + "player.waly.tv" + ], + "regexps": [ + "https?://(?:www\\.)?player\\.waly\\.tv/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?player\\.waly\\.tv/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "washingtonpost": { + "name": "washingtonpost", + "type": "free", + "domains": [ + "washingtonpost.com" + ], + "regexps": [ + "https?://(?:www\\.)?washingtonpost\\.com/(?:[^/]+/)*([^/?#]+)", + "(?:washingtonpost:|https?://(?:www\\.)?washingtonpost\\.com/(?:video|posttv)/(?:[^/]+/)*)([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12})" + ], + "regexp": "(https?://(?:www\\.)?washingtonpost\\.com/(?:[^/]+/)*([^/?#]+))|((?:washingtonpost:|https?://(?:www\\.)?washingtonpost\\.com/(?:video|posttv)/(?:[^/]+/)*)([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}))" + }, + "wat.tv": { + "name": "wat.tv", + "type": "free", + "domains": [ + "wat.tv" + ], + "regexps": [ + "(?:wat:|https?://(?:www\\.)?wat\\.tv/video/.*-)([0-9a-z]+)" + ], + "regexp": "(?:wat:|https?://(?:www\\.)?wat\\.tv/video/.*-)([0-9a-z]+)" + }, + "watchespn": { + "name": "watchespn", + "type": "free", + "domains": [ + "espn.com" + ], + "regexps": [ + "https?://(?:www\\.)?espn\\.com/(?:watch|espnplus)/player/_/id/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})" + ], + "regexp": "https?://(?:www\\.)?espn\\.com/(?:watch|espnplus)/player/_/id/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})" + }, + "wdr": { + "name": "wdr", + "type": "free", + "domains": [ + "deviceids-medp.wdr.de" + ], + "regexps": [ + "https?://(?:deviceids-medp\\.wdr\\.de/ondemand/\\d+/|kinder\\.wdr\\.de/(?!mediathek/)[^#?]+-)(\\d+)\\.(?:js|assetjsonp)", + "https?://mobile-ondemand\\.wdr\\.de/.*?/fsk([0-9]+)/[0-9]+/[0-9]+/([0-9]+)_([0-9]+)" + ], + "regexp": "(https?://(?:deviceids-medp\\.wdr\\.de/ondemand/\\d+/|kinder\\.wdr\\.de/(?!mediathek/)[^#?]+-)(\\d+)\\.(?:js|assetjsonp))|(https?://mobile-ondemand\\.wdr\\.de/.*?/fsk([0-9]+)/[0-9]+/[0-9]+/([0-9]+)_([0-9]+))" + }, + "wdrelefant": { + "name": "wdrelefant", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)wdrmaus\\.de/elefantenseite/#(.+)" + ], + "regexp": "https?://(?:www\\.)wdrmaus\\.de/elefantenseite/#(.+)" + }, + "wdrpage": { + "name": "wdrpage", + "type": "free", + "domains": [ + "www1.wdr.de", + "wdrmaus.de", + "sportschau.de", + "kinder.wdr.de" + ], + "regexps": [ + "https?://(?:www\\d?\\.)?(?:(?:kinder\\.)?wdr\\d?|sportschau)\\.de/(?:mediathek/)?(?:[^/]+/)*([^/]+)\\.html|https?://(?:www\\.)wdrmaus.de/(?:[^/]+/)*?([^/?#.]+)(?:/?|/index\\.php5|\\.php5)$" + ], + "regexp": "https?://(?:www\\d?\\.)?(?:(?:kinder\\.)?wdr\\d?|sportschau)\\.de/(?:mediathek/)?(?:[^/]+/)*([^/]+)\\.html|https?://(?:www\\.)wdrmaus.de/(?:[^/]+/)*?([^/?#.]+)(?:/?|/index\\.php5|\\.php5)$" + }, + "web.archive": { + "name": "web.archive", + "type": "free", + "domains": [ + "web.archive.org" + ], + "regexps": [ + "(?:(ytarchive:)|(?:https?://)?web\\.archive\\.org/(?:web/)?(?:([0-9]{14})?[0-9A-Za-z_*]*/)?(?:https?(?::|%3[Aa])//)?(?:(?:\\w+\\.)?youtube\\.com(?::(?:80|443))?/watch(?:\\.php)?(?:\\?|%3[fF])(?:[^\\#]+(?:&|%26))?v(?:=|%3[dD])|(?:wayback-fakeurl\\.archive\\.org/yt/)))([0-9A-Za-z_-]{11})((?::([0-9]{14}))?$|(?:%26|[#&]|$))" + ], + "regexp": "(?:(ytarchive:)|(?:https?://)?web\\.archive\\.org/(?:web/)?(?:([0-9]{14})?[0-9A-Za-z_*]*/)?(?:https?(?::|%3[Aa])//)?(?:(?:\\w+\\.)?youtube\\.com(?::(?:80|443))?/watch(?:\\.php)?(?:\\?|%3[fF])(?:[^\\#]+(?:&|%26))?v(?:=|%3[dD])|(?:wayback-fakeurl\\.archive\\.org/yt/)))([0-9A-Za-z_-]{11})((?::([0-9]{14}))?$|(?:%26|[#&]|$))" + }, + "webcamerapl": { + "name": "webcamerapl", + "type": "free", + "domains": [ + "warszawa-plac-zamkowy.webcamera.pl", + "gdansk-stare-miasto.webcamera.pl" + ], + "regexps": [ + "https?://([\\w-]+)\\.webcamera\\.pl" + ], + "regexp": "https?://([\\w-]+)\\.webcamera\\.pl" + }, + "webcaster": { + "name": "webcaster", + "type": "free", + "domains": [ + "bl.webcaster.pro" + ], + "regexps": [ + "https?://bl\\.webcaster\\.pro/(?:quote|media)/start/free_([^/]+)" + ], + "regexp": "https?://bl\\.webcaster\\.pro/(?:quote|media)/start/free_([^/]+)" + }, + "webcasterfeed": { + "name": "webcasterfeed", + "type": "free", + "domains": [], + "regexps": [ + "https?://bl\\.webcaster\\.pro/feed/start/free_([^/]+)" + ], + "regexp": "https?://bl\\.webcaster\\.pro/feed/start/free_([^/]+)" + }, + "webofstories": { + "name": "webofstories", + "type": "free", + "domains": [ + "webofstories.com" + ], + "regexps": [ + "https?://(?:www\\.)?webofstories\\.com/play/(?:[^/]+/)?([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?webofstories\\.com/play/(?:[^/]+/)?([0-9]+)" + }, + "webofstoriesplaylist": { + "name": "webofstoriesplaylist", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?webofstories\\.com/playAll/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?webofstories\\.com/playAll/([^/]+)" + }, + "weibo": { + "name": "weibo", + "type": "free", + "domains": [ + "weibo.com", + "m.weibo.cn" + ], + "regexps": [ + "https?://(?:m\\.weibo\\.cn/(?:status|detail)|(?:www\\.)?weibo\\.com/\\d+)/([a-zA-Z0-9]+)" + ], + "regexp": "https?://(?:m\\.weibo\\.cn/(?:status|detail)|(?:www\\.)?weibo\\.com/\\d+)/([a-zA-Z0-9]+)" + }, + "weibouser": { + "name": "weibouser", + "type": "free", + "domains": [ + "weibo.com" + ], + "regexps": [ + "https?://(?:www\\.)?weibo\\.com/u/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?weibo\\.com/u/(\\d+)" + }, + "weibovideo": { + "name": "weibovideo", + "type": "free", + "domains": [ + "weibo.com", + "video.weibo.com" + ], + "regexps": [ + "https?://(?:www\\.)?weibo\\.com/tv/show/(\\d+:(?:[\\da-f]{32}|\\d{16,}))", + "https?://video\\.weibo\\.com/show/?\\?(?:[^#]+&)?fid=(\\d+:(?:[\\da-f]{32}|\\d{16,}))" + ], + "regexp": "(https?://(?:www\\.)?weibo\\.com/tv/show/(\\d+:(?:[\\da-f]{32}|\\d{16,})))|(https?://video\\.weibo\\.com/show/?\\?(?:[^#]+&)?fid=(\\d+:(?:[\\da-f]{32}|\\d{16,})))" + }, + "weiqitv": { + "name": "weiqitv", + "type": "free", + "domains": [ + "weiqitv.com" + ], + "regexps": [ + "https?://(?:www\\.)?weiqitv\\.com/index/video_play\\?videoId=([A-Za-z0-9]+)" + ], + "regexp": "https?://(?:www\\.)?weiqitv\\.com/index/video_play\\?videoId=([A-Za-z0-9]+)" + }, + "wetv": { + "name": "wetv", + "type": "free", + "domains": [ + "wetv.vip" + ], + "regexps": [ + "https?://(?:www\\.)?wetv\\.vip/(?:[^?#]+/)?play/(\\w+)(?:-[^?#]+)?/(\\w+)(?:-[^?#]+)?" + ], + "regexp": "https?://(?:www\\.)?wetv\\.vip/(?:[^?#]+/)?play/(\\w+)(?:-[^?#]+)?/(\\w+)(?:-[^?#]+)?" + }, + "wetvseries": { + "name": "wetvseries", + "type": "free", + "domains": [ + "wetv.vip" + ], + "regexps": [ + "https?://(?:www\\.)?wetv\\.vip/(?:[^?#]+/)?play/(\\w+)(?:-[^/?#]+)?/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.)?wetv\\.vip/(?:[^?#]+/)?play/(\\w+)(?:-[^/?#]+)?/?(?:[?#]|$)" + }, + "weverse": { + "name": "weverse", + "type": "free", + "domains": [ + "weverse.io" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/live/([\\d-]+)" + ], + "regexp": "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/live/([\\d-]+)" + }, + "weverselive": { + "name": "weverselive", + "type": "free", + "domains": [ + "weverse.io" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/?(?:[?#]|$)" + }, + "weverselivetab": { + "name": "weverselivetab", + "type": "free", + "domains": [ + "weverse.io" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/live/?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/live/?(?:[?#]|$)" + }, + "weversemedia": { + "name": "weversemedia", + "type": "free", + "domains": [ + "weverse.io" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/media/([\\d-]+)" + ], + "regexp": "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/media/([\\d-]+)" + }, + "weversemediatab": { + "name": "weversemediatab", + "type": "free", + "domains": [ + "weverse.io" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/media(?:/|/all|/new)?(?:[?#]|$)" + ], + "regexp": "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/media(?:/|/all|/new)?(?:[?#]|$)" + }, + "weversemoment": { + "name": "weversemoment", + "type": "free", + "domains": [ + "weverse.io" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/moment/([\\da-f]+)/post/([\\d-]+)" + ], + "regexp": "https?://(?:www\\.|m\\.)?weverse\\.io/([^/?#]+)/moment/([\\da-f]+)/post/([\\d-]+)" + }, + "wevidi": { + "name": "wevidi", + "type": "free", + "domains": [ + "wevidi.net" + ], + "regexps": [ + "https?://(?:www\\.)?wevidi\\.net/watch/([\\w-]{11})" + ], + "regexp": "https?://(?:www\\.)?wevidi\\.net/watch/([\\w-]{11})" + }, + "weyyak": { + "name": "weyyak", + "type": "free", + "domains": [ + "weyyak.com" + ], + "regexps": [ + "https?://weyyak\\.com/(\\w+)/(?:player/)?(episode|movie)/(\\d+)" + ], + "regexp": "https?://weyyak\\.com/(\\w+)/(?:player/)?(episode|movie)/(\\d+)" + }, + "whowatch": { + "name": "whowatch", + "type": "free", + "domains": [ + "whowatch.tv" + ], + "regexps": [ + "https?://whowatch\\.tv/viewer/(\\d+)" + ], + "regexp": "https?://whowatch\\.tv/viewer/(\\d+)" + }, + "whyp": { + "name": "whyp", + "type": "free", + "domains": [ + "whyp.it" + ], + "regexps": [ + "https?://(?:www\\.)?whyp\\.it/tracks/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?whyp\\.it/tracks/(\\d+)" + }, + "wikimedia.org": { + "name": "wikimedia.org", + "type": "free", + "domains": [ + "commons.wikimedia.org" + ], + "regexps": [ + "https?://commons\\.wikimedia\\.org/wiki/File:([^/#?]+)\\.\\w+" + ], + "regexp": "https?://commons\\.wikimedia\\.org/wiki/File:([^/#?]+)\\.\\w+" + }, + "wimbledon": { + "name": "wimbledon", + "type": "free", + "domains": [ + "wimbledon.com" + ], + "regexps": [ + "https?://(?:www\\.)?wimbledon\\.com/\\w+/video/media/(\\d+)\\.html" + ], + "regexp": "https?://(?:www\\.)?wimbledon\\.com/\\w+/video/media/(\\d+)\\.html" + }, + "wimtv": { + "name": "wimtv", + "type": "free", + "domains": [ + "platform.wim.tv" + ], + "regexps": [ + "(?x:\n https?://platform\\.wim\\.tv/\n (?:\n (?:embed/)?\\?\n |\\#/webtv/.+?/\n )\n (vod|live|cast)[=/]\n ([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}).*?)" + ], + "regexp": "(?x:\n https?://platform\\.wim\\.tv/\n (?:\n (?:embed/)?\\?\n |\\#/webtv/.+?/\n )\n (vod|live|cast)[=/]\n ([\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}).*?)" + }, + "winsportsvideo": { + "name": "winsportsvideo", + "type": "free", + "domains": [ + "winsports.co" + ], + "regexps": [ + "https?://www\\.winsports\\.co/videos/([\\w-]+)" + ], + "regexp": "https?://www\\.winsports\\.co/videos/([\\w-]+)" + }, + "wistia": { + "name": "wistia", + "type": "free", + "domains": [ + "fast.wistia.net", + "fast.wistia.com" + ], + "regexps": [ + "(?:wistia:|https?://(?:\\w+\\.)?wistia\\.(?:net|com)/(?:embed/)?(?:iframe|medias)/)([a-z0-9]{10})" + ], + "regexp": "(?:wistia:|https?://(?:\\w+\\.)?wistia\\.(?:net|com)/(?:embed/)?(?:iframe|medias)/)([a-z0-9]{10})" + }, + "wistiachannel": { + "name": "wistiachannel", + "type": "free", + "domains": [ + "fast.wistia.net" + ], + "regexps": [ + "(?:wistiachannel:|https?://(?:\\w+\\.)?wistia\\.(?:net|com)/(?:embed/)?channel/)([a-z0-9]{10})" + ], + "regexp": "(?:wistiachannel:|https?://(?:\\w+\\.)?wistia\\.(?:net|com)/(?:embed/)?channel/)([a-z0-9]{10})" + }, + "wistiaplaylist": { + "name": "wistiaplaylist", + "type": "free", + "domains": [ + "fast.wistia.net" + ], + "regexps": [ + "https?://(?:\\w+\\.)?wistia\\.(?:net|com)/(?:embed/)?playlists/([a-z0-9]{10})" + ], + "regexp": "https?://(?:\\w+\\.)?wistia\\.(?:net|com)/(?:embed/)?playlists/([a-z0-9]{10})" + }, + "wnl": { + "name": "wnl", + "type": "free", + "domains": [ + "omroepwnl.nl" + ], + "regexps": [ + "https?://(?:www\\.)?omroepwnl\\.nl/video/detail/([^/]+)__\\d+" + ], + "regexp": "https?://(?:www\\.)?omroepwnl\\.nl/video/detail/([^/]+)__\\d+" + }, + "worldstarhiphop": { + "name": "worldstarhiphop", + "type": "free", + "domains": [ + "worldstarhiphop.com", + "m.worldstarhiphop.com" + ], + "regexps": [ + "https?://(?:www|m)\\.worldstar(?:candy|hiphop)\\.com/(?:videos|android)/video\\.php\\?.*?\\bv=([^&]+)" + ], + "regexp": "https?://(?:www|m)\\.worldstar(?:candy|hiphop)\\.com/(?:videos|android)/video\\.php\\?.*?\\bv=([^&]+)" + }, + "wppilot": { + "name": "wppilot", + "type": "free", + "domains": [ + "pilot.wp.pl", + "wppilot" + ], + "regexps": [ + "(?:https?://pilot\\.wp\\.pl/(?:tv/?)?(?:\\?[^#]*)?#?|wppilot:)$", + "(?:https?://pilot\\.wp\\.pl/tv/?#|wppilot:)([a-z\\d-]+)" + ], + "regexp": "((?:https?://pilot\\.wp\\.pl/(?:tv/?)?(?:\\?[^#]*)?#?|wppilot:)$)|((?:https?://pilot\\.wp\\.pl/tv/?#|wppilot:)([a-z\\d-]+))" + }, + "wrestleuniverseppv": { + "name": "wrestleuniverseppv", + "type": "free", + "domains": [ + "wrestle-universe.com" + ], + "regexps": [ + "https?://(?:www\\.)?wrestle-universe\\.com/(?:(\\w{2})/)?lives/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?wrestle-universe\\.com/(?:(\\w{2})/)?lives/(\\w+)" + }, + "wrestleuniversevod": { + "name": "wrestleuniversevod", + "type": "free", + "domains": [ + "wrestle-universe.com" + ], + "regexps": [ + "https?://(?:www\\.)?wrestle-universe\\.com/(?:(\\w{2})/)?videos/(\\w+)" + ], + "regexp": "https?://(?:www\\.)?wrestle-universe\\.com/(?:(\\w{2})/)?videos/(\\w+)" + }, + "wsj": { + "name": "wsj", + "type": "free", + "domains": [ + "video-api.wsj.com", + "wsj.com", + "barrons.com" + ], + "regexps": [ + "(?:https?://video-api\\.wsj\\.com/api-video/player/iframe\\.html\\?.*?\\bguid=|https?://(?:www\\.)?(?:wsj|barrons)\\.com/video/(?:[^/]+/)+|wsj:)([a-fA-F0-9-]{36})" + ], + "regexp": "(?:https?://video-api\\.wsj\\.com/api-video/player/iframe\\.html\\?.*?\\bguid=|https?://(?:www\\.)?(?:wsj|barrons)\\.com/video/(?:[^/]+/)+|wsj:)([a-fA-F0-9-]{36})" + }, + "wsjarticle": { + "name": "wsjarticle", + "type": "free", + "domains": [ + "wsj.com" + ], + "regexps": [ + "(?i)https?://(?:www\\.)?wsj\\.com/(?:articles|opinion)/([^/?#&]+)" + ], + "regexp": "(?i)https?://(?:www\\.)?wsj\\.com/(?:articles|opinion)/([^/?#&]+)" + }, + "wwe": { + "name": "wwe", + "type": "free", + "domains": [ + "wwe.com", + "de.wwe.com" + ], + "regexps": [ + "https?://(?:[^/]+\\.)?wwe\\.com/(?:[^/]+/)*videos/([^/?#&]+)" + ], + "regexp": "https?://(?:[^/]+\\.)?wwe\\.com/(?:[^/]+/)*videos/([^/?#&]+)" + }, + "wyborcza": { + "name": "wyborcza", + "type": "free", + "domains": [ + "wyborcza.pl" + ], + "regexps": [ + "(?:wyborcza:video:|https?://wyborcza\\.pl/(?:api-)?video/)(\\d+)" + ], + "regexp": "(?:wyborcza:video:|https?://wyborcza\\.pl/(?:api-)?video/)(\\d+)" + }, + "wyborczapodcast": { + "name": "wyborczapodcast", + "type": "free", + "domains": [ + "wyborcza.pl", + "wysokieobcasy.pl" + ], + "regexps": [ + "https?://(?:www\\.)?(?:wyborcza\\.pl/podcast(?:/0,172673\\.html)?|wysokieobcasy\\.pl/wysokie-obcasy/0,176631\\.html)(?:\\?(?:[^&#]+?&)*podcast=(\\d+))?" + ], + "regexp": "https?://(?:www\\.)?(?:wyborcza\\.pl/podcast(?:/0,172673\\.html)?|wysokieobcasy\\.pl/wysokie-obcasy/0,176631\\.html)(?:\\?(?:[^&#]+?&)*podcast=(\\d+))?" + }, + "wykop": { + "name": "wykop", + "type": "free", + "domains": [ + "wykop.pl" + ], + "regexps": [ + "https?://(?:www\\.)?wykop\\.pl/link/(\\d+)/[^/]+/komentarz/(\\d+)", + "https?://(?:www\\.)?wykop\\.pl/link/(\\d+)", + "https?://(?:www\\.)?wykop\\.pl/wpis/(\\d+)/[^/#]+#(\\d+)", + "https?://(?:www\\.)?wykop\\.pl/wpis/(\\d+)" + ], + "regexp": "(https?://(?:www\\.)?wykop\\.pl/link/(\\d+)/[^/]+/komentarz/(\\d+))|(https?://(?:www\\.)?wykop\\.pl/link/(\\d+))|(https?://(?:www\\.)?wykop\\.pl/wpis/(\\d+)/[^/#]+#(\\d+))|(https?://(?:www\\.)?wykop\\.pl/wpis/(\\d+))" + }, + "xboxclips": { + "name": "xboxclips", + "type": "free", + "domains": [ + "xboxclips.com", + "gameclips.io" + ], + "regexps": [ + "https?://(?:www\\.)?(?:xboxclips\\.com|gameclips\\.io)/(?:video\\.php\\?.*vid=|[^/]+/)([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + ], + "regexp": "https?://(?:www\\.)?(?:xboxclips\\.com|gameclips\\.io)/(?:video\\.php\\?.*vid=|[^/]+/)([\\da-f]{8}-(?:[\\da-f]{4}-){3}[\\da-f]{12})" + }, + "xhamster": { + "name": "xhamster", + "type": "free", + "domains": [ + "xhamster.com", + "m.xhamster.com", + "it.xhamster.com", + "pt.xhamster.com", + "xhamster.one", + "xhamster.desi", + "xhamster2.com", + "xhamster11.com", + "xhamster26.com", + "de.xhamster.com", + "xhday.com", + "xhvid.com", + "xhamster20.desi" + ], + "regexps": [ + "https?://(?:[^/?#]+\\.)?(?:xhamster\\.(?:com|one|desi)|xhms\\.pro|xhamster\\d+\\.(?:com|desi)|xhday\\.com|xhvid\\.com)/(?:movies/([\\dA-Za-z]+)/([^/]*)\\.html|videos/([^/]*)-([\\dA-Za-z]+))" + ], + "regexp": "https?://(?:[^/?#]+\\.)?(?:xhamster\\.(?:com|one|desi)|xhms\\.pro|xhamster\\d+\\.(?:com|desi)|xhday\\.com|xhvid\\.com)/(?:movies/([\\dA-Za-z]+)/([^/]*)\\.html|videos/([^/]*)-([\\dA-Za-z]+))" + }, + "xhamsterembed": { + "name": "xhamsterembed", + "type": "free", + "domains": [ + "xhamster.com" + ], + "regexps": [ + "https?://(?:[^/?#]+\\.)?(?:xhamster\\.(?:com|one|desi)|xhms\\.pro|xhamster\\d+\\.(?:com|desi)|xhday\\.com|xhvid\\.com)/xembed\\.php\\?video=(\\d+)" + ], + "regexp": "https?://(?:[^/?#]+\\.)?(?:xhamster\\.(?:com|one|desi)|xhms\\.pro|xhamster\\d+\\.(?:com|desi)|xhday\\.com|xhvid\\.com)/xembed\\.php\\?video=(\\d+)" + }, + "xhamsteruser": { + "name": "xhamsteruser", + "type": "free", + "domains": [ + "xhamster.com", + "xhday.com", + "xhvid.com" + ], + "regexps": [ + "https?://(?:[^/?#]+\\.)?(?:xhamster\\.(?:com|one|desi)|xhms\\.pro|xhamster\\d+\\.(?:com|desi)|xhday\\.com|xhvid\\.com)/(?:(users)|creators)/([^/?#&]+)" + ], + "regexp": "https?://(?:[^/?#]+\\.)?(?:xhamster\\.(?:com|one|desi)|xhms\\.pro|xhamster\\d+\\.(?:com|desi)|xhday\\.com|xhvid\\.com)/(?:(users)|creators)/([^/?#&]+)" + }, + "xiaohongshu": { + "name": "xiaohongshu", + "type": "free", + "domains": [ + "xiaohongshu.com" + ], + "regexps": [ + "https?://www\\.xiaohongshu\\.com/(?:explore|discovery/item)/([\\da-f]+)" + ], + "regexp": "https?://www\\.xiaohongshu\\.com/(?:explore|discovery/item)/([\\da-f]+)" + }, + "ximalaya": { + "name": "ximalaya", + "type": "free", + "domains": [ + "ximalaya.com", + "m.ximalaya.com" + ], + "regexps": [ + "https?://(?:www\\.|m\\.)?ximalaya\\.com/(?:\\d+/)?album/([0-9]+)", + "https?://(?:www\\.|m\\.)?ximalaya\\.com/(?:(\\d+)/)?sound/([0-9]+)" + ], + "regexp": "(https?://(?:www\\.|m\\.)?ximalaya\\.com/(?:\\d+/)?album/([0-9]+))|(https?://(?:www\\.|m\\.)?ximalaya\\.com/(?:(\\d+)/)?sound/([0-9]+))" + }, + "xinpianchang": { + "name": "xinpianchang", + "type": "free", + "domains": [ + "xinpianchang.com" + ], + "regexps": [ + "https?://(www\\.)?xinpianchang\\.com/(a\\d+)" + ], + "regexp": "https?://(www\\.)?xinpianchang\\.com/(a\\d+)" + }, + "xminus": { + "name": "xminus", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?x-minus\\.org/track/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?x-minus\\.org/track/([0-9]+)" + }, + "xnxx": { + "name": "xnxx", + "type": "free", + "domains": [ + "xnxx.com", + "video.xnxx.com", + "xnxx3.com" + ], + "regexps": [ + "https?://(?:video|www)\\.xnxx3?\\.com/video-?([0-9a-z]+)/" + ], + "regexp": "https?://(?:video|www)\\.xnxx3?\\.com/video-?([0-9a-z]+)/" + }, + "xstream": { + "name": "xstream", + "type": "free", + "domains": [ + "frontend.xstream.dk" + ], + "regexps": [ + "(?:xstream:|https?://frontend\\.xstream\\.(?:dk|net)/)([^/]+)(?::|/feed/video/\\?.*?\\bid=)(\\d+)" + ], + "regexp": "(?:xstream:|https?://frontend\\.xstream\\.(?:dk|net)/)([^/]+)(?::|/feed/video/\\?.*?\\bid=)(\\d+)" + }, + "xvideos": { + "name": "xvideos", + "type": "free", + "domains": [ + "xvideos.com", + "flashservice.xvideos.com", + "static-hw.xvideos.com", + "xvideos.es", + "fr.xvideos.com", + "it.xvideos.com", + "de.xvideos.com" + ], + "regexps": [ + "https?://(?:(?:[^/]+\\.)?xvideos2?\\.com/video\\.?|(?:www\\.)?xvideos\\.es/video\\.?|(?:www|flashservice)\\.xvideos\\.com/embedframe/|static-hw\\.xvideos\\.com/swf/xv-player\\.swf\\?.*?\\bid_video=)([0-9a-z]+)", + "https?://((?:[^/?#]+\\.)?xvideos2?\\.com)/(?:profiles/|amateur-channels/)?[^/?#]+#quickies/a/(\\w+)" + ], + "regexp": "(https?://(?:(?:[^/]+\\.)?xvideos2?\\.com/video\\.?|(?:www\\.)?xvideos\\.es/video\\.?|(?:www|flashservice)\\.xvideos\\.com/embedframe/|static-hw\\.xvideos\\.com/swf/xv-player\\.swf\\?.*?\\bid_video=)([0-9a-z]+))|(https?://((?:[^/?#]+\\.)?xvideos2?\\.com)/(?:profiles/|amateur-channels/)?[^/?#]+#quickies/a/(\\w+))" + }, + "xxxymovies": { + "name": "xxxymovies", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?xxxymovies\\.com/videos/(\\d+)/([^/]+)" + ], + "regexp": "https?://(?:www\\.)?xxxymovies\\.com/videos/(\\d+)/([^/]+)" + }, + "yahoo": { + "name": "yahoo", + "type": "free", + "domains": [ + "screen.yahoo.com", + "uk.screen.yahoo.com", + "news.yahoo.com", + "yahoo.com", + "gma.yahoo.com", + "sports.yahoo.com", + "tw.news.yahoo.com", + "tw.video.yahoo.com", + "malaysia.news.yahoo.com", + "es-us.noticias.yahoo.com", + "news.yahoo.co.jp" + ], + "regexps": [ + "(https?://(?:([a-zA-Z]{2}(?:-[a-zA-Z]{2})?|malaysia)\\.)?(?:[\\da-zA-Z_-]+\\.)?yahoo\\.com/(?:[^/]+/)*([^?&#]*-[0-9]+(?:-[a-z]+)?)\\.html)", + "https?://news\\.yahoo\\.co\\.jp/(?:articles|feature)/([a-zA-Z0-9]+)" + ], + "regexp": "((https?://(?:([a-zA-Z]{2}(?:-[a-zA-Z]{2})?|malaysia)\\.)?(?:[\\da-zA-Z_-]+\\.)?yahoo\\.com/(?:[^/]+/)*([^?&#]*-[0-9]+(?:-[a-z]+)?)\\.html))|(https?://news\\.yahoo\\.co\\.jp/(?:articles|feature)/([a-zA-Z0-9]+))" + }, + "yandexdisk": { + "name": "yandexdisk", + "type": "free", + "domains": [ + "yadi.sk", + "disk.360.yandex.ru" + ], + "regexps": [ + "https?://(yadi\\.sk|disk\\.(?:360\\.)?yandex\\.(?:az|by|co(?:m(?:\\.(?:am|ge|tr))?|\\.il)|ee|fr|k[gz]|l[tv]|md|t[jm]|u[az]|ru))/(?:[di]/|public.*?\\bhash=)([^/?#&]+)" + ], + "regexp": "https?://(yadi\\.sk|disk\\.(?:360\\.)?yandex\\.(?:az|by|co(?:m(?:\\.(?:am|ge|tr))?|\\.il)|ee|fr|k[gz]|l[tv]|md|t[jm]|u[az]|ru))/(?:[di]/|public.*?\\bhash=)([^/?#&]+)" + }, + "yandexmusic": { + "name": "yandexmusic", + "type": "free", + "domains": [ + "music.yandex.ru", + "music.yandex.com" + ], + "regexps": [ + "https?://music\\.yandex\\.(ru|kz|ua|by|com)/album/(\\d+)", + "https?://music\\.yandex\\.(ru|kz|ua|by|com)/artist/(\\d+)/albums", + "https?://music\\.yandex\\.(ru|kz|ua|by|com)/artist/(\\d+)/tracks", + "https?://music\\.yandex\\.(ru|kz|ua|by|com)/users/([^/]+)/playlists/(\\d+)", + "https?://music\\.yandex\\.(ru|kz|ua|by|com)/album/(\\d+)/track/(\\d+)" + ], + "regexp": "(https?://music\\.yandex\\.(ru|kz|ua|by|com)/album/(\\d+))|(https?://music\\.yandex\\.(ru|kz|ua|by|com)/artist/(\\d+)/albums)|(https?://music\\.yandex\\.(ru|kz|ua|by|com)/artist/(\\d+)/tracks)|(https?://music\\.yandex\\.(ru|kz|ua|by|com)/users/([^/]+)/playlists/(\\d+))|(https?://music\\.yandex\\.(ru|kz|ua|by|com)/album/(\\d+)/track/(\\d+))" + }, + "yandexvideo": { + "name": "yandexvideo", + "type": "free", + "domains": [ + "yandex.ru", + "frontend.vh.yandex.ru" + ], + "regexps": [ + "https?://(?:yandex\\.ru(?:/(?:portal/(?:video|efir)|efir))?/?\\?.*?stream_id=|frontend\\.vh\\.yandex\\.ru/player/)((?:[\\da-f]{32}|[\\w-]{12}))" + ], + "regexp": "https?://(?:yandex\\.ru(?:/(?:portal/(?:video|efir)|efir))?/?\\?.*?stream_id=|frontend\\.vh\\.yandex\\.ru/player/)((?:[\\da-f]{32}|[\\w-]{12}))" + }, + "yandexvideopreview": { + "name": "yandexvideopreview", + "type": "free", + "domains": [ + "yandex.ru", + "yandex.com" + ], + "regexps": [ + "https?://(?:www\\.)?yandex\\.\\w{2,3}(?:\\.(?:am|ge|il|tr))?/video/preview(?:/?\\?.*?filmId=|/)(\\d+)" + ], + "regexp": "https?://(?:www\\.)?yandex\\.\\w{2,3}(?:\\.(?:am|ge|il|tr))?/video/preview(?:/?\\?.*?filmId=|/)(\\d+)" + }, + "yapfiles": { + "name": "yapfiles", + "type": "free", + "domains": [ + "yapfiles.ru", + "api.yapfiles.ru" + ], + "regexps": [ + "https?://(?:(?:www|api)\\.)?yapfiles\\.ru/get_player/*\\?.*?\\bv=(\\w+)" + ], + "regexp": "https?://(?:(?:www|api)\\.)?yapfiles\\.ru/get_player/*\\?.*?\\bv=(\\w+)" + }, + "yappy": { + "name": "yappy", + "type": "free", + "domains": [ + "yappy.media" + ], + "regexps": [ + "https?://yappy\\.media/video/(\\w+)" + ], + "regexp": "https?://yappy\\.media/video/(\\w+)" + }, + "yappyprofile": { + "name": "yappyprofile", + "type": "free", + "domains": [ + "yappy.media" + ], + "regexps": [ + "https?://yappy\\.media/profile/(\\w+)" + ], + "regexp": "https?://yappy\\.media/profile/(\\w+)" + }, + "yfanefa": { + "name": "yfanefa", + "type": "free", + "domains": [ + "yfanefa.com" + ], + "regexps": [ + "https?://(?:www\\.)?yfanefa\\.com/([^?#]+)" + ], + "regexp": "https?://(?:www\\.)?yfanefa\\.com/([^?#]+)" + }, + "yleareena": { + "name": "yleareena", + "type": "free", + "domains": [ + "areena.yle.fi" + ], + "regexps": [ + "https?://areena\\.yle\\.fi/(podcastit/)?([\\d-]+)" + ], + "regexp": "https?://areena\\.yle\\.fi/(podcastit/)?([\\d-]+)" + }, + "youjizz": { + "name": "youjizz", + "type": "free", + "domains": [ + "youjizz.com" + ], + "regexps": [ + "https?://(?:\\w+\\.)?youjizz\\.com/videos/(?:[^/#?]*-(\\d+)\\.html|embed/(\\d+))" + ], + "regexp": "https?://(?:\\w+\\.)?youjizz\\.com/videos/(?:[^/#?]*-(\\d+)\\.html|embed/(\\d+))" + }, + "youku": { + "name": "youku", + "type": "free", + "domains": [ + "player.youku.com", + "v.youku.com", + "play.tudou.com", + "list.youku.com" + ], + "regexps": [ + "(?:https?://((?:v|play(?:er)?)\\.(?:youku|tudou)\\.com/(?:v_show/id_|player\\.php/sid/)|video\\.tudou\\.com/v/)|youku:)([A-Za-z0-9]+)(?:\\.html|/v\\.swf|)", + "https?://list\\.youku\\.com/show/id_([0-9a-z]+)\\.html" + ], + "regexp": "((?:https?://((?:v|play(?:er)?)\\.(?:youku|tudou)\\.com/(?:v_show/id_|player\\.php/sid/)|video\\.tudou\\.com/v/)|youku:)([A-Za-z0-9]+)(?:\\.html|/v\\.swf|))|(https?://list\\.youku\\.com/show/id_([0-9a-z]+)\\.html)" + }, + "younowchannel": { + "name": "younowchannel", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?younow\\.com/([^/]+)/channel" + ], + "regexp": "https?://(?:www\\.)?younow\\.com/([^/]+)/channel" + }, + "younowlive": { + "name": "younowlive", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?younow\\.com/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?younow\\.com/([^/?#&]+)" + }, + "younowmoment": { + "name": "younowmoment", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?younow\\.com/[^/]+/([^/?#&]+)" + ], + "regexp": "https?://(?:www\\.)?younow\\.com/[^/]+/([^/?#&]+)" + }, + "youporn": { + "name": "youporn", + "type": "free", + "domains": [ + "youporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?youporn\\.com/(?:watch|embed)/(\\d+)(?:/([^/?#&]+))?/?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?youporn\\.com/(?:watch|embed)/(\\d+)(?:/([^/?#&]+))?/?(?:[#?]|$)" + }, + "youporncategory": { + "name": "youporncategory", + "type": "free", + "domains": [ + "youporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?youporn\\.com/(category)/([^/?#&]+)(?:/(popular|views|rating|time|duration))?/?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?youporn\\.com/(category)/([^/?#&]+)(?:/(popular|views|rating|time|duration))?/?(?:[#?]|$)" + }, + "youpornchannel": { + "name": "youpornchannel", + "type": "free", + "domains": [ + "youporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?youporn\\.com/(channel)/([^/?#&]+)(?:/(rating|views|duration))?/?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?youporn\\.com/(channel)/([^/?#&]+)(?:/(rating|views|duration))?/?(?:[#?]|$)" + }, + "youporncollection": { + "name": "youporncollection", + "type": "free", + "domains": [ + "youporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?youporn\\.com/(collection)s/videos/(\\d+)(?:/(rating|views|time|duration))?/?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?youporn\\.com/(collection)s/videos/(\\d+)(?:/(rating|views|time|duration))?/?(?:[#?]|$)" + }, + "youpornstar": { + "name": "youpornstar", + "type": "free", + "domains": [ + "youporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?youporn\\.com/(pornstar)/([^/?#&]+)(?:/(rating|views|duration))?/?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?youporn\\.com/(pornstar)/([^/?#&]+)(?:/(rating|views|duration))?/?(?:[#?]|$)" + }, + "youporntag": { + "name": "youporntag", + "type": "free", + "domains": [ + "youporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?youporn\\.com/porn(tag)s/([^/?#&]+)(?:/(views|rating|time|duration))?/?(?:[#?]|$)" + ], + "regexp": "https?://(?:www\\.)?youporn\\.com/porn(tag)s/([^/?#&]+)(?:/(views|rating|time|duration))?/?(?:[#?]|$)" + }, + "youpornvideos": { + "name": "youpornvideos", + "type": "free", + "domains": [ + "youporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?youporn\\.com/(?:(browse)/)?(((?:duration|rating|time|views)|(?:most_(?:favou?rit|view)ed|recommended|top_rated)?))(?:[/#?]|$)" + ], + "regexp": "https?://(?:www\\.)?youporn\\.com/(?:(browse)/)?(((?:duration|rating|time|views)|(?:most_(?:favou?rit|view)ed|recommended|top_rated)?))(?:[/#?]|$)" + }, + "youtube": { + "name": "youtube", + "type": "free", + "domains": [ + "youtube.com", + "music.youtube.com", + "invidio.us", + "youtubekids.com" + ], + "regexps": [ + "https?://(?:www\\.)?youtube\\.com/clip/([^/?#]+)", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + ":ytfav(?:ou?rite)?s?", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + ":ythis(?:tory)?", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "https?://music\\.youtube\\.com/search\\?([^#]+&)?(?:search_query|q)=(?:[^&]+)(?:[&#]|$)", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + ":ytnotif(?:ication)?s?", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "(?:(?:https?://)?(?:\\w+\\.)?(?:(?:youtube(?:kids)?\\.com|(?:www\\.)?redirect\\.invidious\\.io|(?:(?:www|dev)\\.)?invidio\\.us|(?:www\\.)?invidious\\.pussthecat\\.org|(?:www\\.)?invidious\\.zee\\.li|(?:www\\.)?invidious\\.ethibox\\.fr|(?:www\\.)?iv\\.ggtyler\\.dev|(?:www\\.)?inv\\.vern\\.i2p|(?:www\\.)?am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd\\.onion|(?:www\\.)?inv\\.riverside\\.rocks|(?:www\\.)?invidious\\.silur\\.me|(?:www\\.)?inv\\.bp\\.projectsegfau\\.lt|(?:www\\.)?invidious\\.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid\\.onion|(?:www\\.)?invidious\\.slipfox\\.xyz|(?:www\\.)?invidious\\.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd\\.onion|(?:www\\.)?inv\\.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad\\.onion|(?:www\\.)?invidious\\.tiekoetter\\.com|(?:www\\.)?iv\\.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd\\.onion|(?:www\\.)?invidious\\.nerdvpn\\.de|(?:www\\.)?invidious\\.weblibre\\.org|(?:www\\.)?inv\\.odyssey346\\.dev|(?:www\\.)?invidious\\.dhusch\\.de|(?:www\\.)?iv\\.melmac\\.space|(?:www\\.)?watch\\.thekitty\\.zone|(?:www\\.)?invidious\\.privacydev\\.net|(?:www\\.)?ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid\\.onion|(?:www\\.)?invidious\\.drivet\\.xyz|(?:www\\.)?vid\\.priv\\.au|(?:www\\.)?euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd\\.onion|(?:www\\.)?inv\\.vern\\.cc|(?:www\\.)?invidious\\.esmailelbob\\.xyz|(?:www\\.)?invidious\\.sethforprivacy\\.com|(?:www\\.)?yt\\.oelrichsgarcia\\.de|(?:www\\.)?yt\\.artemislena\\.eu|(?:www\\.)?invidious\\.flokinet\\.to|(?:www\\.)?invidious\\.baczek\\.me|(?:www\\.)?y\\.com\\.sb|(?:www\\.)?invidious\\.epicsite\\.xyz|(?:www\\.)?invidious\\.lidarshield\\.cloud|(?:www\\.)?yt\\.funami\\.tech|(?:www\\.)?invidious\\.3o7z6yfxhbw7n3za4rss6l434kmv55cgw2vuziwuigpwegswvwzqipyd\\.onion|(?:www\\.)?osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd\\.onion|(?:www\\.)?u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad\\.onion|(?:(?:www|no)\\.)?invidiou\\.sh|(?:(?:www|fi)\\.)?invidious\\.snopyta\\.org|(?:www\\.)?invidious\\.kabi\\.tk|(?:www\\.)?invidious\\.mastodon\\.host|(?:www\\.)?invidious\\.zapashcanon\\.fr|(?:www\\.)?(?:invidious(?:-us)?|piped)\\.kavin\\.rocks|(?:www\\.)?invidious\\.tinfoil-hat\\.net|(?:www\\.)?invidious\\.himiko\\.cloud|(?:www\\.)?invidious\\.reallyancient\\.tech|(?:www\\.)?invidious\\.tube|(?:www\\.)?invidiou\\.site|(?:www\\.)?invidious\\.site|(?:www\\.)?invidious\\.xyz|(?:www\\.)?invidious\\.nixnet\\.xyz|(?:www\\.)?invidious\\.048596\\.xyz|(?:www\\.)?invidious\\.drycat\\.fr|(?:www\\.)?inv\\.skyn3t\\.in|(?:www\\.)?tube\\.poal\\.co|(?:www\\.)?tube\\.connect\\.cafe|(?:www\\.)?vid\\.wxzm\\.sx|(?:www\\.)?vid\\.mint\\.lgbt|(?:www\\.)?vid\\.puffyan\\.us|(?:www\\.)?yewtu\\.be|(?:www\\.)?yt\\.elukerio\\.org|(?:www\\.)?yt\\.lelux\\.fi|(?:www\\.)?invidious\\.ggc-project\\.de|(?:www\\.)?yt\\.maisputain\\.ovh|(?:www\\.)?ytprivate\\.com|(?:www\\.)?invidious\\.13ad\\.de|(?:www\\.)?invidious\\.toot\\.koeln|(?:www\\.)?invidious\\.fdn\\.fr|(?:www\\.)?watch\\.nettohikari\\.com|(?:www\\.)?invidious\\.namazso\\.eu|(?:www\\.)?invidious\\.silkky\\.cloud|(?:www\\.)?invidious\\.exonip\\.de|(?:www\\.)?invidious\\.riverside\\.rocks|(?:www\\.)?invidious\\.blamefran\\.net|(?:www\\.)?invidious\\.moomoo\\.de|(?:www\\.)?ytb\\.trom\\.tf|(?:www\\.)?yt\\.cyberhost\\.uk|(?:www\\.)?kgg2m7yk5aybusll\\.onion|(?:www\\.)?qklhadlycap4cnod\\.onion|(?:www\\.)?axqzx4s6s54s32yentfqojs3x5i7faxza6xo3ehd4bzzsg2ii4fv2iid\\.onion|(?:www\\.)?c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid\\.onion|(?:www\\.)?fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad\\.onion|(?:www\\.)?invidious\\.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd\\.onion|(?:www\\.)?owxfohz4kjyv25fvlqilyxast7inivgiktls3th44jhk3ej3i7ya\\.b32\\.i2p|(?:www\\.)?4l2dgddgsrkf2ous66i6seeyi6etzfgrue332grh2n7madpwopotugyd\\.onion|(?:www\\.)?w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd\\.onion|(?:www\\.)?kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad\\.onion|(?:www\\.)?grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad\\.onion|(?:www\\.)?hpniueoejy4opn7bc4ftgazyqjoeqwlvh2uiku2xqku6zpoa4bf5ruid\\.onion|(?:www\\.)?piped\\.kavin\\.rocks|(?:www\\.)?piped\\.tokhmi\\.xyz|(?:www\\.)?piped\\.syncpundit\\.io|(?:www\\.)?piped\\.mha\\.fi|(?:www\\.)?watch\\.whatever\\.social|(?:www\\.)?piped\\.garudalinux\\.org|(?:www\\.)?piped\\.rivo\\.lol|(?:www\\.)?piped-libre\\.kavin\\.rocks|(?:www\\.)?yt\\.jae\\.fi|(?:www\\.)?piped\\.mint\\.lgbt|(?:www\\.)?il\\.ax|(?:www\\.)?piped\\.esmailelbob\\.xyz|(?:www\\.)?piped\\.projectsegfau\\.lt|(?:www\\.)?piped\\.privacydev\\.net|(?:www\\.)?piped\\.palveluntarjoaja\\.eu|(?:www\\.)?piped\\.smnz\\.de|(?:www\\.)?piped\\.adminforge\\.de|(?:www\\.)?watch\\.whatevertinfoil\\.de|(?:www\\.)?piped\\.qdi\\.fi|(?:(?:www|cf)\\.)?piped\\.video|(?:www\\.)?piped\\.aeong\\.one|(?:www\\.)?piped\\.moomoo\\.me|(?:www\\.)?piped\\.chauvet\\.pro|(?:www\\.)?watch\\.leptons\\.xyz|(?:www\\.)?pd\\.vern\\.cc|(?:www\\.)?piped\\.hostux\\.net|(?:www\\.)?piped\\.lunar\\.icu|(?:www\\.)?hyperpipe\\.surge\\.sh|(?:www\\.)?hyperpipe\\.esmailelbob\\.xyz|(?:www\\.)?listen\\.whatever\\.social|(?:www\\.)?music\\.adminforge\\.de)/.*?\\?.*?\\blist=)?((?:(?:PL|LL|EC|UU|FL|RD|UL|TL|PU|OLAK5uy_)[0-9A-Za-z-_]{10,}|RDMM|WL|LL|LM)))", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "https?://(?:www\\.)?youtube\\.com/?(?:[?#]|$)|:ytrec(?:ommended)?", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "ytsearchdate(|[1-9][0-9]*|all):([\\s\\S]+)", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "ytsearch(|[1-9][0-9]*|all):([\\s\\S]+)", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "https?://(?:www\\.)?youtube\\.com/(?:results|search)\\?([^#]+&)?(?:search_query|q)=(?:[^&]+)(?:[&#]|$)", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "https?://(?:www\\.)?youtube\\.com/source/([\\w-]{11})/shorts", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + ":ytsub(?:scription)?s?", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "(?x:\n https?://\n (?!consent\\.)(?:\\w+\\.)?\n (?:\n youtube(?:kids)?\\.com|\n (?:www\\.)?redirect\\.invidious\\.io|(?:(?:www|dev)\\.)?invidio\\.us|(?:www\\.)?invidious\\.pussthecat\\.org|(?:www\\.)?invidious\\.zee\\.li|(?:www\\.)?invidious\\.ethibox\\.fr|(?:www\\.)?iv\\.ggtyler\\.dev|(?:www\\.)?inv\\.vern\\.i2p|(?:www\\.)?am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd\\.onion|(?:www\\.)?inv\\.riverside\\.rocks|(?:www\\.)?invidious\\.silur\\.me|(?:www\\.)?inv\\.bp\\.projectsegfau\\.lt|(?:www\\.)?invidious\\.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid\\.onion|(?:www\\.)?invidious\\.slipfox\\.xyz|(?:www\\.)?invidious\\.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd\\.onion|(?:www\\.)?inv\\.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad\\.onion|(?:www\\.)?invidious\\.tiekoetter\\.com|(?:www\\.)?iv\\.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd\\.onion|(?:www\\.)?invidious\\.nerdvpn\\.de|(?:www\\.)?invidious\\.weblibre\\.org|(?:www\\.)?inv\\.odyssey346\\.dev|(?:www\\.)?invidious\\.dhusch\\.de|(?:www\\.)?iv\\.melmac\\.space|(?:www\\.)?watch\\.thekitty\\.zone|(?:www\\.)?invidious\\.privacydev\\.net|(?:www\\.)?ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid\\.onion|(?:www\\.)?invidious\\.drivet\\.xyz|(?:www\\.)?vid\\.priv\\.au|(?:www\\.)?euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd\\.onion|(?:www\\.)?inv\\.vern\\.cc|(?:www\\.)?invidious\\.esmailelbob\\.xyz|(?:www\\.)?invidious\\.sethforprivacy\\.com|(?:www\\.)?yt\\.oelrichsgarcia\\.de|(?:www\\.)?yt\\.artemislena\\.eu|(?:www\\.)?invidious\\.flokinet\\.to|(?:www\\.)?invidious\\.baczek\\.me|(?:www\\.)?y\\.com\\.sb|(?:www\\.)?invidious\\.epicsite\\.xyz|(?:www\\.)?invidious\\.lidarshield\\.cloud|(?:www\\.)?yt\\.funami\\.tech|(?:www\\.)?invidious\\.3o7z6yfxhbw7n3za4rss6l434kmv55cgw2vuziwuigpwegswvwzqipyd\\.onion|(?:www\\.)?osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd\\.onion|(?:www\\.)?u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad\\.onion|(?:(?:www|no)\\.)?invidiou\\.sh|(?:(?:www|fi)\\.)?invidious\\.snopyta\\.org|(?:www\\.)?invidious\\.kabi\\.tk|(?:www\\.)?invidious\\.mastodon\\.host|(?:www\\.)?invidious\\.zapashcanon\\.fr|(?:www\\.)?(?:invidious(?:-us)?|piped)\\.kavin\\.rocks|(?:www\\.)?invidious\\.tinfoil-hat\\.net|(?:www\\.)?invidious\\.himiko\\.cloud|(?:www\\.)?invidious\\.reallyancient\\.tech|(?:www\\.)?invidious\\.tube|(?:www\\.)?invidiou\\.site|(?:www\\.)?invidious\\.site|(?:www\\.)?invidious\\.xyz|(?:www\\.)?invidious\\.nixnet\\.xyz|(?:www\\.)?invidious\\.048596\\.xyz|(?:www\\.)?invidious\\.drycat\\.fr|(?:www\\.)?inv\\.skyn3t\\.in|(?:www\\.)?tube\\.poal\\.co|(?:www\\.)?tube\\.connect\\.cafe|(?:www\\.)?vid\\.wxzm\\.sx|(?:www\\.)?vid\\.mint\\.lgbt|(?:www\\.)?vid\\.puffyan\\.us|(?:www\\.)?yewtu\\.be|(?:www\\.)?yt\\.elukerio\\.org|(?:www\\.)?yt\\.lelux\\.fi|(?:www\\.)?invidious\\.ggc-project\\.de|(?:www\\.)?yt\\.maisputain\\.ovh|(?:www\\.)?ytprivate\\.com|(?:www\\.)?invidious\\.13ad\\.de|(?:www\\.)?invidious\\.toot\\.koeln|(?:www\\.)?invidious\\.fdn\\.fr|(?:www\\.)?watch\\.nettohikari\\.com|(?:www\\.)?invidious\\.namazso\\.eu|(?:www\\.)?invidious\\.silkky\\.cloud|(?:www\\.)?invidious\\.exonip\\.de|(?:www\\.)?invidious\\.riverside\\.rocks|(?:www\\.)?invidious\\.blamefran\\.net|(?:www\\.)?invidious\\.moomoo\\.de|(?:www\\.)?ytb\\.trom\\.tf|(?:www\\.)?yt\\.cyberhost\\.uk|(?:www\\.)?kgg2m7yk5aybusll\\.onion|(?:www\\.)?qklhadlycap4cnod\\.onion|(?:www\\.)?axqzx4s6s54s32yentfqojs3x5i7faxza6xo3ehd4bzzsg2ii4fv2iid\\.onion|(?:www\\.)?c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid\\.onion|(?:www\\.)?fz253lmuao3strwbfbmx46yu7acac2jz27iwtorgmbqlkurlclmancad\\.onion|(?:www\\.)?invidious\\.l4qlywnpwqsluw65ts7md3khrivpirse744un3x7mlskqauz5pyuzgqd\\.onion|(?:www\\.)?owxfohz4kjyv25fvlqilyxast7inivgiktls3th44jhk3ej3i7ya\\.b32\\.i2p|(?:www\\.)?4l2dgddgsrkf2ous66i6seeyi6etzfgrue332grh2n7madpwopotugyd\\.onion|(?:www\\.)?w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd\\.onion|(?:www\\.)?kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad\\.onion|(?:www\\.)?grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad\\.onion|(?:www\\.)?hpniueoejy4opn7bc4ftgazyqjoeqwlvh2uiku2xqku6zpoa4bf5ruid\\.onion|(?:www\\.)?piped\\.kavin\\.rocks|(?:www\\.)?piped\\.tokhmi\\.xyz|(?:www\\.)?piped\\.syncpundit\\.io|(?:www\\.)?piped\\.mha\\.fi|(?:www\\.)?watch\\.whatever\\.social|(?:www\\.)?piped\\.garudalinux\\.org|(?:www\\.)?piped\\.rivo\\.lol|(?:www\\.)?piped-libre\\.kavin\\.rocks|(?:www\\.)?yt\\.jae\\.fi|(?:www\\.)?piped\\.mint\\.lgbt|(?:www\\.)?il\\.ax|(?:www\\.)?piped\\.esmailelbob\\.xyz|(?:www\\.)?piped\\.projectsegfau\\.lt|(?:www\\.)?piped\\.privacydev\\.net|(?:www\\.)?piped\\.palveluntarjoaja\\.eu|(?:www\\.)?piped\\.smnz\\.de|(?:www\\.)?piped\\.adminforge\\.de|(?:www\\.)?watch\\.whatevertinfoil\\.de|(?:www\\.)?piped\\.qdi\\.fi|(?:(?:www|cf)\\.)?piped\\.video|(?:www\\.)?piped\\.aeong\\.one|(?:www\\.)?piped\\.moomoo\\.me|(?:www\\.)?piped\\.chauvet\\.pro|(?:www\\.)?watch\\.leptons\\.xyz|(?:www\\.)?pd\\.vern\\.cc|(?:www\\.)?piped\\.hostux\\.net|(?:www\\.)?piped\\.lunar\\.icu|(?:www\\.)?hyperpipe\\.surge\\.sh|(?:www\\.)?hyperpipe\\.esmailelbob\\.xyz|(?:www\\.)?listen\\.whatever\\.social|(?:www\\.)?music\\.adminforge\\.de\n )/\n (?:\n (channel|c|user|browse)/|\n (\n feed/|hashtag/|\n (?:playlist|watch)\\?.*?\\blist=\n )|\n (?!(?:channel|c|user|playlist|watch|w|v|embed|e|live|watch_popup|clip|shorts|movies|results|search|shared|hashtag|trending|explore|feed|feeds|browse|oembed|get_video_info|iframe_api|s/player|source|storefront|oops|index|account|t/terms|about|upload|signin|logout)\\b) # Direct URLs\n )\n ([^/?\\#&]+)\n )", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + ":ytwatchlater", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?", + "ytuser:(.+)", + "((?:https?:)?\\/\\/)?((?:www|m)\\.)?((?:youtube(-nocookie)?\\.com|youtu.be))(\\/(?:[\\w\\-]+\\?v=|embed\\/|v\\/)?)([\\w\\-]+)(\\S+)?" + ], + "regexp": "https?://(?:www\\.)?youtube\\.com/clip/([^/?#]+)" + }, + "youtubelivestreamembed": { + "name": "youtubelivestreamembed", + "type": "free", + "domains": [ + "youtube.com" + ], + "regexps": [ + "https?://(?:\\w+\\.)?youtube\\.com/embed/live_stream/?\\?(?:[^#]+&)?channel=([^&#]+)" + ], + "regexp": "https?://(?:\\w+\\.)?youtube\\.com/embed/live_stream/?\\?(?:[^#]+&)?channel=([^&#]+)" + }, + "youtubeytbe": { + "name": "youtubeytbe", + "type": "free", + "domains": [ + "youtu.be" + ], + "regexps": [ + "https?://youtu\\.be/([0-9A-Za-z_-]{11})/*?.*?\\blist=((?:(?:PL|LL|EC|UU|FL|RD|UL|TL|PU|OLAK5uy_)[0-9A-Za-z-_]{10,}|RDMM|WL|LL|LM))" + ], + "regexp": "https?://youtu\\.be/([0-9A-Za-z_-]{11})/*?.*?\\blist=((?:(?:PL|LL|EC|UU|FL|RD|UL|TL|PU|OLAK5uy_)[0-9A-Za-z-_]{10,}|RDMM|WL|LL|LM))" + }, + "zaiko": { + "name": "zaiko", + "type": "free", + "domains": [ + "zaiko.io" + ], + "regexps": [ + "https?://(?:[\\w-]+\\.)?zaiko\\.io/event/(\\d+)/stream(?:/\\d+)+" + ], + "regexp": "https?://(?:[\\w-]+\\.)?zaiko\\.io/event/(\\d+)/stream(?:/\\d+)+" + }, + "zaikoeticket": { + "name": "zaikoeticket", + "type": "free", + "domains": [ + "zaiko.io" + ], + "regexps": [ + "https?://(?:www.)?zaiko\\.io/account/eticket/([\\w=-]{49})" + ], + "regexp": "https?://(?:www.)?zaiko\\.io/account/eticket/([\\w=-]{49})" + }, + "zapiks": { + "name": "zapiks", + "type": "free", + "domains": [ + "zapiks.fr", + "zapiks.com" + ], + "regexps": [ + "https?://(?:www\\.)?zapiks\\.(?:fr|com)/(?:(?:[a-z]{2}/)?(.+?)\\.html|index\\.php\\?.*\\bmedia_id=(\\d+))" + ], + "regexp": "https?://(?:www\\.)?zapiks\\.(?:fr|com)/(?:(?:[a-z]{2}/)?(.+?)\\.html|index\\.php\\?.*\\bmedia_id=(\\d+))" + }, + "zattoo": { + "name": "zattoo", + "type": "free", + "domains": [ + "zattoo.com" + ], + "regexps": [ + "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + ], + "regexp": "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?program=(\\d+)|(?:program|watch)/[^/]+/(\\d+))" + }, + "zattoolive": { + "name": "zattoolive", + "type": "free", + "domains": [ + "zattoo.com" + ], + "regexps": [ + "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + ], + "regexp": "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?channel=([^/?&#]+)|live/([^/?&#]+))" + }, + "zattoomovies": { + "name": "zattoomovies", + "type": "free", + "domains": [ + "zattoo.com" + ], + "regexps": [ + "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?movie_id=(\\w+)|vod/movies/(\\w+))" + ], + "regexp": "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?movie_id=(\\w+)|vod/movies/(\\w+))" + }, + "zattoorecordings": { + "name": "zattoorecordings", + "type": "free", + "domains": [ + "zattoo.com" + ], + "regexps": [ + "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + ], + "regexp": "https?://(?:www\\.)?zattoo\\.com/(?:[^?#]+\\?(?:[^#]+&)?recording=(\\d+)())" + }, + "zdf": { + "name": "zdf", + "type": "free", + "domains": [ + "zdf.de" + ], + "regexps": [ + "https?://www\\.zdf\\.de/(?:[^/?#]+/)*([^/?#]+)", + "https?://(?:www\\.)?zdf\\.de/(?:video|play)/(?:[^/?#]+/)*([^/?#]+)", + "https?://(?:www\\.)?zdf\\.de/(?:[^/?#]+/)*([^/?#]+)\\.html" + ], + "regexp": "(https?://www\\.zdf\\.de/(?:[^/?#]+/)*([^/?#]+))|(https?://(?:www\\.)?zdf\\.de/(?:video|play)/(?:[^/?#]+/)*([^/?#]+))|(https?://(?:www\\.)?zdf\\.de/(?:[^/?#]+/)*([^/?#]+)\\.html)" + }, + "zee5": { + "name": "zee5", + "type": "free", + "domains": [ + "zee5.com" + ], + "regexps": [ + "(?:zee5:|https?://(?:www\\.)?zee5\\.com/(?:[^#?]+/)?(?:(?:tv-shows|kids|web-series|zee5originals)(?:/[^#/?]+){3}|(?:movies|kids|videos|news|music-videos)/(?!kids-shows)[^#/?]+)/([^#/?]+)/)([^#/?]+)/?(?:$|[?#])", + "(?:zee5:series:|https?://(?:www\\.)?zee5\\.com/(?:[^#?]+/)?(?:tv-shows|web-series|kids|zee5originals)/(?!kids-movies)(?:[^#/?]+/){2})([^#/?]+)(?:/episodes)?/?(?:$|[?#])" + ], + "regexp": "((?:zee5:|https?://(?:www\\.)?zee5\\.com/(?:[^#?]+/)?(?:(?:tv-shows|kids|web-series|zee5originals)(?:/[^#/?]+){3}|(?:movies|kids|videos|news|music-videos)/(?!kids-shows)[^#/?]+)/([^#/?]+)/)([^#/?]+)/?(?:$|[?#]))|((?:zee5:series:|https?://(?:www\\.)?zee5\\.com/(?:[^#?]+/)?(?:tv-shows|web-series|kids|zee5originals)/(?!kids-movies)(?:[^#/?]+/){2})([^#/?]+)(?:/episodes)?/?(?:$|[?#]))" + }, + "zeenews": { + "name": "zeenews", + "type": "free", + "domains": [ + "zeenews.india.com" + ], + "regexps": [ + "https?://zeenews\\.india\\.com/[^#?]+/video/([^#/?]+)/(\\d+)" + ], + "regexp": "https?://zeenews\\.india\\.com/[^#?]+/video/([^#/?]+)/(\\d+)" + }, + "zenporn": { + "name": "zenporn", + "type": "free", + "domains": [ + "zenporn.com" + ], + "regexps": [ + "https?://(?:www\\.)?zenporn\\.com/video/(\\d+)" + ], + "regexp": "https?://(?:www\\.)?zenporn\\.com/video/(\\d+)" + }, + "zetlanddkarticle": { + "name": "zetlanddkarticle", + "type": "free", + "domains": [ + "zetland.dk" + ], + "regexps": [ + "https?://www\\.zetland\\.dk/\\w+/((\\w{8})-(\\w{8})-(?:\\w{5}))" + ], + "regexp": "https?://www\\.zetland\\.dk/\\w+/((\\w{8})-(\\w{8})-(?:\\w{5}))" + }, + "zhihu": { + "name": "zhihu", + "type": "free", + "domains": [], + "regexps": [ + "https?://(?:www\\.)?zhihu\\.com/zvideo/([0-9]+)" + ], + "regexp": "https?://(?:www\\.)?zhihu\\.com/zvideo/([0-9]+)" + }, + "zingmp3": { + "name": "zingmp3", + "type": "free", + "domains": [ + "zingmp3.vn", + "mp3.zing.vn" + ], + "regexps": [ + "https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:album|playlist))/[^/?#]+/(\\w+)(?:\\.html|\\?)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:zing-chart|moi-phat-hanh|top100|podcast-discover))/?(?:[#?]|$)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/(the-loai-video)/([^/]+)/([^\\.]+)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/(hub)/[^/?#]+/([^./?#]+)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:bai-hat|video-clip|embed|eps))/[^/?#]+/(\\w+)(?:\\.html|\\?)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:liveradio))/(\\w+)(?:\\.html|\\?)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:pgr|cgr))/[^/?#]+/(\\w+)(?:\\.html|\\?)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:cgr|top-podcast|podcast-new))/?(?:[#?]|$)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/([^/]+)/(bai-hat|single|album|video|song)/?(?:[?#]|$)", + "https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:zing-chart-tuan))/[^/?#]+/(\\w+)(?:\\.html|\\?)" + ], + "regexp": "(https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:album|playlist))/[^/?#]+/(\\w+)(?:\\.html|\\?))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:zing-chart|moi-phat-hanh|top100|podcast-discover))/?(?:[#?]|$))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/(the-loai-video)/([^/]+)/([^\\.]+))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/(hub)/[^/?#]+/([^./?#]+))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:bai-hat|video-clip|embed|eps))/[^/?#]+/(\\w+)(?:\\.html|\\?))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:liveradio))/(\\w+)(?:\\.html|\\?))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:pgr|cgr))/[^/?#]+/(\\w+)(?:\\.html|\\?))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:cgr|top-podcast|podcast-new))/?(?:[#?]|$))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/([^/]+)/(bai-hat|single|album|video|song)/?(?:[?#]|$))|(https?://(?:mp3\\.zing|zingmp3)\\.vn/((?:zing-chart-tuan))/[^/?#]+/(\\w+)(?:\\.html|\\?))" + }, + "zoom": { + "name": "zoom", + "type": "free", + "domains": [ + "economist.zoom.us", + "ffgolf.zoom.us", + "us02web.zoom.us", + "cityofdetroit.zoom.us" + ], + "regexps": [ + "(https?://(?:[^.]+\\.)?zoom\\.us/)rec(?:ording)?/(play|share)/([\\w.-]+)" + ], + "regexp": "(https?://(?:[^.]+\\.)?zoom\\.us/)rec(?:ording)?/(play|share)/([\\w.-]+)" + }, + "zype": { + "name": "zype", + "type": "free", + "domains": [], + "regexps": [ + "https?://player\\.zype\\.com/embed/([\\da-fA-F]+)\\.(?:js|json|html)\\?.*?(?:access_token|(?:ap[ip]|player)_key)=[^&]+" + ], + "regexp": "https?://player\\.zype\\.com/embed/([\\da-fA-F]+)\\.(?:js|json|html)\\?.*?(?:access_token|(?:ap[ip]|player)_key)=[^&]+" + } + }, + "redirectors": { + "1fichier": { + "name": "1fichier", + "type": "premium", + "domains": [ + "1fichier.com" + ], + "regexps": [ + "(1fichier.com/dir/[a-zA-Z0-9]+)" + ], + "regexp": "(1fichier.com/dir/[a-zA-Z0-9]+)" + }, + "adfly": { + "name": "adfly", + "type": "premium", + "domains": [ + "adf.ly" + ], + "regexps": [ + "(adf\\.ly/[0-9]+/(https?://[^ \"'<>]+))", + "(adf\\.ly/[0-9a-zA-Z]+)" + ], + "regexp": "((adf\\.ly/[0-9]+/(https?://[^ \"'<>]+)))|((adf\\.ly/[0-9a-zA-Z]+))" + }, + "baidu": { + "name": "baidu", + "type": "premium", + "domains": [ + "pan.baidu.com" + ], + "regexps": [ + "pan\\.baidu\\.com/(s/|share/init\\?surl=)([0-9a-zA-Z_-]+)(?!\\?fid=)" + ], + "regexp": "pan\\.baidu\\.com/(s/|share/init\\?surl=)([0-9a-zA-Z_-]+)(?!\\?fid=)" + }, + "bigto": { + "name": "bigto", + "type": "premium", + "domains": [ + "big.to", + "isrbx.net", + "israbox-music.com", + "isrbx.me" + ], + "regexps": [ + "(biq\\.to/go/[0-9a-z]{20,})", + "((isrbx\\.net|israbox-music\\.com|isrbx.me)/go/[0-9a-z]{20,})" + ], + "regexp": "((biq\\.to/go/[0-9a-z]{20,}))|(((isrbx\\.net|israbox-music\\.com|isrbx.me)/go/[0-9a-z]{20,}))" + }, + "bitly": { + "name": "bitly", + "type": "premium", + "domains": [ + "bit.ly" + ], + "regexps": [ + "(bit\\.ly/[0-9a-zA-Z]+)" + ], + "regexp": "(bit\\.ly/[0-9a-zA-Z]+)" + }, + "ddlisland": { + "name": "ddlisland", + "type": "premium", + "domains": [ + "protect.ddl-island.su" + ], + "regexps": [ + "(protect\\.ddl-island\\.su/[0-9a-zA-Z]+)", + "(dl-protect\\.ru/[[^/<>\"'\"& ]+]+)" + ], + "regexp": "((protect\\.ddl-island\\.su/[0-9a-zA-Z]+))|((dl-protect\\.ru/[[^/<>\"'\"& ]+]+))" + }, + "dereferer": { + "name": "dereferer", + "type": "premium", + "domains": [ + "dereferer.org" + ], + "regexps": [ + "(dereferer\\.org/\\?[^\"' <]+)" + ], + "regexp": "(dereferer\\.org/\\?[^\"' <]+)" + }, + "dl-protect": { + "name": "dl-protect", + "type": "premium", + "domains": [ + "dl-protect.top", + "dl-protecte.org", + "protect-lien.com", + "protect-zt.com", + "protecte-link.com", + "liens-telechargement.com", + "dl-protect1.com", + "dl-protect1.co" + ], + "regexps": [ + "(dl-protect\\.top/go\\.php\\?url=[[^/<>\"'\" ]+]+)", + "(dl-protect\\.top/(liens/)?[0-9A-Za-z]+)" + ], + "regexp": "((dl-protect\\.top/go\\.php\\?url=[[^/<>\"'\" ]+]+))|((dl-protect\\.top/(liens/)?[0-9A-Za-z]+))" + }, + "dl-protect-best": { + "name": "dl-protect-best", + "type": "premium", + "domains": [ + "dl-protect.best" + ], + "regexps": [ + "dl\\-protect\\.(best|info|net|link|cc)/([0-9a-zA-Z]{8})" + ], + "regexp": "dl\\-protect\\.(best|info|net|link|cc)/([0-9a-zA-Z]{8})" + }, + "ed-protect": { + "name": "ed-protect", + "type": "premium", + "domains": [ + "ed-protect.org" + ], + "regexps": [ + "(ed-protect\\.org/[0-9A-Za-z-]{4,})" + ], + "regexp": "(ed-protect\\.org/[0-9A-Za-z-]{4,})" + }, + "example": { + "name": "example", + "type": "premium", + "domains": [ + "redirect.example.com" + ], + "regexps": [ + "(redirect.example\\.com/[0-9a-zA-Z]{4,20})", + "redirect.example\\.net/([0-9a-zA-Z]{4,20})" + ], + "regexp": "((redirect.example\\.com/[0-9a-zA-Z]{4,20}))|(redirect.example\\.net/([0-9a-zA-Z]{4,20}))" + }, + "extreme-download": { + "name": "extreme-download", + "type": "premium", + "domains": [ + "extreme-download.club", + "extreme-protect.net" + ], + "regexps": [ + "(extreme-download\\.club/[0-9A-Za-z]+)", + "extreme-protect\\.net/([0-9A-Za-z]+)", + "extreme\\-download\\.(cc|co|ch)/torrent/([0-9A-Za-z]+)" + ], + "regexp": "((extreme-download\\.club/[0-9A-Za-z]+))|(extreme-protect\\.net/([0-9A-Za-z]+))|(extreme\\-download\\.(cc|co|ch)/torrent/([0-9A-Za-z]+))" + }, + "filecrypt": { + "name": "filecrypt", + "type": "premium", + "domains": [ + "filecrypt.cc" + ], + "regexps": [ + "(filecrypt\\.cc/Container/[A-F0-9]+.html)", + "filecrypt\\.co/Container/([A-F0-9]+.html)" + ], + "regexp": "((filecrypt\\.cc/Container/[A-F0-9]+.html))|(filecrypt\\.co/Container/([A-F0-9]+.html))" + }, + "generic": { + "name": "generic", + "type": "premium", + "domains": [ + "generic.tld" + ], + "regexps": [ + "((example.com|1fichier.com|4shared.com|vev.io|clipwatching.com|clicknupload.click|playvidto.com|uploadrar.com|simfileshare.net|usersdrive.com|fastbit.cc|dropgalaxy.in|uploadboy.com|file.al|filespace.com|uploader.link|9xupload.asia|hexupload.net|filefactory.com|filerio.in|drive.google.com|gigapeta.com|isra.cloud|katfile.com|mediafire.com|mega.co.nz|alldebrid.com|prefiles.com|rapidgator.net|alfafile.net|scribd.com|turbobit.net|hitfile.net|sendit.cloud|ddl.to|exload.com|uploadhaven.com|vidoza.net|mixdrop.co|dropapk.to|indishare.me|world-files.com|uploadbox.io|worldbytez.com|mp4upload.com|mexashare.com|upload42.com|uploading.vn|filedot.to|zofile.com|spicyfile.com|modsbase.com|sharemods.com|dl-file.com|dosya.co|loadstar.club|dailyuploads.net|file-upload.com|uploadbank.com|filezip.cc|hot4share.com|streamtape.com)/folders?/[^'\"<>;]+)" + ], + "regexp": "((example.com|1fichier.com|4shared.com|vev.io|clipwatching.com|clicknupload.click|playvidto.com|uploadrar.com|simfileshare.net|usersdrive.com|fastbit.cc|dropgalaxy.in|uploadboy.com|file.al|filespace.com|uploader.link|9xupload.asia|hexupload.net|filefactory.com|filerio.in|drive.google.com|gigapeta.com|isra.cloud|katfile.com|mediafire.com|mega.co.nz|alldebrid.com|prefiles.com|rapidgator.net|alfafile.net|scribd.com|turbobit.net|hitfile.net|sendit.cloud|ddl.to|exload.com|uploadhaven.com|vidoza.net|mixdrop.co|dropapk.to|indishare.me|world-files.com|uploadbox.io|worldbytez.com|mp4upload.com|mexashare.com|upload42.com|uploading.vn|filedot.to|zofile.com|spicyfile.com|modsbase.com|sharemods.com|dl-file.com|dosya.co|loadstar.club|dailyuploads.net|file-upload.com|uploadbank.com|filezip.cc|hot4share.com|streamtape.com)/folders?/[^'\"<>;]+)" + }, + "google": { + "name": "google", + "type": "premium", + "domains": [ + "google.com" + ], + "regexps": [ + "(drive\\.google\\.com/drive/folders/[a-zA-Z0-9_-]+)" + ], + "regexp": "(drive\\.google\\.com/drive/folders/[a-zA-Z0-9_-]+)" + }, + "go_to": { + "name": "go_to", + "type": "premium", + "domains": [ + "go_to.com" + ], + "regexps": [ + "(([a-z0-9\\.[a-z]+)/go_to/[a-zA-Z0-9]+)" + ], + "regexp": "(([a-z0-9\\.[a-z]+)/go_to/[a-zA-Z0-9]+)" + }, + "hyipstats": { + "name": "hyipstats", + "type": "premium", + "domains": [ + "sumoweb.net" + ], + "regexps": [ + "(sumoweb\\.net/open_link/[A-Za-z0-9]+)" + ], + "regexp": "(sumoweb\\.net/open_link/[A-Za-z0-9]+)" + }, + "liencaptcha": { + "name": "liencaptcha", + "type": "premium", + "domains": [ + "liencaptcha.com" + ], + "regexps": [ + "(liencaptcha\\.com/lien\\.php\\?idupload=[0-9]+&ad=[0-9]+&pos=[0-9]+&link=[0-9]+)" + ], + "regexp": "(liencaptcha\\.com/lien\\.php\\?idupload=[0-9]+&ad=[0-9]+&pos=[0-9]+&link=[0-9]+)" + }, + "mediafire": { + "name": "mediafire", + "type": "premium", + "domains": [ + "mediafire.com" + ], + "regexps": [ + "(mediafire\\.com/folder/[0-9a-z]{12,})" + ], + "regexp": "(mediafire\\.com/folder/[0-9a-z]{12,})" + }, + "meganz": { + "name": "meganz", + "type": "premium", + "domains": [ + "mega.nz", + "mega.co.nz" + ], + "regexps": [ + "(?!.*\\/file)(mega\\.co\\.nz|mega\\.nz)(/folder/[0-9a-zA-Z_\\-]+\\#[0-9a-zA-Z_\\-]+)(/folder/[0-9a-zA-Z_\\-]+)?", + "(mega\\.co\\.nz|mega\\.nz)/(\\?fbclid=[^\\#]+)?(\\#F!([0-9a-zA-Z\\_\\-]+)!([0-9a-zA-Z\\_\\-]+)(!([0-9a-zA-Z\\_\\-]+))?)" + ], + "regexp": "((?!.*\\/file)(mega\\.co\\.nz|mega\\.nz)(/folder/[0-9a-zA-Z_\\-]+\\#[0-9a-zA-Z_\\-]+)(/folder/[0-9a-zA-Z_\\-]+)?)|((mega\\.co\\.nz|mega\\.nz)/(\\?fbclid=[^\\#]+)?(\\#F!([0-9a-zA-Z\\_\\-]+)!([0-9a-zA-Z\\_\\-]+)(!([0-9a-zA-Z\\_\\-]+))?))" + }, + "multiup": { + "name": "multiup", + "type": "premium", + "domains": [ + "multiup.org" + ], + "regexps": [ + "(multiup\\.org/[a-z]+/mirror/[a-z0-9]+/[^/<>\"'\" ]+)", + "(multiup\\.org/[a-z0-9]{32})", + "multiup\\.org/([a-z]+/)?download/([a-z0-9]+/[^/<>\"'\" ]+)" + ], + "regexp": "((multiup\\.org/[a-z]+/mirror/[a-z0-9]+/[^/<>\"'\" ]+))|((multiup\\.org/[a-z0-9]{32}))|(multiup\\.org/([a-z]+/)?download/([a-z0-9]+/[^/<>\"'\" ]+))" + }, + "prodebrid": { + "name": "prodebrid", + "type": "premium", + "domains": [ + "prodebrid.com", + "prodebrid.com" + ], + "regexps": [ + "(([a-z0-9\\.[a-z]+)/(link|streaming)\\-([0-9]+)\\.html)" + ], + "regexp": "(([a-z0-9\\.[a-z]+)/(link|streaming)\\-([0-9]+)\\.html)" + }, + "rg": { + "name": "rg", + "type": "premium", + "domains": [ + "rapidgator.net", + "rg.to" + ], + "regexps": [ + "(rapidgator\\.net/folder/[0-9]+/[^/<>\"'\"]+\\.html)", + "rg\\.to/folder/([0-9]+/[^/<>\"'\"]+\\.html)" + ], + "regexp": "((rapidgator\\.net/folder/[0-9]+/[^/<>\"'\"]+\\.html))|(rg\\.to/folder/([0-9]+/[^/<>\"'\"]+\\.html))" + }, + "safelinking": { + "name": "safelinking", + "type": "premium", + "domains": [ + "safelinking.net" + ], + "regexps": [ + "(safelinking\\.net/[0-9a-zA-Z]{7,})" + ], + "regexp": "(safelinking\\.net/[0-9a-zA-Z]{7,})" + }, + "scene-rls": { + "name": "scene-rls", + "type": "premium", + "domains": [ + "nfo.scene-rls.net" + ], + "regexps": [ + "(nfo.scene-rls.net/view/[0-9]+)" + ], + "regexp": "(nfo.scene-rls.net/view/[0-9]+)" + }, + "searchlossless": { + "name": "searchlossless", + "type": "premium", + "domains": [ + "searchlossless.com" + ], + "regexps": [ + "(searchlossless\\.com/flac\\?a(:|%3A)([A-Z0-9a-z\\_\\-\\=%]+))" + ], + "regexp": "(searchlossless\\.com/flac\\?a(:|%3A)([A-Z0-9a-z\\_\\-\\=%]+))" + }, + "tb": { + "name": "tb", + "type": "premium", + "domains": [ + "turbobit.net" + ], + "regexps": [ + "((turbobit\\.net|hitfile\\.net)/download/folder/[0-9]+)" + ], + "regexp": "((turbobit\\.net|hitfile\\.net)/download/folder/[0-9]+)" + }, + "tinyurl": { + "name": "tinyurl", + "type": "premium", + "domains": [ + "tinyurl.com" + ], + "regexps": [ + "(tinyurl\\.com/[0-9a-zA-Z-]+)" + ], + "regexp": "(tinyurl\\.com/[0-9a-zA-Z-]+)" + }, + "ul": { + "name": "ul", + "type": "premium", + "domains": [ + "uploaded.net" + ], + "regexps": [ + "(uploaded\\.net/(f|folder)/[A-Za-z0-9]+)", + "ul\\.to/(f|folder)/([A-Za-z0-9]+)" + ], + "regexp": "((uploaded\\.net/(f|folder)/[A-Za-z0-9]+))|(ul\\.to/(f|folder)/([A-Za-z0-9]+))" + }, + "unknow": { + "name": "unknow", + "type": "premium", + "domains": [ + "example.com" + ], + "regexps": [ + "(index\\.php\\?do=go&url=(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?)" + ], + "regexp": "(index\\.php\\?do=go&url=(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?)" + }, + "youtube": { + "name": "youtube", + "type": "premium", + "domains": [ + "youtube.com" + ], + "regexps": [ + "(youtube\\.com/[0-9a-zA-Z_\\-=?&]+list=[0-9a-zA-Z_\\-]+)" + ], + "regexp": "(youtube\\.com/[0-9a-zA-Z_\\-=?&]+list=[0-9a-zA-Z_\\-]+)" + }, + "zt-protect": { + "name": "zt-protect", + "type": "premium", + "domains": [ + "zt-protect.com" + ], + "regexps": [ + "(zt-protect\\.com/(voirlien|telecharger|proteger|pagelien|support|linkpage)/[0-9A-Za-z=-]{12,})" + ], + "regexp": "(zt-protect\\.com/(voirlien|telecharger|proteger|pagelien|support|linkpage)/[0-9A-Za-z=-]{12,})" + } + } } } \ No newline at end of file diff --git a/Provider/example_provider.py b/Provider/example_provider.py new file mode 100644 index 0000000..71f314d --- /dev/null +++ b/Provider/example_provider.py @@ -0,0 +1,259 @@ +"""Example provider that uses the new `ResultTable` API. + +This module demonstrates a minimal provider adapter that yields `ResultModel` +instances, a set of `ColumnSpec` definitions, and a tiny CLI-friendly renderer +(`render_table`) for demonstration. + +Run this to see sample output: + python -m Provider.example_provider + +Example usage (piped selector): + provider-table -provider example -sample | select -select 1 | add-file -store default +""" +from __future__ import annotations + +from pathlib import Path +from typing import Any, Dict, Iterable, List + +from SYS.result_table_api import ColumnSpec, ResultModel, title_column, ext_column + + +SAMPLE_ITEMS = [ + { + "name": "Book of Awe.pdf", + "path": "sample/Book of Awe.pdf", + "ext": "pdf", + "size": 1024000, + "source": "example", + }, + { + "name": "Song of Joy.mp3", + "path": "sample/Song of Joy.mp3", + "ext": "mp3", + "size": 5120000, + "source": "example", + }, + { + "name": "Cover Image.jpg", + "path": "sample/Cover Image.jpg", + "ext": "jpg", + "size": 20480, + "source": "example", + }, +] + + +def adapter(items: Iterable[Dict[str, Any]]) -> Iterable[ResultModel]: + """Convert provider-specific items into `ResultModel` instances. + + This adapter enforces the strict API requirement: it yields only + `ResultModel` instances (no legacy dict objects). + """ + for it in items: + title = it.get("name") or it.get("title") or (Path(str(it.get("path"))).stem if it.get("path") else "") + yield ResultModel( + title=str(title), + path=str(it.get("path")) if it.get("path") else None, + ext=str(it.get("ext")) if it.get("ext") else None, + size_bytes=int(it.get("size")) if it.get("size") is not None else None, + metadata=dict(it), + source=str(it.get("source")) if it.get("source") else "example", + ) + + +# Columns are intentionally *not* mandated. Create a factory that inspects +# sample rows and builds only columns that make sense for the provider data. +from SYS.result_table_api import metadata_column + + +def columns_factory(rows: List[ResultModel]) -> List[ColumnSpec]: + cols: List[ColumnSpec] = [title_column()] + + # If any row has an extension, include Ext column + if any(getattr(r, "ext", None) for r in rows): + cols.append(ext_column()) + + # If any row has size, include Size column + if any(getattr(r, "size_bytes", None) for r in rows): + cols.append(ColumnSpec("size", "Size", lambda rr: rr.size_bytes or "", lambda v: _format_size(v))) + + # Add any top-level metadata keys discovered (up to 3) as optional columns + seen_keys = [] + for r in rows: + for k in (r.metadata or {}).keys(): + if k in ("name", "title", "path"): + continue + if k not in seen_keys: + seen_keys.append(k) + if len(seen_keys) >= 3: + break + if len(seen_keys) >= 3: + break + + for k in seen_keys: + cols.append(metadata_column(k)) + + return cols + + +# Selection function: cmdlets rely on this to build selector args when the user +# selects a row (e.g., '@3' -> run next-cmd with the returned args). Prefer +# -path if available, otherwise fall back to -title. +def selection_fn(row: ResultModel) -> List[str]: + if row.path: + return ["-path", row.path] + return ["-title", row.title] + + +# Register the provider with the registry so callers can discover it by name +from SYS.result_table_adapters import register_provider +register_provider( + "example", + adapter, + columns=columns_factory, + selection_fn=selection_fn, + metadata={"description": "Example provider demonstrating dynamic columns and selectors"}, +) + + +def _format_size(size: Any) -> str: + try: + s = int(size) + except Exception: + return "" + if s >= 1024 ** 3: + return f"{s / (1024 ** 3):.2f} GB" + if s >= 1024 ** 2: + return f"{s / (1024 ** 2):.2f} MB" + if s >= 1024: + return f"{s / 1024:.2f} KB" + return f"{s} B" + + +def render_table(rows: Iterable[ResultModel], columns: List[ColumnSpec]) -> str: + """Render a simple ASCII table of `rows` using `columns`. + + This is intentionally very small and dependency-free for demonstration. + Renderers in the project should implement the `Renderer` protocol. + """ + rows = list(rows) + + # Build cell matrix (strings) + matrix: List[List[str]] = [] + for r in rows: + cells: List[str] = [] + for col in columns: + raw = col.extractor(r) + if col.format_fn: + try: + cell = col.format_fn(raw) + except Exception: + cell = str(raw or "") + else: + cell = str(raw or "") + cells.append(cell) + matrix.append(cells) + + # Compute column widths as max(header, content) + headers = [c.header for c in columns] + widths = [len(h) for h in headers] + for row_cells in matrix: + for i, cell in enumerate(row_cells): + widths[i] = max(widths[i], len(cell)) + + # Helper to format a row + def fmt_row(cells: List[str]) -> str: + return " | ".join(cell.ljust(widths[i]) for i, cell in enumerate(cells)) + + lines: List[str] = [] + lines.append(fmt_row(headers)) + lines.append("-+-".join("-" * w for w in widths)) + for row_cells in matrix: + lines.append(fmt_row(row_cells)) + + return "\n".join(lines) + + +# Rich-based renderer (returns a Rich Table renderable) +def render_table_rich(rows: Iterable[ResultModel], columns: List[ColumnSpec]): + """Render rows as a `rich.table.Table` for terminal output. + + Returns the Table object; callers may `Console.print(table)` to render. + """ + try: + from rich.table import Table as RichTable + except Exception as exc: # pragma: no cover - rare if rich missing + raise RuntimeError("rich is required for rich renderer") from exc + + table = RichTable(show_header=True, header_style="bold") + for col in columns: + table.add_column(col.header) + + for r in rows: + cells: List[str] = [] + for col in columns: + raw = col.extractor(r) + if col.format_fn: + try: + cell = col.format_fn(raw) + except Exception: + cell = str(raw or "") + else: + cell = str(raw or "") + cells.append(cell) + table.add_row(*cells) + + return table + + +def demo() -> None: + rows = list(adapter(SAMPLE_ITEMS)) + table = render_table_rich(rows, columns_factory(rows)) + try: + from rich.console import Console + except Exception: + # Fall back to plain printing if rich is not available + print("Example provider output:") + print(render_table(rows, columns_factory(rows))) + return + + console = Console() + console.print("Example provider output:") + console.print(table) + + +def demo_with_selection(idx: int = 0) -> None: + """Demonstrate how a cmdlet would use provider registration and selection args. + + - Fetch the registered provider by name + - Build rows via adapter + - Render the table + - Show the selection args for the chosen row; these are the args a cmdlet + would append when the user picks that row. + """ + from SYS.result_table_adapters import get_provider + + provider = get_provider("example") + rows = list(provider.adapter(SAMPLE_ITEMS)) + cols = provider.get_columns(rows) + + # Render + try: + from rich.console import Console + except Exception: + print(render_table(rows, cols)) + sel_args = provider.selection_args(rows[idx]) + print("Selection args for row", idx, "->", sel_args) + return + + console = Console() + console.print("Example provider output:") + console.print(render_table_rich(rows, cols)) + + # Selection args example + sel = provider.selection_args(rows[idx]) + console.print("Selection args for row", idx, "->", sel) + + +if __name__ == "__main__": + demo() diff --git a/Provider/vimm.py b/Provider/vimm.py index d408682..39b49a9 100644 --- a/Provider/vimm.py +++ b/Provider/vimm.py @@ -5,7 +5,7 @@ starting point for implementing a full Vimm (vimm.net) provider. It prefers server-rendered HTML parsing via lxml and uses the repo's `HTTPClient` helper for robust HTTP calls (timeouts/retries). - + Selectors in `search()` are intentionally permissive heuristics; update the XPaths to match the real site HTML when you have an actual fixture. """ @@ -78,6 +78,11 @@ class Vimm(Provider): resp = client.get(url) content = resp.content except Exception as exc: + # Log and return empty results on failure. The HTTP client will + # already attempt a certifi-based retry in common certificate + # verification failure cases; if you still see cert errors, install + # the `certifi` package or configure SSL_CERT_FILE to point at a + # valid CA bundle. log(f"[vimm] HTTP fetch failed: {exc}", file=sys.stderr) return [] @@ -183,3 +188,104 @@ class Vimm(Provider): continue return results[: max(0, int(limit))] + + +# Bridge into the ResultTable provider registry so vimm results can be rendered +# with the new provider/table/select API. +try: + from SYS.result_table_adapters import register_provider + from SYS.result_table_api import ResultModel + from SYS.result_table_api import title_column, ext_column, metadata_column + + def _convert_search_result_to_model(sr): + try: + if hasattr(sr, "to_dict"): + d = sr.to_dict() + elif isinstance(sr, dict): + d = sr + else: + d = { + "title": getattr(sr, "title", str(sr)), + "path": getattr(sr, "path", None), + "size_bytes": getattr(sr, "size_bytes", None), + "columns": getattr(sr, "columns", None), + "full_metadata": getattr(sr, "full_metadata", None), + } + except Exception: + d = {"title": getattr(sr, "title", str(sr))} + + title = d.get("title") or "" + path = d.get("path") or None + size = d.get("size_bytes") or None + ext = None + try: + if path: + from pathlib import Path + + suf = Path(str(path)).suffix + if suf: + ext = suf.lstrip(".") + except Exception: + ext = None + + metadata = d.get("full_metadata") or d.get("metadata") or {} + return ResultModel( + title=str(title), + path=str(path) if path is not None else None, + ext=str(ext) if ext is not None else None, + size_bytes=int(size) if size is not None else None, + metadata=metadata or {}, + source="vimm", + ) + + def _adapter(items): + for it in items: + yield _convert_search_result_to_model(it) + + def _columns_factory(rows): + cols = [title_column()] + if any(getattr(r, "ext", None) for r in rows): + cols.append(ext_column()) + if any(getattr(r, "size_bytes", None) for r in rows): + cols.append(metadata_column("size", "Size")) + # Add up to 2 discovered metadata keys from rows + seen = [] + for r in rows: + for k in (r.metadata or {}).keys(): + if k in ("name", "title", "path"): + continue + if k not in seen: + seen.append(k) + if len(seen) >= 2: + break + if len(seen) >= 2: + break + for k in seen: + cols.append(metadata_column(k)) + return cols + + def _selection_fn(row): + if getattr(row, "path", None): + return ["-path", row.path] + return ["-title", row.title or ""] + + SAMPLE_ITEMS = [ + {"title": "Room of Awe", "path": "sample/Room of Awe", "ext": "zip", "size_bytes": 1024 * 1024 * 12, "full_metadata": {"platform": "PC"}}, + {"title": "Song of Joy", "path": "sample/Song of Joy.mp3", "ext": "mp3", "size_bytes": 5120000, "full_metadata": {"platform": "PC"}}, + {"title": "Cover Image", "path": "sample/Cover.jpg", "ext": "jpg", "size_bytes": 20480, "full_metadata": {}}, + ] + + try: + register_provider( + "vimm", + _adapter, + columns=_columns_factory, + selection_fn=_selection_fn, + metadata={"description": "Vimm provider bridge (ProviderCore -> ResultTable API)"}, + ) + except Exception: + # Non-fatal: registration is best-effort + pass +except Exception: + pass + diff --git a/SYS/result_table_adapters.py b/SYS/result_table_adapters.py new file mode 100644 index 0000000..b9a9ffa --- /dev/null +++ b/SYS/result_table_adapters.py @@ -0,0 +1,80 @@ +"""Provider registry for ResultTable API (breaking, strict API). + +Providers register themselves here with an adapter and optional column factory +and selection function. Consumers (cmdlets) can look up providers by name and +obtain the columns and selection behavior for building tables and for selection +args used by subsequent cmdlets. +""" +from __future__ import annotations + +from dataclasses import dataclass +from typing import Any, Callable, Dict, Iterable, List, Optional, Union + +from SYS.result_table_api import ColumnSpec, ProviderAdapter, ResultModel + + +ColumnFactory = Callable[[Iterable[ResultModel]], List[ColumnSpec]] +SelectionFn = Callable[[ResultModel], List[str]] + + +@dataclass +class Provider: + name: str + adapter: ProviderAdapter + # columns can be a static list or a factory that derives columns from sample rows + columns: Optional[Union[List[ColumnSpec], ColumnFactory]] = None + selection_fn: Optional[SelectionFn] = None + metadata: Optional[Dict[str, Any]] = None + + def get_columns(self, rows: Optional[Iterable[ResultModel]] = None) -> List[ColumnSpec]: + if callable(self.columns): + try: + rows_list = list(rows) if rows is not None else [] + return list(self.columns(rows_list)) + except Exception: + # Fall back to a minimal Title column on errors + return [ColumnSpec("title", "Title", lambda r: r.title)] + if self.columns is not None: + return list(self.columns) + # Default minimal column set + return [ColumnSpec("title", "Title", lambda r: r.title)] + + def selection_args(self, row: ResultModel) -> List[str]: + if callable(self.selection_fn): + try: + return list(self.selection_fn(row)) + except Exception: + return [] + # Default selector: prefer path flag, then title + if getattr(row, "path", None): + return ["-path", str(row.path)] + return ["-title", str(row.title)] + + +_PROVIDERS: Dict[str, Provider] = {} + + +def register_provider( + name: str, + adapter: ProviderAdapter, + *, + columns: Optional[Union[List[ColumnSpec], ColumnFactory]] = None, + selection_fn: Optional[SelectionFn] = None, + metadata: Optional[Dict[str, Any]] = None, +) -> Provider: + name = str(name or "").strip().lower() + if not name: + raise ValueError("provider name required") + if name in _PROVIDERS: + raise ValueError(f"provider already registered: {name}") + p = Provider(name=name, adapter=adapter, columns=columns, selection_fn=selection_fn, metadata=metadata) + _PROVIDERS[name] = p + return p + + +def get_provider(name: str) -> Provider: + return _PROVIDERS[name.lower()] + + +def list_providers() -> List[str]: + return list(_PROVIDERS.keys()) diff --git a/SYS/result_table_api.py b/SYS/result_table_api.py new file mode 100644 index 0000000..cf64d6b --- /dev/null +++ b/SYS/result_table_api.py @@ -0,0 +1,109 @@ +"""ResultTable API types and small helpers (breaking: no legacy compatibility). + +This module provides the canonical dataclasses and protocols that providers and +renderers must use. It intentionally refuses to accept legacy dicts/strings/objs +— adapters must produce `ResultModel` instances. +""" +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Callable, Dict, Iterable, Optional, Protocol + + +@dataclass(frozen=True) +class ResultModel: + """Canonical result model that providers must produce. + + Fields: + - title: human-friendly title (required) + - path: optional filesystem path/URL + - ext: file extension (without dot), e.g. "pdf", "mp3" + - size_bytes: optional size in bytes + - media_kind: one of 'video','audio','image','doc', etc. + - metadata: arbitrary provider-specific metadata + - source: provider name string + """ + + title: str + path: Optional[str] = None + ext: Optional[str] = None + size_bytes: Optional[int] = None + media_kind: Optional[str] = None + metadata: Dict[str, Any] = field(default_factory=dict) + source: Optional[str] = None + + +@dataclass(frozen=True) +class ColumnSpec: + """Specification for a column that renderers will use. + + extractor: callable that accepts a ResultModel and returns the cell value. + format_fn: optional callable used to format the extracted value to string. + """ + + name: str + header: str + extractor: Callable[[ResultModel], Any] + format_fn: Optional[Callable[[Any], str]] = None + width: Optional[int] = None + sortable: bool = False + + +ProviderAdapter = Callable[[Iterable[Any]], Iterable[ResultModel]] +"""Type for provider adapters. + +Adapters must accept provider-specific sequence/iterable and yield +`ResultModel` instances only. Anything else is an error (no implicit normalization). +""" + + +class Renderer(Protocol): + """Renderer protocol. + + Implementations should accept rows and columns and return a renderable + or side-effect (e.g., print to terminal). Keep implementations deterministic + and side-effect-free when possible (return a Rich renderable object). + """ + + def render(self, rows: Iterable[ResultModel], columns: Iterable[ColumnSpec], meta: Optional[Dict[str, Any]] = None) -> Any: # pragma: no cover - interface + ... + + +# Small helper enforcing strict API usage + +def ensure_result_model(obj: Any) -> ResultModel: + """Ensure `obj` is a `ResultModel` instance, else raise TypeError. + + This makes the API intentionally strict: providers must construct ResultModel + objects. + """ + if isinstance(obj, ResultModel): + return obj + raise TypeError("ResultModel required; providers must yield ResultModel instances") + + +# Convenience column spec generators + +def title_column() -> ColumnSpec: + return ColumnSpec("title", "Title", lambda r: r.title) + + +def ext_column() -> ColumnSpec: + return ColumnSpec("ext", "Ext", lambda r: r.ext or "") + + +# Helper to build a ColumnSpec that extracts a metadata key from ResultModel +def metadata_column(key: str, header: Optional[str] = None, format_fn: Optional[Callable[[Any], str]] = None) -> ColumnSpec: + hdr = header or str(key).replace("_", " ").title() + return ColumnSpec(name=key, header=hdr, extractor=lambda r: (r.metadata or {}).get(key), format_fn=format_fn) + + +__all__ = [ + "ResultModel", + "ColumnSpec", + "ProviderAdapter", + "Renderer", + "ensure_result_model", + "title_column", + "ext_column", +] diff --git a/SYS/result_table_renderers.py b/SYS/result_table_renderers.py new file mode 100644 index 0000000..c361e6a --- /dev/null +++ b/SYS/result_table_renderers.py @@ -0,0 +1,67 @@ +"""Renderers for the ResultTable API. + +This module provides a Rich-based Renderer implementation that returns a +`rich.table.Table` renderable. The implementation is intentionally small and +focused on the command-line display use-case; keep logic side-effect-free where +possible and let callers decide whether to `Console.print()` or capture output. +""" +from __future__ import annotations + +from typing import Any, Dict, Iterable, Optional + +from SYS.result_table_api import ColumnSpec, ResultModel, Renderer + + +class RichRenderer(Renderer): + """Rich renderer implementing the `Renderer` protocol. + + Usage: + from rich.console import Console + table = RichRenderer().render(rows, columns, meta) + Console().print(table) + """ + + def render(self, rows: Iterable[ResultModel], columns: Iterable[ColumnSpec], meta: Optional[Dict[str, Any]] = None) -> Any: # pragma: no cover - simple wrapper + try: + from rich.table import Table as RichTable + except Exception as exc: + raise RuntimeError("rich is required for RichRenderer") from exc + + table = RichTable(show_header=True, header_style="bold") + cols = list(columns) + for col in cols: + table.add_column(col.header) + + for r in rows: + cells = [] + for col in cols: + try: + raw = col.extractor(r) + if col.format_fn: + try: + cell = col.format_fn(raw) + except Exception: + cell = str(raw or "") + else: + cell = str(raw or "") + except Exception: + cell = "" + cells.append(cell) + table.add_row(*cells) + + return table + + +# Small convenience function + +def render_to_console(rows: Iterable[ResultModel], columns: Iterable[ColumnSpec], meta: Optional[Dict[str, Any]] = None) -> None: + try: + from rich.console import Console + except Exception: + # If rich isn't present, fall back to simple text output + for r in rows: + print(" ".join(str((col.extractor(r) or "")) for col in columns)) + return + + table = RichRenderer().render(rows, columns, meta) + Console().print(table) diff --git a/cmdlet/convert_file.py b/cmdlet/convert_file.py index 5040c23..c121a66 100644 --- a/cmdlet/convert_file.py +++ b/cmdlet/convert_file.py @@ -128,12 +128,24 @@ def _doc_convert(input_path: Path, output_path: Path) -> bool: return False target_fmt = output_path.suffix.lstrip(".").lower() or "pdf" + extra_args = [] + + if target_fmt == "pdf": + tectonic_path = shutil.which("tectonic") + if not tectonic_path: + log( + "tectonic is required for PDF output; install with `pip install tectonic`", + file=sys.stderr, + ) + return False + extra_args = ["--pdf-engine=tectonic"] try: pypandoc.convert_file( str(input_path), to=target_fmt, outputfile=str(output_path), + extra_args=extra_args, ) except OSError as exc: log(f"pandoc is missing or failed to run: {exc}", file=sys.stderr) @@ -163,7 +175,7 @@ CMDLET = Cmdlet( detail=[ "Allows video↔video, audio↔audio, image↔image, doc↔doc, and video→audio conversions.", "Disallows incompatible conversions (e.g., video→pdf).", - "Uses ffmpeg for media and pypandoc-binary (bundled pandoc) for document formats (mobi/epub→pdf/txt/etc).", + "Uses ffmpeg for media and pypandoc-binary (bundled pandoc) for document formats (mobi/epub→pdf/txt/etc); PDF output uses the tectonic LaTeX engine when available.", ], ) diff --git a/cmdlet/provider_table.py b/cmdlet/provider_table.py new file mode 100644 index 0000000..d4d9970 --- /dev/null +++ b/cmdlet/provider_table.py @@ -0,0 +1,157 @@ +from __future__ import annotations + +from typing import Any, Dict, Iterable, Optional, Sequence +from pathlib import Path + +from . import _shared as sh +from SYS.logger import log, debug +from SYS import pipeline as ctx + +from SYS.result_table_adapters import get_provider +from SYS.result_table_renderers import RichRenderer + +Cmdlet = sh.Cmdlet +CmdletArg = sh.CmdletArg +parse_cmdlet_args = sh.parse_cmdlet_args + + +CMDLET = Cmdlet( + name="provider-table", + summary="Render a provider's result set and optionally run a follow-up cmdlet using the selected row.", + usage="provider-table -provider [-sample] [-select ] [-run-cmd ]", + arg=[ + CmdletArg("provider", type="string", description="Provider name to render (default: example)"), + CmdletArg("sample", type="flag", description="Use provider sample/demo items when available."), + CmdletArg("select", type="int", description="1-based row index to select and use for follow-up command."), + CmdletArg("run-cmd", type="string", description="Cmdlet to invoke with the selected row's selector args."), + ], + detail=[ + "Use a registered provider to build a table and optionally run another cmdlet with selection args.", + "Emits pipeline-friendly dicts enriched with `_selection_args` so you can pipe into `select` and other cmdlets.", + "Example: provider-table -provider example -sample | select -select 1 | add-file -store default", + ], +) + + +def _run(result: Any, args: Sequence[str], config: Dict[str, Any]) -> int: + parsed = parse_cmdlet_args(args, CMDLET) + + provider_name = parsed.get("provider") or "example" + use_sample = bool(parsed.get("sample", False)) + run_cmd = parsed.get("run-cmd") + select_raw = parsed.get("select") + + try: + provider = get_provider(provider_name) + except Exception as exc: + log(f"Unknown provider: {provider_name}", file=sys.stderr) + return 1 + + # Obtain items to feed to the adapter + items = None + if use_sample: + # Try to locate SAMPLE_ITEMS in the adapter's module (convention only) + try: + mod = __import__(provider.adapter.__module__, fromlist=["*"]) + items = getattr(mod, "SAMPLE_ITEMS", None) + if items is None: + log("Provider does not expose SAMPLE_ITEMS; no sample available", file=sys.stderr) + return 1 + except Exception: + log("Failed to load provider sample", file=sys.stderr) + return 1 + else: + # Require input for non-sample runs + inputs = list(result) if isinstance(result, Iterable) else [] + if not inputs: + log("No input provided. Use -sample for demo or pipe provider items in.", file=sys.stderr) + return 1 + items = inputs + + # Build rows + try: + rows = list(provider.adapter(items)) + except Exception as exc: + log(f"Provider adapter failed: {exc}", file=sys.stderr) + return 1 + + cols = provider.get_columns(rows) + + # Emit rows for downstream pipeline consumption (pipable behavior). + try: + for r in rows: + try: + item = { + "title": getattr(r, "title", None) or None, + "path": getattr(r, "path", None) or None, + "ext": getattr(r, "ext", None) or None, + "size_bytes": getattr(r, "size_bytes", None) or None, + "metadata": getattr(r, "metadata", None) or {}, + "source": getattr(r, "source", None) or provider.name, + "_selection_args": provider.selection_args(r), + } + ctx.emit(item) + except Exception: + # Best-effort: continue emitting other rows + continue + except Exception: + # Non-fatal: continue to rendering even if emission fails + pass + + # Render using RichRenderer + try: + table = RichRenderer().render(rows, cols, provider.metadata) + try: + from rich.console import Console + + Console().print(table) + except Exception: + # Fallback to simple printing + for r in rows: + print(" ".join(str((c.extractor(r) or "")) for c in cols)) + except Exception as exc: + log(f"Rendering failed: {exc}", file=sys.stderr) + return 1 + + # If no selection requested, we're done + if not select_raw: + return 0 + + try: + select_idx = int(select_raw) - 1 + except Exception: + log("Invalid -select value; must be an integer", file=sys.stderr) + return 1 + + if select_idx < 0 or select_idx >= len(rows): + log("-select out of range", file=sys.stderr) + return 1 + + selected = rows[select_idx] + sel_args = provider.selection_args(selected) + + if not run_cmd: + # Print selection args for caller + log(f"Selection args: {sel_args}", file=sys.stderr) + return 0 + + # Run follow-up cmdlet + try: + from cmdlet import ensure_cmdlet_modules_loaded, get as get_cmdlet + + ensure_cmdlet_modules_loaded() + cmd_fn = get_cmdlet(run_cmd) + if not cmd_fn: + log(f"Follow-up cmdlet not found: {run_cmd}", file=sys.stderr) + return 1 + + # Call the cmdlet with no upstream result, but with selection args + ret = cmd_fn(None, sel_args, config or {}) + return ret + except Exception as exc: + log(f"Failed to invoke follow-up cmdlet: {exc}", file=sys.stderr) + return 1 + + +CMDLET.exec = _run +CMDLET.register() diff --git a/cmdlet/select_item.py b/cmdlet/select_item.py new file mode 100644 index 0000000..e7b656e --- /dev/null +++ b/cmdlet/select_item.py @@ -0,0 +1,238 @@ +from __future__ import annotations + +from typing import Any, Dict, List, Sequence +from . import _shared as sh +from SYS.logger import log, debug +from SYS import pipeline as ctx + +from SYS.result_table_api import ResultModel +from SYS.result_table_adapters import get_provider +from SYS.result_table_renderers import RichRenderer + +Cmdlet = sh.Cmdlet +CmdletArg = sh.CmdletArg +parse_cmdlet_args = sh.parse_cmdlet_args +normalize_result_input = sh.normalize_result_input + + +CMDLET = Cmdlet( + name="select", + summary="Select items from a piped result set (interactive or via -select) and emit the selected item(s).", + usage="select -select [-multi] [-run-cmd ]", + arg=[ + CmdletArg("select", type="string", description="Selection string (e.g., 1, 2-4)", alias="s"), + CmdletArg("multi", type="flag", description="Allow multiple selections."), + CmdletArg("interactive", type="flag", description="Prompt interactively for selection."), + CmdletArg("run-cmd", type="string", description="Cmdlet to invoke with selected items (each)"), + ], + detail=[ + "Accepts piped input from provider-table or other sources and emits the selected item(s) as dicts.", + "If -run-cmd is provided, invokes the named cmdlet for each selected item with selector args and the item as piped input.", + ], +) + + +def _parse_selection(selection: str, max_len: int) -> List[int]: + """Parse a selection string like '1', '1-3', '1,3,5-7' into 0-based indices.""" + if not selection: + return [] + parts = [p.strip() for p in str(selection).split(",") if p.strip()] + indices = set() + for part in parts: + if "-" in part: + try: + a, b = part.split("-", 1) + start = int(a.strip()) + end = int(b.strip()) + if start > end: + start, end = end, start + for i in range(start, end + 1): + if 1 <= i <= max_len: + indices.add(i - 1) + except Exception: + raise ValueError(f"Invalid range: {part}") + else: + try: + v = int(part) + if 1 <= v <= max_len: + indices.add(v - 1) + except Exception: + raise ValueError(f"Invalid selection: {part}") + return sorted(indices) + + +def _dict_to_result_model(d: Dict[str, Any]) -> ResultModel: + if isinstance(d, ResultModel): + return d + # Allow dicts or objects with attributes + title = d.get("title") or d.get("name") or (d.get("path") and str(d.get("path")).split("/")[-1]) + return ResultModel( + title=str(title) if title is not None else "", + path=d.get("path") if d.get("path") is not None else None, + ext=d.get("ext") if d.get("ext") is not None else None, + size_bytes=d.get("size_bytes") if d.get("size_bytes") is not None else None, + metadata=d.get("metadata") or {}, + source=d.get("source") or None, + ) + + +def _run(result: Any, args: Sequence[str], config: Dict[str, Any]) -> int: + parsed = parse_cmdlet_args(args, CMDLET) + + select_raw = parsed.get("select") + allow_multi = bool(parsed.get("multi", False)) + interactive = bool(parsed.get("interactive", False)) + run_cmd = parsed.get("run-cmd") + + inputs = normalize_result_input(result) + if not inputs: + log("No input provided to select; pipe provider-table output or use a cmdlet that emits items.", file=sys.stderr) + return 1 + + # Model-ize items + rows = [_dict_to_result_model(item if isinstance(item, dict) else item) for item in inputs] + + # Attempt to detect provider from first item + provider = None + first_src = inputs[0].get("source") if isinstance(inputs[0], dict) else None + if first_src: + try: + provider = get_provider(first_src) + except Exception: + provider = None + + # Columns: ask provider for column spec if available, else build minimal columns + if provider: + cols = provider.get_columns(rows) + else: + # Minimal columns built from available keys + from SYS.result_table_api import title_column, ext_column + + cols = [title_column()] + if any(r.ext for r in rows): + cols.append(ext_column()) + + # Render table to console + try: + table = RichRenderer().render(rows, cols, None) + try: + from rich.console import Console + + Console().print(table) + except Exception: + for r in rows: + print(" ".join(str((c.extractor(r) or "")) for c in cols)) + except Exception as exc: + log(f"Rendering failed: {exc}", file=sys.stderr) + return 1 + + # Determine selection indices + indices: List[int] = [] + if select_raw: + try: + indices = _parse_selection(str(select_raw), len(rows)) + except ValueError as exc: + log(str(exc), file=sys.stderr) + return 1 + elif interactive: + # Prompt user (single index only unless multi) + try: + from rich.prompt import Prompt + + prompt_text = "Select item(s) (e.g., 1 or 1,3-5)" + if not allow_multi: + prompt_text += " (single)" + choice = Prompt.ask(prompt_text).strip() + indices = _parse_selection(choice, len(rows)) + except Exception as exc: + log(f"Interactive selection failed: {exc}", file=sys.stderr) + return 1 + else: + log("No selection requested. Use -select or -interactive.", file=sys.stderr) + return 1 + + if not indices: + log("No valid selection indices provided", file=sys.stderr) + return 1 + + # Build selected items and emit + selected_items: List[Dict[str, Any]] = [] + for idx in indices: + try: + raw = inputs[idx] if idx < len(inputs) else None + if isinstance(raw, dict): + selected = dict(raw) + elif isinstance(raw, ResultModel): + selected = { + "title": raw.title, + "path": raw.path, + "ext": raw.ext, + "size_bytes": raw.size_bytes, + "metadata": raw.metadata or {}, + "source": raw.source, + } + else: + # try to call to_dict or fallback + try: + selected = raw.to_dict() + except Exception: + selected = {"title": getattr(raw, "title", str(raw))} + + # Ensure selection args exist + if not selected.get("_selection_args"): + if provider: + try: + sel_args = provider.selection_args(rows[idx]) + selected["_selection_args"] = sel_args + except Exception: + selected["_selection_args"] = [] + else: + # fallback + if selected.get("path"): + selected["_selection_args"] = ["-path", selected.get("path")] + else: + selected["_selection_args"] = ["-title", selected.get("title") or ""] + + selected_items.append(selected) + except Exception: + continue + + # Emit selected items so downstream cmdlets can consume them + try: + for itm in selected_items: + ctx.emit(itm) + except Exception: + pass + + # Optionally run follow-up cmdlet for each selected item + if run_cmd: + try: + from cmdlet import ensure_cmdlet_modules_loaded, get as get_cmdlet + + ensure_cmdlet_modules_loaded() + cmd_fn = get_cmdlet(run_cmd) + if not cmd_fn: + log(f"Follow-up cmdlet not found: {run_cmd}", file=sys.stderr) + return 1 + + exit_code = 0 + for itm in selected_items: + sel_args = itm.get("_selection_args") or [] + # Invoke follow-up cmdlet with the selected item as piped input + try: + ret = cmd_fn(itm, sel_args, config or {}) + except Exception as exc: + log(f"Follow-up cmdlet raised: {exc}", file=sys.stderr) + ret = 1 + if ret != 0: + exit_code = ret + return exit_code + except Exception as exc: + log(f"Failed to invoke follow-up cmdlet: {exc}", file=sys.stderr) + return 1 + + return 0 + + +CMDLET.exec = _run +CMDLET.register() diff --git a/docs/result_table_selector.md b/docs/result_table_selector.md new file mode 100644 index 0000000..f532412 --- /dev/null +++ b/docs/result_table_selector.md @@ -0,0 +1,22 @@ +Selector & provider-table usage + +This project provides a small provider/table/selector flow that allows providers +and cmdlets to interact via a simple, pipable API. + +Key ideas +- `provider-table` renders a provider result set and *emits* pipeline-friendly dicts for each row. Each emitted item includes `_selection_args`, a list of args the provider suggests for selecting that row (e.g., `['-path', '/tmp/file']`). +- `select` accepts piped items, displays a table (Rich-based), and supports selecting rows either via `-select` or `-interactive` prompt. Selected items are emitted for downstream cmdlets or you can use `-run-cmd` to invoke another cmdlet for each selected item. + +Example (non-interactive): + + provider-table -provider example -sample | select -select 1 | add-file -store default + +What providers must implement +- An adapter that yields `ResultModel` objects (breaking API). +- Optionally supply a `columns` factory and `selection_fn` (see `Provider/example_provider.py`). + +Implementation notes +- `provider-table` emits dicts like `{ 'title': ..., 'path': ..., 'metadata': ..., '_selection_args': [...] }`. +- `select` will prefer `_selection_args` if present; otherwise it will fall back to provider selection logic or sensible defaults (`-path` or `-title`). + +This design keeps the selector-focused UX small and predictable while enabling full cmdlet interoperability via piping and `-run-cmd`. diff --git a/scripts/requirements.txt b/scripts/requirements.txt index bebb645..a045b31 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -3,6 +3,8 @@ typer>=0.9.0 rich>=13.7.0 prompt-toolkit>=3.0.0 textual>=0.30.0 +pip-system-certs + # Media processing and downloading yt-dlp[default]>=2023.11.0