
    VGh5                         d dl Z ddlmZ 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  G d de      Z G d	 d
e      Z G d de      Z G d de      Zy)    N   )InfoExtractor   )	HTTPError)	ExtractorErrordetermine_extfloat_or_noneint_or_none
js_to_jsonparse_iso8601
remove_endstrip_or_nonetry_getc                   R    e Zd ZdZdddddddd	d
eed
dddddddgZdZdgZd Z	y)TV2IEz@https?://(?:www\.)?tv2\.no/v(?:ideo)?\d*/(?:[^?#]+/)*(?P<id>\d+)zhttp://www.tv2.no/v/1791207/1791207mp4z(Her kolliderer romsonden med asteroiden u   En romsonde har krasjet inn i en asteroide i verdensrommet. Kollisjonen skjedde klokken 01:14 natt til tirsdag 27. september norsk tid. 

Nasa kaller det sitt første forsøk på planetforsvar.inB2c20220927   zre:^https://.*$)
idexttitledescription	timestampupload_dateduration	thumbnail
view_count
categories)url	info_dictzhttp://www.tv2.no/v2/916509Tr    only_matchingzRhttps://www.tv2.no/video/nyhetene/her-kolliderer-romsonden-med-asteroiden/1791207/)HLSDASHNOc                 ~   | j                  |      }| j                  d|z   |d      }|d   }|j                  d      du }g }g }| j                  D ]v  }	 | j                  d| d| |dd	d
id      d   }	|	j                  dg       }|D ]9  }|j                  d      }|r||v rdj!                  |j#                         |j                  d            }| j%                  |||      s_|j'                  |       t)        |      }|dk(  r%|j+                  | j-                  |||d             |dk(  r9|	j                  d      r|j+                  | j/                  ||d||d             |d k(  r&|j+                  | j1                  |||d!             |d"k(  s|j3                  d#      r&|j'                  ||d$       < y |s"	j                  d      r| j5                  |       |j                  d%      xs i j7                         D cg c]
  \  }}||d& }}}||t9        |j                  d            |t;        |j                  d'      xs |j                  d(            t=        |j                  d)      xs |j                  d*            t?        |j                  d+            |j                  d,d-      jA                  d.      ||d/S # t        $ r}
t        |
j                  t              r|
j                  j                  dk(  r| j                  |
j                  j                  j                         j                         |      d   }|j                  d      }|dk(  r| j                  | j                         n|dk(  r| j                          t	        |d          d }
~
ww xY wc c}}w )0Nz https://sumo.tv2.no/rest/assets/Downloading metadata JSONr   liveTzhttps://api.sumo.tv2.no/play/z?stream=zDownloading playabck JSONzcontent-typezapplication/jsons3   {"device":{"id":"1-1-1","name":"Nettleser (HTML)"}})headersdataplayback  errorcode#ASSET_PLAYBACK_INVALID_GEO_LOCATION	countriesSESSION_NOT_AUTHENTICATEDr   streamsr    {}-{}typef4mFf4m_idfatalm3u8drmProtectedr   r)   m3u8_idr:   mpdr:   ism.ism/Manifest)r    	format_idimagesr   r    live_broadcast_timeupdate_timeaccurateDurationr   viewstags ,r   r    r   r   
thumbnailsr   r   r   r   formatsis_live)!	_match_id_download_jsonget
_PROTOCOLSr   
isinstancecauser   status_parse_jsonresponsereaddecoderaise_geo_restricted_GEO_COUNTRIESraise_login_requiredformatlower_is_valid_urlappendr   extend_extract_f4m_formats_extract_m3u8_formats_extract_mpd_formatsendswith
report_drmitemsr   r   r	   r
   split)selfr    video_idassetr   rP   rO   format_urlsprotocolr+   er.   
error_coderi   item	video_urlrC   r   
thumb_type	thumb_urlrN   s                        ]/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/extractor/tv2.py_real_extractzTV2IE._real_extract,   s   >>#&##$F$QS[$?Ag))F#t+ *	H**-J8*T\]e\f+g+35P4BDV3W0f + h ist HHY+E  HHUO	 I$<#NN8>>+;TXXf=MN	)))XyI""9-#I.%<NN4#<#<!8IU $= $L MF]88N3t'A'A%xWi_d (B (f gE\NN4#<#<!8Ye $= $E FE\Y%7%7%HNN(%.$ -#*	V 488N3OOH%
 ).		((;(Ar'H'H'JL $j) 
 L
 L (=)AB$&uyy1F'G'c599UbKcd%eii0B&C&\uyyQ[G\]%eii&89))FB/55c:
 	
[ " 	aggy1aggnn6K ,,QWW-=-=-B-B-D-K-K-MxXY`aE!&6!2J!%JJ11D<O<O1P#'BB113(})=>>	PLs   !KN9	N6"CN11N6N)
__name__
__module____qualname__
_VALID_URLintlist_TESTSrT   r]   rw        rv   r   r      sk    TJ-? a#%+
 - d#F* !JVNH
r   r   c                   4    e Zd ZdZdddddddd	d
dgZd Zy)TV2ArticleIEz?https?://(?:www\.)?tv2\.no/(?!v(?:ideo)?\d*/)[^?#]+/(?P<id>\d+)zbhttps://www.tv2.no/underholdning/forraeder/katarina-flatland-angrer-etter-forraeder-exit/15095188/15095188u-   Katarina Flatland angrer etter Forræder-exitun   SANDEFJORD (TV 2): Katarina Flatland (33) måtte følge i sine fars fotspor, da hun ble forvist fra Forræder.)r   r   r   r   )r    r!   playlist_countzhttp://www.tv2.no/a/6930542Tr"   c                    | j                  |      }| j                  ||      }t        j                  d|      }|s\t        j                  d|      D ]C  }| j	                  ||t
        d      }|s|j                  d      }|s3|j                  |       E |D cg c]  }| j                  d| d       }	}t        | j                  |      d      }
t        | j                  |      d      }| j                  |	||
|      S c c}w )	Nzdata-assetid=["\'](\d+)z3(?s)(?:TV2ContentboxVideo|TV2\.TV2Video)\(({.+?})\)F)transform_sourcer:   assetIdzhttp://www.tv2.no/v/TV2z	 - TV2.no)rQ   _download_webpagerefindallrX   r   rS   rb   
url_resultr   _og_search_title_og_search_descriptionplaylist_result)rk   r    playlist_idwebpageassetsvvideorm   asset_identriesr   r   s               rv   rw   zTV2ArticleIE._real_extract   s   nnS)((k: 6@ZZ VX_` )(({Zu ) N		),MM%() #$ OO28*=uE$ $ 4009;G !<!<W!E{S##G[%MM$s   DN)rx   ry   rz   r{   r~   rw   r   r   rv   r   r   w   s?    SJsD L

  -FNr   r   c                   f    e Zd ZdZdZddddddd	d
eed	ddiddddddddddgZdZdZ	dgZ
d Zy)	KatsomoIEFzhttps?://(?:www\.)?(?:katsomo|mtv(uutiset)?)\.fi/(?:sarja/[0-9a-z-]+-\d+/[0-9a-z-]+-|(?:#!/)?jakso/(?:\d+/[^/]+/)?|video/prog)(?P<id>\d+)zyhttps://www.mtv.fi/sarja/mtv-uutiset-live-33001002003/lahden-pelicans-teki-kovan-ratkaisun-ville-nieminen-pihalle-11813211181321r   u?   Lahden Pelicans teki kovan ratkaisun – Ville Nieminen pihalleu&   Päätöksen teki Pelicansin hallitus.i^]20191130g(\B@	r   r   r   r   r   r   r   r   r   skip_downloadTr    r!   paramszrhttp://www.katsomo.fi/#!/jakso/33001005/studio55-fi/658521/jukka-kuoppamaki-tekee-yha-lauluja-vaikka-lentokoneessar"   z+https://www.mtvuutiset.fi/video/prog1311159z'https://www.katsomo.fi/#!/jakso/1311159zapi.katsomo.fi)r$   MPDFIc                    | j                  |      }d| j                   d| }| j                  |dz   |d      d   }|j                  d      xs |d   }|j                  d      d	u }g }g }| j                  D ]  }		 | j                  |d
|	 dz   |d      d   }
t#        |
d       }|s2t        |t$              s|g}|D ]|  }t        |t&              s|j                  d      }|r||v r-dj)                  |	j+                         |j                  d            }| j-                  |||      sp|j/                  |       t1        |      }|dk(  r%|j3                  | j5                  |||d             |dk(  r9|
j                  d      r|j3                  | j7                  ||d||d             |d k(  r&|j3                  | j9                  |||d!             |d"k(  s|j;                  d#      r7|j/                  ||t=        |j                  d$            t=        |j                  d%            d&         |s"
j                  d      r| j?                  |       |j                  d'      xs i jA                         D cg c](  \  }}|j                  d(      |j                  d      d)* }}}||tC        |j                  d            |tE        |j                  d*            tG        |j                  d+      xs |j                  d,            t=        |j                  d-            |j                  d.d/      jI                  d0      ||d1S # t
        $ r}t        |j                  t              r|j                  j                  dk(  r| j                  |j                  j                  j                         j                         |      d   }|j                  d      }|dk(  r| j                  | j                         n|dk(  r| j!                          t        |d          d }~ww xY wc c}}w )2Nzhttp://z/api/web/asset/z.jsonr(   rm   subtitler   r)   Tz/play.json?protocol=z&videoFormat=SMIL+ISMUSPzDownloading play JSONr,   r-   r.   r/   r0   r1   r3   r   c                     | d   d   S )Nri   rr   r   )xs    rv   <lambda>z)KatsomoIE._real_extract.<locals>.<lambda>   s    AgJv,> r   r    r5   mediaFormatr7   Fr8   r;   r<   r   r=   r?   r@   rA   rB   bitratefileSize)r    rC   tbrfilesizeimageVersionsz@typerE   
createTimerH   r   rI   keywordsrK   rL   rM   )%rQ   _API_DOMAINrR   rS   rT   r   rU   rV   r   rW   rX   rY   rZ   r[   r\   r]   r^   r   r}   dictr_   r`   ra   rb   r   rc   rd   re   rf   rg   r
   rh   ri   r   r   r	   rj   )rk   r    rl   api_baserm   r   rP   rO   rn   ro   r+   rp   r.   rq   ri   rr   rs   rC   r   _r   rN   s                         rv   rw   zKatsomoIE._real_extract   s*   >>#&T--.ohZH##w'))02 		*%7w))F#t+ 1	H**!5hZ?WXX577AC D">?EeT* !$- HHUO	 I$<#NN8>>+;TXXm=TU	)))XyI""9-#I.%<NN4#<#<!8IU $= $L MF]88N3t'A'A%xWi_d (B (f gE\NN4#<#<!8Ye $= $E FE\Y%7%7%HNN(%.*488I+>?$/0D$E	$ 1)1	d 488N3OOH%
  %yy9?RFFHJ a --(=='
 J
 J (=)AB$&uyy'>?%eii0B&C&\uyyQ[G\]%eii&89))J399#>
 	
k " 	aggy1aggnn6K ,,QWW-=-=-B-B-D-K-K-MxXY`aE!&6!2J!%JJ11D<O<O1P#'BB113(})=>>	`Js   =M-P<	P9%CP44P9N)rx   ry   rz   _WORKINGr{   r|   r}   r~   r   rT   r]   rw   r   r   rv   r   r      s    H ^J KVC#%

 T
$ D = 9/F6 #KJVNR
r   r   c                   H    e Zd ZdZdZdddddddd	eed
	ddiddddgZd Zy)MTVUutisetArticleIEFz<https?://(?:www\.)mtvuutiset\.fi/artikkeli/[^/]+/(?P<id>\d+)zqhttps://www.mtvuutiset.fi/artikkeli/tallaisia-vaurioita-viking-amorellassa-on-useamman-osaston-alla-vetta/79313841311159r   u]   Viking Amorellan matkustajien evakuointi on alkanut – tältä operaatio näyttää laivallaiZg_20200920gRμ<9c@r   r   Tr   zHhttps://www.mtvuutiset.fi/artikkeli/50-vuotta-subarun-vastaiskua/6070962r"   c                       j                  |      } j                  d|z   |       fd} j                   |       |j                  d      j                  d            S )Nz-http://api.mtvuutiset.fi/mtvuutiset/api/json/c               3      K   j                  d      xs g D ]]  } | j                  d      }| j                  d      }|r|dv s,j                  ||j                         | j                  d             _ y w)Nvideos	videotyper    )katsomoyoutuberl   )rS   r   
capitalize)r   
video_typers   articlerk   s      rv   r   z2MTVUutisetArticleIE._real_extract.<locals>.entries:  s|     !++h/52 O"YY{3
!IIe,	!j4J&Jooz446		*8MO OOs   A7A:r   r   )rQ   rR   r   rS   )rk   r    
article_idr   r   s   `   @rv   rw   z!MTVUutisetArticleIE._real_extract4  sf    ^^C(
%%;jH	O ##Iz7;;w#7]9SU 	Ur   N)	rx   ry   rz   r   r{   r|   r}   r~   rw   r   r   rv   r   r     s^    HPJ Ctz#%#

 T
& Z#F.Ur   r   )r   commonr   networking.exceptionsr   utilsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   rv   <module>r      sX    	 ! -
 
 
b
M b
J)N= )NXt
 t
n*U- *Ur   