
    VGhT                     V    d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
mZmZ  G d de      Zy)   )InfoExtractor   )
ExtractorError
clean_htmlint_or_nonemerge_dictsparse_countstr_or_nonetry_getunified_strdateurlencode_postdataurljoinc                       e Zd ZdZdZdZdgZdZdddd	d
ddddddddddd	ddddi dddgZdddddddd d!d"	Z	d#d$d%Z
d&Zd' Zy())HKETVIEhketvuX   香港教育局教育電視 (HKETV) Educational Television, Hong Kong Educational BureauFHKz<https?://(?:www\.)?hkedcity\.net/etv/resource/(?P<id>[0-9]+)z0https://www.hkedcity.net/etv/resource/2932360618 f193712f5f7abb208ddef3c5ea6ed0b7
2932360618mp4u>   喜閱一生(共享閱讀樂) (中、英文字幕可供選擇)z$md5:d5286d05219ef50e0613311cbe96e56020181024i  zcount:2)idexttitledescriptionupload_dateduration	subtitleszGeo restricted to HK)urlmd5	info_dictskipz/https://www.hkedcity.net/etv/resource/972641418 1ed494c1c6cf7866a8290edad9b07dc9	972641418u!   衣冠楚楚 (天使系列之一)z$md5:10bb3d659421e74f58e5db5691627b0f20070109i  zzh-Hantzzh-Hansenr   hinetlthur)	u   中文（繁體中文）u   中文（简体中文）EnglishzBahasa Indonesiau   हिन्दीu   नेपालीTagalogu	   ไทยu   اردوih  i  )SDHDzhttps://apps.hkedcity.netc                    | j                  |      }| j                  ||      }| j                  d|d       xs@ | j                  d|dd d      xs( | j	                  d|dd       xs | j                  |      }| j                  d|d	      }| j                  d
|d      }d|||d}| j                  | j                  dz   |t        |      t        ddi| j                                     }|d   }	|j                  d      r|j                  d      sIt        |j                  d            }
d|
v r| j                  |
| j                         nt        |
d      g }t!        |	j                  d            }t!        |	j                  d            }|	d   d   }|d   D ]  }t#        | j                  |j                  d            }|s+|j                  d       }| j$                  j                  |      }|r|r
|r||z  |z  nd }|j'                  ||j                  d!      |||d"        i }t)        |d# t*              xs g }|D ]  }t-        |t.              st1        |j                  d$            }|rt-        |t2              sA|j5                         d%vrTt#        | j                  |j                  d            }|s||j                  d       }|j7                  | j8                  j                  ||      g       j'                  | j;                  |      d&d'        | j                  d(|t        d)d*|d+      ddid,-      xs i }t!        t)        |d.             }||| j                  d/|d,0      t=        | j                  d1|d,0      d,2      t!        |	j                  d3            ||t#        | j                  |	j                  d4            t?        |	j                  d5            |d6
S )7N)ed_titlezsearch.ed_title)defaultz=data-favorite_title_(?:eng|chi)=(["\'])(?P<id>(?:(?!\1).)+)\1r   r   )r1   groupz<h1>([^<]+)</h1>z-post_var\[["\']file_id["\']\s*\]\s*=\s*(.+?);zfile IDz0post_var\[["\']curr_url["\']\s*\]\s*=\s*"(.+?)";zcurr URLget_info)actioncurr_urlfile_id	video_urlz/media/play/handler.phpzContent-Typez!application/x-www-form-urlencoded)dataheadersresultsuccessaccessaccess_err_msgz0Video streaming is not available in your country)msg	countriesT)expectedwidthheightplaylist    sourcesfilelabeltype)	format_idr   r   rA   rB   c                     | d   S )Ntracks xs    _/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/hketv.py<lambda>z'HKETVIE._real_extract.<locals>.<lambda>   s
    ak     kind)captionsr   srt)r   r   z+https://emocounter.hkedcity.net/handler.phpget_emotionetv)r4   zdata[bucket_id]zdata[identifier]F)r8   r9   fatalc                     | d   d   d   d   S )Nr8   emotion_datarD   countrL   rM   s    rO   rP   z'HKETVIE._real_extract.<locals>.<lambda>   s    qy8;GD rQ   r   )rW   ed_date)	day_firstlengthimage
view_count)
r   r   r   r   r   formatsr   	thumbnailr_   
like_count) 	_match_id_download_webpage_html_search_meta_search_regex_html_search_regex_og_search_title_download_json_APPS_BASE_URLr   r   geo_verification_headersgetr   raise_geo_restricted_GEO_COUNTRIESr   r   r   _FORMAT_HEIGHTSappendr   list
isinstancedictr
   strlower
setdefault	_CC_LANGS_proto_relative_urlr   r	   )selfr   video_idwebpager   r6   r5   r8   responser:   errorr`   rA   rB   	playlist0fmtfile_urlrG   hwr   rK   track
track_kind	track_urltrack_labelemotionrb   s                               rO   _real_extractzHKETVIE._real_extractC   sZ   >>#&((h7 ""/$ # H .!!P$e " =.
 &&#Wgt ' E. $$W- 	 $$<Y  %%?Z! !  	
 &&";;X#D) C!E--/1 ' 2 (#||I&hll8.Dx||,<=>EAUJ)))<)< * > %UT::FJJw/0VZZ12:&q)	Y' 	Ct22CGGFODH
 GGG$E$$((/A'(UvE	V#4ANN"wwv 	& 	$94@FB 	EeT*$UYYv%67JZ
C%@!)BB 3 3UYYv5FGI))G,K  !3!3["*+-//5v33I> 7 0	& %%98#'#($,% 
 $%HI &    	 !D"F G
 11we 2 5*4+A+A7% ,B ,1<AC#FJJx$89" !4!4fjj6IJ%fjj&>?$
 	
rQ   N)__name__
__module____qualname__IE_NAMEIE_DESC_GEO_BYPASSrn   
_VALID_URL_TESTSrw   ro   rj   r   rL   rQ   rO   r   r      s    GhGKVNPJA1UA%"
 ' A18A%
 'F: %.$- 0404"$(
I O 1Nt
rQ   r   N)commonr   utilsr   r   r   r   r	   r
   r   r   r   r   r   rL   rQ   rO   <module>r      s%    !  g
m g
rQ   