
    VGh                     J    d dl Z d dlZddlmZ ddlmZmZmZ  G d de      Z	y)    N   )InfoExtractor   )determine_extint_or_none
js_to_jsonc                   b    e Zd ZdZdZdez   Zde dgZdddd	d
dddidgdddddddgZd Zy)
UDNEmbedIEu   聯合影音z1//video\.udn\.com/(?:embed|play)/news/(?P<id>\d+)zhttps?:z%<iframe[^>]+src="(?:https?:)?(?P<url>z)"z&http://video.udn.com/embed/news/300040300040mp4u*   生物老師男變女 全校挺"做自己"zre:^https?://.*\.jpg$)idexttitle	thumbnailskip_downloadTz$Failed to parse JSON Expecting value)url	info_dictparamsexpected_warningsz'https://video.udn.com/embed/news/300040)r   only_matchingz&https://video.udn.com/play/news/303776c           	      H   | j                  |      }| j                  ||      }| j                  d|d      }t        |      }| j	                  |dd      xs i }|r|d   }|d   }|j                  d      }	nK| j	                  | j                  d|d	      d	      }| j                  d
|d      }| j                  d|dd       }	|j                  d      r!| j                  |j                  d      d      S g }
|j                         D ]  \  }}|s
| j                  t        j                  j                  ||      |d| d      }t        |      }|dk(  r%|
j                  | j                  ||dd             u|dk(  r$|
j                  | j                  ||d             t        j                   d|      }|d|z   d}|rD|j#                  t%        |j'                  d            t%        |j'                  d            d       |
j)                  |        ||
||	dS ) Nzvar\s+options\s*=\s*([^;]+);optionsF)fatalvideor   posterz"video"\s*:\s*({.+?})\s*,z
video urlsztitle\s*:\s*'(.+?)'\s*,zposter\s*:\s*'(.+?)'\s*,)defaultyoutubeYoutubezretrieve url for z video)notem3u8r   hls)r   m3u8_idf4mhds)f4m_idz#_(?P<height>\d+)p_(?P<tbr>\d+)\.mp4zhttp-)r   	format_idheighttbr)r'   r(   )r   formatsr   r   )	_match_id_download_webpage_html_search_regexr   _parse_jsonget
url_resultitemsurllibparseurljoinr   extend_extract_m3u8_formats_extract_f4m_formatsresearchupdater   groupappend)selfr   video_idpageoptions_strtrans_options_strr   
video_urlsr   r   r)   
video_typeapi_url	video_urlr   mobja_formats                    ]/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/udn.py_real_extractzUDNEmbedIE._real_extract'   sZ   >>#&%%c84--+T9>&{3""#4iu"MSQS )JG$E[[*F))$*A*A,.?+OP\^J++*KBE,,+[(D - RF >>)$??:>>)#<iHH#-#3#3#5 	)J..$$S'2H(F; / =I  	*Cf}t99xUE  :  C Dt88x  9  7 8 yy!GS$!(:!5
 OO"-djj.B"C*4::e+<=%  x(7	)< 	
 	
    N)	__name__
__module____qualname__IE_DESC_PROTOCOL_RELATIVE_VALID_URL
_VALID_URL_EMBED_REGEX_TESTSrH    rI   rG   r
   r
      s    G#W ::J<=Y<ZZ\]^L7A1	
 T
 EE 9
 8!F,;
rI   r
   )
r7   urllib.parser1   commonr   utilsr   r   r   r
   rR   rI   rG   <module>rV      s&    	  ! V
 V
rI   