
    V|h
                     J    S SK Jr  SSKJr  SSKJrJrJrJr   " S S\5      r	g)   )InfoExtractor   )	HTTPError)ExtractorErrorextract_attributestry_geturlencode_postdatac                   6    \ rS rSrSrSSSSS.SS	0S
.rS rSrg)
TVPlayerIE   z6https?://(?:www\.)?tvplayer\.com/watch/(?P<id>[^/?#]+)z http://tvplayer.com/watch/bbcone89mp4z9re:^BBC One [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$)idexttitleskip_downloadT)url	info_dictparamsc                    U R                  U5      nU R                  X5      n[        U R                  SUS5      5      nUS   nUS   nU R                  SUSSS9nU R	                  SUS	UUS
.S9nUS   n	[        US [        5      =(       d    Sn
 U R	                  SUSSS0[        USU
U	S.5      S9S   S   nU R%                  US   US5      nUUUUSS.$ ! [         a  n[        UR                  [        5      (       ao  U R                  UR                  R                  R                  5       R                  5       U5      S   S   n[        SR!                  U R"                  US   5      SS9ee S nAff = f)Nz2(<div[^>]+class="[^"]*current-channel[^"]*"[^>]*>)zchannel elementz	data-namezdata-idz'data-token=(["\'])(?P<token>(?!\1).+)\1token)groupz"https://tvplayer.com/watch/contextzDownloading JSON context)resourcegen)queryvalidatec                     U S   S   $ )Nplatformkey )xs    S/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/tvplayer.py<lambda>*TVPlayerIE._real_extract.<locals>.<lambda>2   s    q}U3    firefoxz*http://api.tvplayer.com/api/v2/stream/livezDownloading JSON streamzContent-Typez0application/x-www-form-urlencoded; charset=UTF-8r   )r   servicer   r   )headersdatatvplayerresponsez{} said: {}errorT)expectedstreamr   )r   
display_idr   formatsis_live)	_match_id_download_webpager   _search_regex_download_jsonr   strr	   r   
isinstancecauser   _parse_jsonr+   readdecodeformatIE_NAME_extract_m3u8_formats)selfr   r/   webpagecurrent_channelr   resource_idr   contextr   r   r+   er0   s                 r"   _real_extractTVPlayerIE._real_extract   s   ^^C(
((9,T-?-?A&.( )  ,%i0""67 # $ %%0*&'/ &  :&3S: G=F 		**<5"$V@*%  ( (	, 	 + 	 	  !+	,H$ ,,Xh-?US $
 	
  	!''9--++GG$$))+224kCCMOOY[$!((x7HITXZ Z	s   )C 
E6"BE11E6r    N)__name__
__module____qualname____firstlineno__
_VALID_URL_TESTrE   __static_attributes__r    r%   r"   r   r      s0    JJ1Q
 T
E5
r%   r   N)
commonr   networking.exceptionsr   utilsr   r   r   r	   r   r    r%   r"   <module>rQ      s#    ! - D
 D
r%   