Ë
    š„j8B  ã                   ó¬   — d dl Z d dlZddlmZ ddlmZmZmZmZm	Z	m
Z
mZ ddl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é   )Údetermine_extÚdict_getÚint_or_noneÚ
js_to_jsonÚstr_or_noneÚtry_getÚunified_timestamp)ÚrequireÚtraverse_objc                   ó,   — e Zd ZdgZdZd„ Zed„ «       Zy)Ú	SVTBaseIEÚSEFc                 ód  — t        |dd¬«      }|rdnd}g }i }|d   D ]ý  }|j                  d«      xs |j                  d«      }|d	   }	t        |	«      }
|
dk(  r?| j                  |	|d
||d¬«      \  }}|j	                  |«       | j                  ||¬«       Œ{|
dk(  r(|j	                  | j                  |	dz   ||d¬«      «       Œ¨|
dk(  r=| j                  |	||d¬«      \  }}|j	                  |«       | j                  ||¬«       Œê|j                  ||	dœ«       Œÿ t        |d„ t        «      xs i }|s/|j                  d«      r| j                  d| j                  d¬«       t        |d«      }t        |t        «      re|D ]`  }|j                  d	«      }|j                  dd«      }|sŒ)d	|i}t        |«      dk(  rd|d<   |j                  |g «      j                  |«       Œb |j                  d«      }|j                  d«      }t!        |j                  d«      «      }|j                  d «      }t!        |j                  d!«      «      }t#        |j                  d"«      «      }t!        t        |d#«      «      }d }t        |d$d¬%«      }|�|rd&nd'}|||| j%                  |«      ||||||||d(œS ))N)ÚliveÚ	simulcastF©ÚdefaultÚm3u8Úm3u8_nativeÚvideoReferencesÚ
playerTypeÚformatÚurlÚmp4)ÚextÚentry_protocolÚm3u8_idÚfatal)ÚtargetÚf4mz?hdcore=3.3.0)Úf4m_idr!   Úmpd)Úmpd_idr!   )Ú	format_idr   c                 ó   — | d   S )NÚrights© )Úxs    úK/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/svt.pyú<lambda>z*SVTBaseIE._extract_video.<locals>.<lambda>6   s
   € ¨q°©{€ ó    ÚgeoBlockedSwedenz&This video is only available in SwedenT)Ú	countriesÚmetadata_available)Ú	subtitlesÚsubtitleReferencesÚlanguageÚsvÚvttr   ÚtitleÚprogramTitleÚseasonÚepisodeTitleÚepisodeNumberÚ	validFrom)ÚmaterialLengthÚcontentDuration)ÚinappropriateForChildrenÚblockedForChildren)Úskip_false_valuesé   r   )Úidr7   Úformatsr2   ÚdurationÚ	timestampÚ	age_limitÚseriesÚseason_numberÚepisodeÚepisode_numberÚis_live)r   Úgetr   Ú#_extract_m3u8_formats_and_subtitlesÚextendÚ_merge_subtitlesÚ_extract_f4m_formatsÚ"_extract_mpd_formats_and_subtitlesÚappendr   ÚdictÚraise_geo_restrictedÚ_GEO_COUNTRIESÚ
isinstanceÚlistÚ
setdefaultr   r   Ú_fixup_subtitles)ÚselfÚ
video_infoÚvideo_idrL   Úm3u8_protocolrD   r2   ÚvrÚplayer_typeÚvurlr   ÚfmtsÚsubsr)   Úsubtitle_referencesÚsrÚsubtitle_urlÚsubtitle_langÚsubr7   rH   rI   rJ   rK   rF   rE   rG   Úadults                               r,   Ú_extract_videozSVTBaseIE._extract_video   sý  € Ü˜:Ð'<ÀeÔLˆÙ")™¨}ˆØˆØˆ	ØÐ.Ñ/ò 	ˆBØŸ&™& Ó.ÒB°"·&±&¸Ó2BˆKØ�e‘9ˆDÜ Ó%ˆCØ�fŠ}Ø!×EÑEØ˜(Ø¨mØ'¨uð Fó 6‘
��dð —‘˜tÔ$Ø×%Ñ% d°9Ð%Õ=Ø˜’Ø—‘˜t×8Ñ8Ø˜?Ñ*¨HØ&¨eð  9ó  5õ 6ð ˜’Ø!×DÑDØ˜(¨;¸eð Eó E‘
��dà—‘˜tÔ$Ø×%Ñ% d°9Ð%Õ=à—‘Ø!,Øñ õ ð+	ô2 ˜Ñ%:¼DÓAÒGÀRˆÙ˜6Ÿ:™:Ð&8Ô9Ø×%Ñ%Ø8Ø×-Ñ-À$ð &ô Hô ' zÐ3VÓWÐÜÐ)¬4Ô0Ø)ò 
H�Ø!Ÿv™v e›}�Ø "§¡ z°4Ó 8�Úà˜|ð�Cô % \Ó2°fÒ<à%*˜˜E™
Ø×(Ñ(¨¸Ó;×BÑBÀ3ÕGð
Hð —‘˜wÓ'ˆà—‘ Ó/ˆÜ# J§N¡N°8Ó$<Ó=ˆØ—.‘. Ó0ˆÜ$ Z§^¡^°OÓ%DÓEˆä% f§j¡j°Ó&=Ó>ˆ	Üœx¨
Ð4YÓZÓ[ˆØˆ	ÜØÐJØ#ô%ˆð ÐÙ#™¨ˆIð ØØØ×.Ñ.¨yÓ9Ø Ø"Ø"ØØ*ØØ,Øñ
ð 	
r.   c                 ó¦   — i }| j                  «       D ];  \  }}|D ]1  }d|d   v r|› d�n|}|j                  |g «      j                  |«       Œ3 Œ= |S )Nz	text-openr   z-forced)ÚitemsrY   rS   )r2   Úfixed_subtitlesÚlangrc   rh   Ú
fixed_langs         r,   rZ   zSVTBaseIE._fixup_subtitlesi   ss   € ð ˆØ#Ÿ/™/Ó+ò 	G‰JˆD�$Øò G�Ø1<ÀÀEÁ
Ñ1J ˜v WÑ-ÐPT�
Ø×*Ñ*¨:°rÓ:×AÑAÀ#ÕFñGð	Gð Ðr.   N)Ú__name__Ú
__module__Ú__qualname__rV   Ú_GEO_BYPASSrj   ÚstaticmethodrZ   r*   r.   r,   r   r      s)   „ Ø�V€NØ€KòO
ðb ñó ñr.   r   c                   ó(  — e Zd ZdZdZdZdddddd	d
dddddddddœdœddidœdddddddddddddigidœ	ddid d!œd"dd#dd$d%d&d'd(ddd$d)ddid*œddid+gd,œd-d.dd/d0d1d2d3ddd/d4d5œdd6id7œd8d9d:œd;d9d:œd<d9d:œd=d9d:œd>d9d:œd?d9d:œd@d9d:œdAd9d:œdBd9d:œgZdC„ ZdD„ ZyE)FÚ	SVTPlayIEzsvt:playu   SVT Play and Ã–ppet arkivaÙ  (?x)
                    (?:
                        (?:
                            svt:|
                            https?://(?:www\.)?svt\.se/barnkanalen/barnplay/[^/]+/
                        )
                        (?P<svt_id>[^/?#&]+)|
                        https?://(?:www\.)?(?:svtplay|oppetarkiv)\.se/(?:video|klipp|kanaler)/(?P<id>[^/?#&]+)
                        (?:.*?(?:modalId|id)=(?P<modal_id>[\da-zA-Z-]+))?
                    )
                    zChttps://www.svtplay.se/video/eXYgwZb/sverige-och-kriget/1-utbrottetÚ 2382036fd6f8c994856c323fe51c426eÚePBvGRqr   z1. Utbrottetz$md5:02291cc3159dbc9aa95d564e77a8a92bzSverige och krigeti€èhÚ20250511i  z6re:^https?://(?:.*[\.-]jpg|www.svtstatic.se/image/.*)$r   zcount:3)r5   z	sv-forced)rC   r   r7   ÚdescriptionrH   rJ   rF   Úupload_daterE   Ú	thumbnailrG   r2   Úskip_downloadr   )r   Úmd5Ú	info_dictÚparamsz%https://www.svtplay.se/video/30479064Ú8zVbDPAu   DesigndrÃ¶mmar i Stenungsundi�±N`Ú20210315i¿  r5   r   r6   )	rC   r   r7   rF   r{   rE   r|   rG   r2   zEpisode is no longer available)r   r~   r   r€   Úskipz$https://www.svtplay.se/video/emBxBQjÚeyBd9ajz1. Farlig kryssningiÀ%ßXz$md5:8f350bc605677a5ead36a19a62fd9a34Ú20170401i
  ÚRederiet)rC   r   r7   rF   rz   r{   rE   r|   rG   rJ   rH   r2   zFailed to download (?:MPD|m3u8))r   r~   r   r€   Úexpected_warningszOhttps://www.svtplay.se/video/jz2rYz7/anders-hansen-moter/james-fallon?info=visaÚjvXAGVbzJames FallonuL   re:James Fallon Ã¤r hjÃ¤rnforskaren .{532} att upptÃ¤cka psykopati tidigt\?$i ÛégÚ20250331i9  u   Anders Hansen mÃ¶ter)rC   r   r7   rz   rF   r{   rE   r|   rG   rJ   rH   Údash©r   r   r€   zphttps://www.svtplay.se/video/30479064/husdrommar/husdrommar-sasong-8-designdrommar-i-stenungsund?modalId=8zVbDPAT©r   Úonly_matchingzOhttps://www.svtplay.se/video/30684086/rapport/rapport-24-apr-18-00-7?id=e72gVpaz3http://www.oppetarkiv.se/video/5219710/trollflojtenz:http://www.svtplay.se/klipp/9023742/stopptid-om-bjorn-borgz#https://www.svtplay.se/kanaler/svt1zsvt:1376446-003Azsvt:14278044z4https://www.svt.se/barnkanalen/barnplay/kar/eWv5MLX/zsvt:eWv5MLXc                 ó¶   — | j                  d|› �|| j                  «       ¬«      }| j                  ||«      }|j                  d«      st	        |dd«      |d<   |S )Nz)https://api.svt.se/videoplayer-api/video/)Úheadersr7   rJ   rH   )Ú_download_jsonÚgeo_verification_headersrj   rM   r   )r[   r]   Údatar   s       r,   Ú_extract_by_video_idzSVTPlayIE._extract_by_video_idó   sh   € Ø×"Ñ"Ø7¸°zÐBØ˜d×;Ñ;Ó=ð #ó ?ˆð ×'Ñ'¨¨hÓ7ˆ	à�}‰}˜WÔ%Ü!-¨i¸ÀHÓ!MˆI�gÑàÐr.   c                 ó–  — | j                  |«      }|j                  d«      }|j                  d«      xs |j                  d«      }| j                  ||| ¬«      xs d}|sa| j                  d|d|t        ¬«      }t        |t        j                  hd	d
t        j                  hdddt        ht        t        d«      hf
«      }| j                  |«      }|j                  d«      s)t        j                   dd| j#                  |«      «      |d<   |j                  d«      s| j%                  |d ¬«      |d<   | j'                  |«      |d<   |S )NrC   Úsvt_idÚmodal_id)r!   Ú z(?<=[\s.])URQL_DATA\s*=ú	json data)Útransform_source.r’   ÚdetailsPageByPathÚ
smartStartÚ
videoSvtIdzSVT IDr7   z\s*\|\s*.+?$rz   r   r|   )Ú_match_valid_urlÚgroupÚ_download_webpageÚ_search_jsonr	   r   rT   ÚvaluesÚjsonÚloadsr
   Úanyr   r“   rM   Úrerh   Ú_og_search_titleÚ_og_search_descriptionÚ_og_search_thumbnail)r[   r   Úmobjr]   r•   Úwebpager’   r   s           r,   Ú_real_extractzSVTPlayIE._real_extractþ   sC  € Ø×$Ñ$ SÓ)ˆØ—:‘:˜dÓ#ˆØ—‘˜HÓ%Ò?¨¯©°JÓ)?ˆØ×(Ñ(¨¨hÀ&¸jÐ(ÓIÒOÈRˆáØ×$Ñ$Ø*¨G°[À(Ü!+ð %ó -ˆDô " $Ü—‘�˜s F¬T¯Z©Z¨LÐ:MØ˜l¬[¨M¼3ÄÈÓARÐ@Sð)Uó VˆFð ×-Ñ-¨fÓ5ˆ	Ø�}‰}˜WÔ%Ü!#§¡¨¸¸T×=RÑ=RÐSZÓ=[Ó!\ˆI�gÑØ�}‰}˜]Ô+Ø'+×'BÑ'BÀ7ÐTXÐ'BÓ'YˆI�mÑ$Ø!%×!:Ñ!:¸7Ó!Cˆ	�+ÑàÐr.   N)	rp   rq   rr   ÚIE_NAMEÚIE_DESCÚ
_VALID_URLÚ_TESTSr“   r«   r*   r.   r,   rv   rv   t   sÊ  „ Ø€GØ)€Gð
€Jð UØ1àØØ#ØAØ*Ø%Ø#Ø%ØØRØØ )¸	ÑBñ
ð ˜Vð
ñ#ð* 7Ø1àØØ3Ø#Ø%ØØRØàØ˜5ðð ðñ
ð  ˜Vð
ð 1ñ+ð. 6Ø1àØØ*Ø#ØAØ%ØØRØØ,Ø à�iðñ
ð" ˜Vð
ð AÐAñ-ð0 aàØØ#ØjØ#Ø%ØØRØØ%Ø,ñ
ð ˜Vð
ñð& BØñð aØñð
 EØñð
 LØñð 5Øñð "Øñð Øñð FØñð ØñðYo€Fòb	ór.   rv   c                   ó^   ‡ — e Zd ZdZdZdddddœdd	œd
ddddœdd	œgZeˆ fd„«       Zd„ Zˆ xZ	S )ÚSVTSeriesIEzsvt:play:serieszThttps?://(?:www\.)?svtplay\.se/(?P<id>[^/?&#]+)(?:.+?\btab=(?P<season_slug>[^&#]+))?zhttps://www.svtplay.se/rederietÚjpmQYgnr†   z$md5:f71122f7cf2e52b643e75915e04cb83d)rC   r7   rz   i>  )r   r   Úplaylist_mincountz4https://www.svtplay.se/rederiet?tab=season-2-jpmQYgnzseason-2-jpmQYgnu   Rederiet - SÃ¤song 2é   c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S ©NF©rv   ÚsuitableÚsuper©Úclsr   Ú	__class__s     €r,   r¸   zSVTSeriesIE.suitable*  ó%   ø€ ä!×*Ñ*¨3Ô/ˆuÐJ´U±WÑ5EÀcÓ5JÐJr.   c           	      óü  — | j                  |«      j                  «       \  }}| j                  d|ddd|z  i¬«      d   d   d   }d }g }|d	   D ]Ô  }t        |t        «      sŒ|r&|j                  d
«      |k7  rŒ+|j                  d«      }|j                  d«      }t        |t        «      sŒ^|D ]r  }	|	j                  d«      xs i }
|
j                  d«      }|rt        |t        «      sŒ<|j                  | j                  d|z   t        j                  «       |«      «       Œt ŒÖ |j                  d«      }|xs |}|r
|r|› d|› �}n|r|}| j                  ||xs |j                  d
«      |t        |d«      «      S )Nz#https://api.svt.se/contento/graphqlzDownloading series pageÚquerya'  {
  listablesBySlug(slugs: ["%s"]) {
    associatedContent(include: [productionPeriod, season]) {
      items {
        item {
          ... on Episode {
            videoSvtId
          }
        }
      }
      id
      name
    }
    id
    longDescription
    name
    shortDescription
  }
})r¿   r’   ÚlistablesBySlugr   ÚassociatedContentrC   Únamerl   Úitemrœ   zsvt:z - )ÚlongDescriptionÚshortDescription)r�   Úgroupsr�   rW   rT   rM   rX   ÚstrrS   Ú
url_resultrv   Úie_keyÚplaylist_resultr   )r[   r   Úseries_slugÚ	season_idrH   Úseason_nameÚentriesr9   rl   rÃ   ÚvideoÚ
content_idr7   s                r,   r«   zSVTSeriesIE._real_extract.  s½  € Ø!%×!6Ñ!6°sÓ!;×!BÑ!BÓ!DÑˆ�Yà×$Ñ$Ø1°;Ø%Øð ð$ ñ%ð.ð %ó ð, ñ-ð, )ñ-*ð, +,ñ--ˆð0 ˆàˆØÐ0Ñ1ò 	JˆFÜ˜f¤dÔ+ØÙØ—:‘:˜dÓ# yÒ0ØØ$Ÿj™j¨Ó0�Ø—J‘J˜wÓ'ˆEÜ˜e¤TÔ*ØØò J�ØŸ™ Ó(Ò.¨B�Ø"ŸY™Y |Ó4�
Ù!¬°JÄÔ)DØØ—‘˜tŸ™Ø˜ZÑ'¬×)9Ñ)9Ó);¸Zó Iõ JñJð	Jð$ —
‘
˜6Ó"ˆØ!Ò. Yˆá‘[Ø�g˜S  Ð.‰EÙØˆEà×#Ñ#Ø�YÒ2 &§*¡*¨TÓ"2°EÜ�VÐDÓEóGð 	Gr.   ©
rp   rq   rr   r¬   r®   r¯   Úclassmethodr¸   r«   Ú__classcell__©r¼   s   @r,   r±   r±     si   ø„ Ø€GØh€Jà0àØØAñ
ð
 !ñð Fà$Ø+ØAñ
ð
  ñð€Fð$ óKó ðKö:Gr.   r±   c                   óØ   ‡ — e Zd ZdZdZddddœddœd	d
dddddddddœ	ddidœdddddddddddœ	ddi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d0œd1dd0œgZeˆ fd2„«       Zd3„ Zˆ xZ	S )4Ú	SVTPageIEzsvt:pagez8https?://(?:www\.)?svt\.se/(?:[^/?#]+/)*(?P<id>[^/?&#]+)zzhttps://www.svt.se/nyheter/lokalt/skane/viktor-18-forlorade-armar-och-ben-i-sepsis-vill-ateruppta-karaten-och-bli-svetsareuZ   Viktor, 18, fÃ¶rlorade armar och ben i sepsis â€“ vill Ã¥teruppta karaten och bli svetsarezRviktor-18-forlorade-armar-och-ben-i-sepsis-vill-ateruppta-karaten-och-bli-svetsare)r7   rC   r   )r   r   Úplaylist_countzkhttps://www.svt.se/nyheter/lokalt/skane/forsvarsmakten-om-trafikkaoset-pa-e22-kunde-inte-varit-dar-snabbareÚjXvk42EuG   FÃ¶rsvarsmakten om trafikkaoset pÃ¥ E22: Kunde inte varit dÃ¤r snabbarer   éP   r   iYŸ–eu   Lokala Nyheter SkÃ¥neÚ20240104)	rC   r7   r   rE   rG   rF   rJ   rH   r{   r}   Tr‹   zBhttps://www.svt.se/nyheter/svtforum/2023-tungt-ar-for-svensk-mediau    2023 tungt Ã¥r fÃ¶r svensk mediaÚewqAZv4i  r—   ik�eÚ20231219ÚMediestudier)	r7   rC   r   rE   rG   rH   rF   r{   rJ   zMhttps://www.svt.se/sport/ishockey/bakom-masken-lehners-kamp-mot-mental-ohalsaÚ25298267u0   Bakom masken â€“ Lehners kamp mot mental ohÃ¤lsa)rC   r7   é   zVideo is gone)r   r   r×   rƒ   zXhttps://www.svt.se/nyheter/utrikes/svenska-andrea-ar-en-mil-fran-branderna-i-kalifornienÚ24243746z2Svenska Andrea redo att fly sitt hem i KalifornienzDhttp://www.svt.se/sport/ishockey/jagr-tacklar-giroux-under-intervjunÚ8439V2Ku1   StjÃ¤rnorna skojar till det - under SVT-intervjuné   )rC   r   r7   rE   rG   )r   r   rƒ   zIhttps://www.svt.se/nyheter/lokalt/vast/svt-testar-tar-nagon-upp-skrapet-1rŒ   z/https://www.svt.se/vader/manadskronikor/maj2018c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S r¶   r·   rº   s     €r,   r¸   zSVTPageIE.suitable¸  r½   r.   c                 ó*  ‡ ‡‡— ‰ j                  |«      }‰ j                  ||«      }‰ j                  |«      Š‰ j                  d|d|«      }t	        |ddt
        ht        j                  hfd¬«      xs i Šˆˆ ˆfd„}‰ j                   |«       |‰«      S )NzurqlState\s*[=:]r˜   .r’   F)Úget_allc               3   ó®   •K  — t        t        ‰ddt        hf«      «      D ]0  } ‰j                  ‰j	                  d| › �| «      | «      }‰|d<   |–— Œ2 y ­w)NÚpage))ÚtopMediaÚsvtId)Úbody.rÏ   ré   zhttps://api.svt.se/video/r7   )Úsetr   rÇ   rj   r�   )r]   Úinfor’   r[   r7   s     €€€r,   rÎ   z(SVTPageIE._real_extract.<locals>.entriesÆ  sr   øè ø€ Ü¤¨TØÐPÔSVÐRWð4ó !ó ò �ð ×*Ñ*Ø×'Ñ'Ð*CÀHÀ:Ð(NÐPXÓYÐ[cóe�à %��W‘Ø“
ñùs   ƒAA)	Ú	_match_idrŸ   r¦   r    r   rÇ   r¢   r£   rÊ   )r[   r   Ú
display_idrª   Ú
urql_staterÎ   r’   r7   s   `     @@r,   r«   zSVTPageIE._real_extract¼  s�   ú€ Ø—^‘^ CÓ(ˆ
à×(Ñ(¨¨jÓ9ˆØ×%Ñ% gÓ.ˆà×&Ñ&Ð':¸GÀ[ÐR\Ó]ˆ
ä˜J¨¨f´s°e¼d¿j¹j¸\Ð(JÐTYÔZÒ`Ð^`ˆö	ð ×#Ñ#¡G£I¨z¸5ÓAÐAr.   rÑ   rÔ   s   @r,   rÖ   rÖ   k  s8  ø„ Ø€GØL€Jð LàqØfñ
ð ñð }àØ^ØØØØ#Ø`Ø-Ø%ñ

ð ˜Tð
ñð" Tà7ØØØØØØ#Ø%Ø%ñ

ð ˜Tð
ñð" _àØGñ
ð Øñð jàØIñ
ð Øñð VàØØHØØñ
ð  ñð [Øñð AØñðKH€FðT óKó ðKöBr.   rÖ   )r¢   r¥   Úcommonr   Úutilsr   r   r   r	   r
   r   r   Úutils.traversalr   r   r   rv   r±   rÖ   r*   r.   r,   ú<module>ró      sa   ðÛ Û 	å !÷÷ ñ ÷ô]�ô ]ô@^�	ô ^ôBSG�)ô SGôldB�	õ dBr.   