a
    h!                     @   sp   d dl Z d dlZddlmZ ddlmZmZmZ ddl	m
Z
 G dd deZG d	d
 d
eZG dd deZdS )    N   )InfoExtractor   )int_or_none
js_to_jsonurl_or_none)traverse_objc                   @   sJ   e Zd ZdZdZddeeje dde dZ	dd Z
d	d
 ZdS )FaulioBaseIE)zaloula.sba.saz	bahry.comzmaraya.sba.net.aezsat7plus.org)arenfazhttps?://(?:|z)/(?:(?:z)/)?c                 C   s$   t j|}||j d|j dS )Nz://)ZRefererZOrigin)urllibparseurlparseschemehostname)selfurl
parsed_url r   L/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/extractor/faulio.py_get_headers   s    zFaulioBaseIE._get_headersc                 C   s,   |  ||}| jd|d|td}|d d S )Nzwindow\.__NUXT__\.config=config)Ztransform_sourcepublicZTRANSLATIONS_API_URL)Z_download_webpageZ_search_jsonr   )r   r   video_idZwebpageZconfig_datar   r   r   _get_api_base   s
    
zFaulioBaseIE._get_api_baseN)__name__
__module____qualname__Z_DOMAINSZ
_LANGUAGESjoinmapreescape_BASE_URL_REr   r   r   r   r   r   r	   	   s
   &r	   c                   @   s   e Zd Zej dZddddddddd	d
dddd
ddddddddddddddddddddddddddd	d
ddd dddd!d"dd#d$d$dd%ddd&dd'dddd(d)d*gZd+d, Zd-S ).FaulioIEz'(?:episode|media)/(?P<id>[a-zA-Z0-9-]+)z&https://aloula.sba.sa/en/episode/29102zaloula.faulio.com_29102mp4u    هذا-مكانك-03-004-v-29102u   الحلقة 4 u   هذا مكانكzSeason 3      zre:^https?://.*\.jpg$i  )idext
display_idtitleepisodedescriptionseriesZseasonseason_numberepisode_number	thumbnailduration	age_limit)r   	info_dictzhttps://bahry.com/en/media/1191zbahry.faulio.com_1191zEpisode-4-1191z	Episode 4z
Wild WaterzSeason 1r   iu  r   z(https://maraya.sba.net.ae/episode/127735zmaraya.faulio.com_127735uJ   عبدالله-الهاجري---عبدالرحمن-المطروشي-127735uC   عبدالله الهاجري - عبدالرحمن المطروشيz$md5:53de01face66d3d6303221e5a49388a0u    أبناؤنا في الخارج   i$  z"https://sat7plus.org/episode/18165zsat7.faulio.com_18165zep-13-ADHD-18165zADHD and creativityzADHD Podcast   i	  z"https://aloula.sba.sa/en/episode/0Tr   Zonly_matchingc                 C   sx  |  |}| ||}| j| d| |dd}| | d| d|}| |}g }i }t|dddthf }	r| j|	|ddd|d	\}
}||
 | j||d
 t|dddthf }r| j	||dd|d\}
}||
 | j||d
 dt
j|j d| itt|ddthfdthfdthfdthfdthfdthfdthfdthfddthfdthfd
|||dS )Nz/video/F)fatalz/playersettingsZ	protocolshlsr&   )m3u8_idr:   headerstargetdashZmpd_idr:   r>   r*   _)blocksr   Zslugr-   r/   Zprogram_titler1   r.   imager4   totalZ
age_rating)
r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   )formats	subtitleshttp_headers)	_match_idr   _download_jsonr   r   r   #_extract_m3u8_formats_and_subtitlesextend_merge_subtitles"_extract_mpd_formats_and_subtitlesr   r   r   r   strr   )r   r   r   api_baseZ
video_infoZplayer_infor>   rG   rH   hls_urlfmtssubsmpd_urlr   r   r   _real_extractl   sL    








zFaulioIE._real_extractN)r   r   r   r	   r$   
_VALID_URL_TESTSrV   r   r   r   r   r%   !   s   Ir%   c                
   @   s   e Zd Zej dZddeedddddid	d
deedddddid	ddeedddddid	ddeedddddid	dddgZdd ZdS )FaulioLiveIEzlive/(?P<id>[a-zA-Z0-9-]+)z#https://aloula.sba.sa/live/saudiatvzaloula.faulio.com_saudiatvr&   is_live)r*   r-   r/   r+   Zlive_statusZskip_downloadZ
Livestream)r   r6   paramszhttps://bahry.com/live/1zbahry.faulio.com_1z https://maraya.sba.net.ae/live/1zmaraya.faulio.com_1zhttps://sat7plus.org/live/parszsat7.faulio.com_parsz#https://sat7plus.org/fa/live/arabicTr9   c              	      s"  |  | | | }t| | d  fddtf}| |}g }i }t|ddthf }r| j| dddd|d	\}}	|| | j	|	|d
 t|ddthf }
r| j
|
 dd|d\}}	|| | j	|	|d
 dtj|j d  it|dthfdthfd|||ddS )Nz	/channelsc                    s   |d  kS )Nr   r   )kvr   r   r   <lambda>       z,FaulioLiveIE._real_extract.<locals>.<lambda>Zstreamsr<   r&   TF)r=   Zliver:   r>   r?   ZmpdrA   rB   r*   rC   r-   r/   )r-   r/   )rG   rH   rI   rZ   )rJ   r   r   rK   anyr   r   rL   rM   rN   rO   r   r   r   r   rP   )r   r   rQ   Zchannelr>   rG   rH   rR   rS   rT   rU   r   r^   r   rV      sB    






zFaulioLiveIE._real_extractN)	r   r   r   r	   r$   rW   rP   rX   rV   r   r   r   r   rY      s\   5rY   )r"   urllib.parser   commonr   utilsr   r   r   Zutils.traversalr   r	   r%   rY   r   r   r   r   <module>   s   t