aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJChris246 <43832407+JChris246@users.noreply.github.com>2023-02-16 23:14:33 -0400
committerGitHub <noreply@github.com>2023-02-17 08:44:33 +0530
commitda880559a6ecbbf374cc9f3378e696b55b9599af (patch)
treeda7b00eac7e90950c2b84e05020a7032f31f2180
parent65e5c021e7c5f23ecbc6a982b72a02ac6cd6900d (diff)
downloadhypervideo-pre-da880559a6ecbbf374cc9f3378e696b55b9599af.tar.lz
hypervideo-pre-da880559a6ecbbf374cc9f3378e696b55b9599af.tar.xz
hypervideo-pre-da880559a6ecbbf374cc9f3378e696b55b9599af.zip
[extractor/ebay] Add extractor (#6170)
Closes #6134 Authored by: JChris246
-rw-r--r--yt_dlp/extractor/_extractors.py1
-rw-r--r--yt_dlp/extractor/ebay.py36
2 files changed, 37 insertions, 0 deletions
diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py
index 86fa117b7..a9ab66fc7 100644
--- a/yt_dlp/extractor/_extractors.py
+++ b/yt_dlp/extractor/_extractors.py
@@ -507,6 +507,7 @@ from .dw import (
)
from .eagleplatform import EaglePlatformIE, ClipYouEmbedIE
from .ebaumsworld import EbaumsWorldIE
+from .ebay import EbayIE
from .echomsk import EchoMskIE
from .egghead import (
EggheadCourseIE,
diff --git a/yt_dlp/extractor/ebay.py b/yt_dlp/extractor/ebay.py
new file mode 100644
index 000000000..d0eb9fc51
--- /dev/null
+++ b/yt_dlp/extractor/ebay.py
@@ -0,0 +1,36 @@
+from .common import InfoExtractor
+from ..utils import remove_end
+
+
+class EbayIE(InfoExtractor):
+ _VALID_URL = r'https?://(?:www\.)?ebay\.com/itm/(?P<id>\d+)'
+ _TESTS = [{
+ 'url': 'https://www.ebay.com/itm/194509326719',
+ 'info_dict': {
+ 'id': '194509326719',
+ 'ext': 'mp4',
+ 'title': 'WiFi internal antenna adhesive for wifi 2.4GHz wifi 5 wifi 6 wifi 6E full bands',
+ },
+ 'params': {'skip_download': 'm3u8'}
+ }]
+
+ def _real_extract(self, url):
+ video_id = self._match_id(url)
+ webpage = self._download_webpage(url, video_id)
+
+ video_json = self._search_json(r'"video":', webpage, 'video json', video_id)
+
+ formats = []
+ for key, url in video_json['playlistMap'].items():
+ if key == 'HLS':
+ formats.extend(self._extract_m3u8_formats(url, video_id, fatal=False))
+ elif key == 'DASH':
+ formats.extend(self._extract_mpd_formats(url, video_id, fatal=False))
+ else:
+ self.report_warning(f'Unsupported format {key}', video_id)
+
+ return {
+ 'id': video_id,
+ 'title': remove_end(self._html_extract_title(webpage), ' | eBay'),
+ 'formats': formats
+ }