
    VGh                     F    d dl mZ ddlmZmZmZmZmZmZ  G d de      Z	y)   )InfoExtractor   )int_or_none
remove_endstr_or_nonetry_getunified_timestampurl_or_nonec                   n    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  Zy!)"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                 R   | j                  |      }| j                  ||      }| j                  d|d|      }|d   d   }| j                  dj	                  |d         |      }g }t        |d       xs g D ]  }t        |j                  d            }	|	s |j                  |	t        |j                  d	            t        |j                  d
            t        |j                  d            t        |j                  d            t        |j                  d            d        t        t        |d       xs5 | j                  ddg|      xs t        | j                  d|dd      d            }
|
r|
j                  dd      }
||
|t        | j                  ddg|            t        t        |d             t        t        |d             t        |j                  d            t        |j                  d            xs d t        |j                  d            xs d d 	S )!Nzwindow\.__reflectData\s*=metadatacollectionMedia    z'https://api.gopro.com/media/{}/downloadr   c                     | d   d   S )N	_embedded
variations xs    _/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/gopro.py<lambda>z'GoProIE._real_extract.<locals>.<lambda>D   s    ;1M     r   qualitylabeltypewidthheight)r   	format_idformat_noter   r3   r4   c                     | d   d   S )N
collectionr   r*   r+   s    r-   r.   z'GoProIE._real_extract.<locals>.<lambda>R   s    ,(@ r/   zog:titleztwitter:titlez<title[^>]*>([^<]+)</title>r   F)fatalz | GoPro
 zog:imageztwitter:imagec                     | d   d   S )Nr8   
created_atr*   r+   s    r-   r.   z'GoProIE._real_extract.<locals>.<lambda>`   s    AlOL,I r/   c                     | d   d   S )Naccountnicknamer*   r+   s    r-   r.   z'GoProIE._real_extract.<locals>.<lambda>b   s    AiL,D 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_datarD   fmt
format_urlr   s              r-   _real_extractzGoProIE._real_extract8   s9   >>#&((h7$$(':xI /03
((5<<Z=MNPXZ
 :'MNTRT 	C$SWWU^4JNN!();<*3777+;<"3776?3$SWWW%56%cggh&78 		 H@A \%%z?&CWM\$11. 2 OPZ\]
 MM$,E $&&
O'DgNP*"IJL&"DEG#013!346 >9= 124 <7;
 	
r/   N)__name__
__module____qualname__
_VALID_URL_TESTSrV   r*   r/   r-   r   r      s    FJ 3!3*#%+	
 3!F*#%A&

 3!*#%,%!
3'FR1
r/   r   N)
commonr   utilsr   r   r   r   r	   r
   r   r*   r/   r-   <module>r^      s     ! ]
m ]
r/   