o
    i|                     @   s4   d dl Z ddlmZ ddlmZ G dd deZdS )    N   )InfoExtractor   )traverse_objc                       s   e Zd ZdZdgZddddddd	d
idddddddd	d
idgZddddddd	d
idddddddd	d
idgZe fddZdd Z	  Z
S )
BitmovinIEz+https?://streams\.bitmovin\.com/(?P<id>\w+)zY<iframe\b[^>]+\bsrc=["\'](?P<url>(?:https?:)?//streams\.bitmovin\.com/(?P<id>\w+)[^"\']+)z7https://streams.bitmovin.com/cqkl1t5giv3lrce7pjbg/embedcqkl1t5giv3lrce7pjbgmp4z+Developing Osteopathic Residents as Facultyz8https://streams.bitmovin.com/cqkl1t5giv3lrce7pjbg/poster)idexttitle	thumbnailskip_downloadm3u8)url	info_dictparamsz7https://streams.bitmovin.com/cgl9rh94uvs51rqc8jhg/sharecgl9rh94uvs51rqc8jhgzBig Buck Bunny (Streams Docs)z8https://streams.bitmovin.com/cgl9rh94uvs51rqc8jhg/posterzhttps://www.institutionalinvestor.com/article/2bsw1in1l9k68mp9kritc/video-war-stories-over-board-games/best-case-i-get-fired-war-storiescuiumeil6g115lc4li3guK   [media] War Stories over Board Games: ‚ÄúBest Case: I Get Fired‚Äù z8https://streams.bitmovin.com/cuiumeil6g115lc4li3g/posterzQhttps://www.clearblueionizer.com/en/pool-ionizers/mineral-pool-vs-saltwater-pool/cvpvfsm1pf7itg7cfvtgz!Pool Ionizer vs. Salt Chlorinatorz8https://streams.bitmovin.com/cvpvfsm1pf7itg7cfvtg/posterc                 #   s8    t  ||E d H  td|D ]}d| V  qd S )Nz3<bitmovin-stream\b[^>]*\bstream-id=["\'](?P<id>\w+)https://streams.bitmovin.com/)super_extract_embed_urlsrefindall)clsr   webpage	stream_id	__class__ M/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/bitmovin.pyr   3   s
   zBitmovinIE._extract_embed_urlsc                 C   s`   |  |}| d| d|d }| |d |d\}}|||dt|dthfdthfd	S )
Nr   z/configsourceshlsr   )r	   formats	subtitlesr   poster)r   r   )	_match_id_download_json#_extract_m3u8_formats_and_subtitlesr   str)selfr   video_idplayer_configr#   r$   r   r   r    _real_extract9   s$   

zBitmovinIE._real_extract)__name__
__module____qualname__
_VALID_URL_EMBED_REGEX_TESTS_WEBPAGE_TESTSclassmethodr   r-   __classcell__r   r   r   r    r      sP    
r   )r   commonr   utils.traversalr   r   r   r   r   r    <module>   s    