o
    i                     @   s@   d dl mZ ddlmZmZmZmZmZmZ G dd deZ	dS )   )InfoExtractor   )int_or_none
remove_endstr_or_nonetry_getunified_timestampurl_or_nonec                   @   sp   e Zd Z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gZd d! Zd"S )#GoProIEz2https?://(www\.)?gopro\.com/v/(?P<id>[A-Za-z0-9]+)z!https://gopro.com/v/ZNVvED8QDzR5VZNVvED8QDzR5VzMy GoPro Adventure - 9/19/21zre:https?://.+mp4itGa20210919fireydive30018i )idtitle	thumbnailext	timestampupload_dateuploader_idduration)url	info_dictz!https://gopro.com/v/KRm6Vgp2peg4eKRm6Vgp2peg4eu/   じゃがいも カリカリ オーブン焼きif_20201206z$dc9bcb8b-47d2-47c6-afbc-4c48f9a3769ei  zThe Sky Machine)	r   r   r   r   r   r   r   r   trackz!https://gopro.com/v/kVrK9wlJvBMwnkVrK9wlJvBMwnDARKNESSi7P_20200708u   闇夜乃皇帝i zBattery (Live)	Metallica)
r   r   r   r   r   r   r   r   r   artistc                 C   sv  |  |}| ||}| d|d|}|d d }| d|d |}g }t|dd p.g D ]1}t|d	}	|	s;q/||	t	|d
t	|dt	|dt
|dt
|dd q/t	t|dd p|| ddg|p|t| jd|dddd}
|
r|
dd}
||
|t| ddg|tt|dd t	t|dd t
|dt	|dpd t	|d pd d!	S )"Nzwindow\.__reflectData\s*=metadatacollectionMedia    z'https://api.gopro.com/media/{}/downloadr   c                 S      | d d S )N	_embedded
variations xr'   r'   J/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/extractor/gopro.py<lambda>D       z'GoProIE._real_extract.<locals>.<lambda>r   qualitylabeltypewidthheight)r   	format_idformat_noter   r0   r1   c                 S   r$   )N
collectionr   r'   r(   r'   r'   r*   r+   R   r,   zog:titleztwitter:titlez<title[^>]*>([^<]+)</title>r   F)fatalz | GoPro
 zog:imageztwitter:imagec                 S   r$   )Nr4   
created_atr'   r(   r'   r'   r*   r+   `   r,   c                 S   r$   )Naccountnicknamer'   r(   r'   r'   r*   r+   b   r,   source_durationmusic_track_artistmusic_track_name)	r   r   formatsr   r   r   r   r    r   )	_match_id_download_webpage_search_json_download_jsonformatr   r	   getappendr   r   _html_search_metar   _html_search_regexreplacer   )selfr   video_idwebpager!   
video_info
media_datar>   fmt
format_urlr   r'   r'   r*   _real_extract8   st   

	zGoProIE._real_extractN)__name__
__module____qualname__
_VALID_URL_TESTSrP   r'   r'   r'   r*   r
      sP    )r
   N)
commonr   utilsr   r   r   r   r   r	   r
   r'   r'   r'   r*   <module>   s     
