mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[extractor/screencastomatic] Support --video-password (#4761)
				
					
				
			Authored by: shreyasminocha
This commit is contained in:
		| @@ -1,10 +1,12 @@ | ||||
| from .common import InfoExtractor | ||||
| from ..utils import ( | ||||
|     ExtractorError, | ||||
|     get_element_by_class, | ||||
|     int_or_none, | ||||
|     remove_start, | ||||
|     strip_or_none, | ||||
|     unified_strdate, | ||||
|     urlencode_postdata, | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
| @@ -34,6 +36,28 @@ class ScreencastOMaticIE(InfoExtractor): | ||||
|         video_id = self._match_id(url) | ||||
|         webpage = self._download_webpage( | ||||
|             'https://screencast-o-matic.com/player/' + video_id, video_id) | ||||
| 
 | ||||
|         if (self._html_extract_title(webpage) == 'Protected Content' | ||||
|                 or 'This video is private and requires a password' in webpage): | ||||
|             password = self.get_param('videopassword') | ||||
| 
 | ||||
|             if not password: | ||||
|                 raise ExtractorError('Password protected video, use --video-password <password>', expected=True) | ||||
| 
 | ||||
|             form = self._search_regex( | ||||
|                 r'(?is)<form[^>]*>(?P<form>.+?)</form>', webpage, 'login form', group='form') | ||||
|             form_data = self._hidden_inputs(form) | ||||
|             form_data.update({ | ||||
|                 'scPassword': password, | ||||
|             }) | ||||
| 
 | ||||
|             webpage = self._download_webpage( | ||||
|                 'https://screencast-o-matic.com/player/password', video_id, 'Logging in', | ||||
|                 data=urlencode_postdata(form_data)) | ||||
| 
 | ||||
|             if '<small class="text-danger">Invalid password</small>' in webpage: | ||||
|                 raise ExtractorError('Unable to login: Invalid password', expected=True) | ||||
| 
 | ||||
|         info = self._parse_html5_media_entries(url, webpage, video_id)[0] | ||||
|         info.update({ | ||||
|             'id': video_id, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Shreyas Minocha
					Shreyas Minocha