mirror of
https://github.com/yt-dlp/yt-dlp
synced 2025-01-01 06:21:09 +01:00
[GoogleDriveFolderIE] Several fixes
- Update test: GoogleDriveFolder_1 - Raise for log-in required - catch HTTP Error 404
This commit is contained in:
parent
6e98d99dd5
commit
8623ada293
1 changed files with 15 additions and 6 deletions
|
@ -3,6 +3,7 @@ import urllib.parse
|
||||||
|
|
||||||
from .common import InfoExtractor
|
from .common import InfoExtractor
|
||||||
from .youtube import YoutubeIE
|
from .youtube import YoutubeIE
|
||||||
|
from ..networking.exceptions import HTTPError
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
ExtractorError,
|
ExtractorError,
|
||||||
bug_reports_message,
|
bug_reports_message,
|
||||||
|
@ -303,13 +304,14 @@ class GoogleDriveFolderIE(InfoExtractor):
|
||||||
},
|
},
|
||||||
'playlist_count': 3,
|
'playlist_count': 3,
|
||||||
}, {
|
}, {
|
||||||
'note': 'Contains various formats and a subfolder, folder name was formerly mismatched',
|
'note': 'Contains various formats and a subfolder, folder name was formerly mismatched.'
|
||||||
'url': 'https://drive.google.com/drive/folders/1CkqRsNlzZ0o3IL083j17s6sH5Q83DcGo',
|
'also contains loop shortcut, shortcut to non-downloadable files, etc.',
|
||||||
|
'url': 'https://drive.google.com/drive/folders/1jjrhqi94d8TSHSVMSdBjD49MOiHYpHfF',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '1CkqRsNlzZ0o3IL083j17s6sH5Q83DcGo',
|
'id': '1jjrhqi94d8TSHSVMSdBjD49MOiHYpHfF',
|
||||||
'title': r'], sideChannel: {}});',
|
'title': '], sideChannel: {}});',
|
||||||
},
|
},
|
||||||
'playlist_count': 6,
|
'playlist_count': 8,
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def _extract_json_meta(self, webpage, video_id, dsval=None, hashval=None, name=None, **kwargs):
|
def _extract_json_meta(self, webpage, video_id, dsval=None, hashval=None, name=None, **kwargs):
|
||||||
|
@ -355,7 +357,14 @@ class GoogleDriveFolderIE(InfoExtractor):
|
||||||
folder_id = self._match_id(url)
|
folder_id = self._match_id(url)
|
||||||
headers = self.geo_verification_headers()
|
headers = self.geo_verification_headers()
|
||||||
|
|
||||||
webpage = self._download_webpage(url, folder_id, headers=headers)
|
try:
|
||||||
|
webpage, urlh = self._download_webpage_handle(url, folder_id, headers=headers)
|
||||||
|
except ExtractorError as e:
|
||||||
|
if isinstance(e.cause, HTTPError) and e.cause.status == 404:
|
||||||
|
self.raise_no_formats(e.cause.msg)
|
||||||
|
if urllib.parse.urlparse(urlh.url).netloc == 'accounts.google.com':
|
||||||
|
self.raise_login_required('This video is only available for registered users')
|
||||||
|
|
||||||
json_folder_info = (
|
json_folder_info = (
|
||||||
self._extract_json_meta(webpage, folder_id, dsval=0, name='folder info', default=None)
|
self._extract_json_meta(webpage, folder_id, dsval=0, name='folder info', default=None)
|
||||||
or self._extract_json_meta(webpage, folder_id, hashval=1)
|
or self._extract_json_meta(webpage, folder_id, hashval=1)
|
||||||
|
|
Loading…
Reference in a new issue