From 225c213d9d0bc93f75071e173340edadecffd8e8 Mon Sep 17 00:00:00 2001 From: Michael Schlapa Date: Wed, 15 Jul 2026 23:12:31 +0200 Subject: [PATCH] Add vidmoly capabilities --- pyproject.toml | 4 ++-- yt_dlp_plugins/extractor/vidmoly.py | 33 +++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 yt_dlp_plugins/extractor/vidmoly.py diff --git a/pyproject.toml b/pyproject.toml index d61c062..e1f12b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] -name = "filemoon-extractor" -version = "1" +name = "schrottis-extractors" +version = "2" dependencies = [ "pycryptodome", "yt-dlp" diff --git a/yt_dlp_plugins/extractor/vidmoly.py b/yt_dlp_plugins/extractor/vidmoly.py new file mode 100644 index 0000000..ed73d54 --- /dev/null +++ b/yt_dlp_plugins/extractor/vidmoly.py @@ -0,0 +1,33 @@ +import urllib.parse +import re + +from datetime import datetime + + +from yt_dlp.extractor.common import InfoExtractor + + +class VidmolyIE(InfoExtractor): + _valid_domains = r'|'.join([r'vidmoly\.biz']) + _VALID_URL = r'https?://(?:' + _valid_domains + ')/embed-(?P\w+)\.html$' + + def _real_extract(self, url): + video_id = urllib.parse.unquote_plus(self._match_id(url)) + + html = self._download_html(url) + + m3u8_url = re.findall("'(https\\:\\/\\/.*master\\.m3u.*)'", html.text)[0] + formats = self._extract_m3u8_formats( + m3u8_url, video_id, 'mp4', + 'm3u8_native', m3u8_id='hls') + title = re.findall(r"(.*)<\/title>", html.text)[0] + + ret = { + 'id': video_id, + 'display_id': video_id, + 'title': title, + 'formats': formats, + } + + return ret +