Porównaj commity

...

9 Commity

Autor SHA1 Wiadomość Data
HobbyistDev d08efa800d
Merge 4741aded6f into 89f535e265 2024-04-23 12:25:35 +02:00
bashonly 89f535e265
[ci] Fix `curl-cffi` installation (Bugfix for 02483bea1c)
Authored by: bashonly
2024-04-22 20:36:01 +00:00
HobbyistDev 4741aded6f add `md5` key for mp4 link test case 2024-04-11 08:01:24 +08:00
HobbyistDev d493ce72b6 Change test value 2024-04-11 07:29:12 +08:00
HobbyistDev f326e05e9f Add `formats` and `subtitles` in return 2024-04-11 07:25:54 +08:00
HobbyistDev 89cb7f7d98
Simplify extraction process
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
2024-04-11 07:22:56 +08:00
HobbyistDev 08563a1cad
Remove unneccassry `webpage` extraction
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
2024-04-11 07:22:28 +08:00
HobbyistDev 6c311b14c6
Use auto-generated title instead of `title` tag of the website
Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com>
2024-04-11 07:21:59 +08:00
HobbyistDev eb2969d324 [extractor/godresource] Add GodResource extractor 2024-04-06 13:19:42 +08:00
3 zmienionych plików z 79 dodań i 1 usunięć

Wyświetl plik

@ -53,7 +53,7 @@ jobs:
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
- name: Install test requirements - name: Install test requirements
run: python3 ./devscripts/install_deps.py --include dev --include curl_cffi run: python3 ./devscripts/install_deps.py --include dev --include curl-cffi
- name: Run tests - name: Run tests
continue-on-error: False continue-on-error: False
run: | run: |

Wyświetl plik

@ -713,6 +713,7 @@ from .globo import (
from .gmanetwork import GMANetworkVideoIE from .gmanetwork import GMANetworkVideoIE
from .go import GoIE from .go import GoIE
from .godtube import GodTubeIE from .godtube import GodTubeIE
from .godresource import GodResourceIE
from .gofile import GofileIE from .gofile import GofileIE
from .golem import GolemIE from .golem import GolemIE
from .goodgame import GoodGameIE from .goodgame import GoodGameIE

Wyświetl plik

@ -0,0 +1,77 @@
from .common import InfoExtractor
from ..utils import (
ExtractorError,
determine_ext,
str_or_none,
unified_timestamp,
url_or_none
)
from ..utils.traversal import traverse_obj
class GodResourceIE(InfoExtractor):
_VALID_URL = r'https?://new\.godresource\.com/video/(?P<id>\w+)'
_TESTS = [{
# hls stream
'url': 'https://new.godresource.com/video/A01mTKjyf6w',
'info_dict': {
'id': 'A01mTKjyf6w',
'ext': 'mp4',
'view_count': int,
'timestamp': 1710978666,
'channel_id': '5',
'thumbnail': 'https://cdn-02.godresource.com/e42968ac-9e8b-4231-ab86-f4f9d775841f/thumbnail.jpg',
'channel': 'Stedfast Baptist Church',
'upload_date': '20240320',
'title': 'GodResource video #A01mTKjyf6w',
}
}, {
# mp4 link
'url': 'https://new.godresource.com/video/01DXmBbQv_X',
'md5': '0e8f72aa89a106b9d5c011ba6f8717b7',
'info_dict': {
'id': '01DXmBbQv_X',
'ext': 'mp4',
'channel_id': '12',
'view_count': int,
'timestamp': 1687996800,
'thumbnail': 'https://cdn-02.godresource.com/sodomitedeception/thumbnail.jpg',
'channel': 'Documentaries',
'title': 'The Sodomite Deception',
'upload_date': '20230629',
}
}]
def _real_extract(self, url):
display_id = self._match_id(url)
api_data = self._download_json(
f'https://api.godresource.com/api/Streams/{display_id}', display_id)
video_url = api_data['streamUrl']
if (ext := determine_ext(video_url)) == 'm3u8':
formats, subtitles = self._extract_m3u8_formats_and_subtitles(
api_data['streamUrl'], display_id)
elif ext == 'mp4':
formats, subtitles = [{
'url': video_url,
'ext': ext
}], {}
else:
raise ExtractorError(f'Unexpected video format {ext}')
return {
'id': display_id,
'formats': formats,
'subtitles': subtitles,
'title': '',
**traverse_obj(api_data, {
'title': ('title', {str}),
'thumbnail': ('thumbnail', {url_or_none}),
'view_count': ('views', {int}),
'channel': ('channelName', {str}),
'channel_id': ('channelId', {str_or_none}),
'timestamp': ('streamDateCreated', {unified_timestamp}),
'modified_timestamp': ('streamDataModified', {unified_timestamp})
})
}