Ë
    š„jz2  ã                   óè   — d dl Z d dlZddlmZ ddl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 G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)é    Né   )ÚInfoExtractoré   )ÚclasspropertyÚint_or_noneÚtraverse_objÚurljoinc                   ó`   — e Zd ZdZdZddddddd	d
dddddœZed„ «       Zdi fd„Zdi fd„Z	d„ Z
y)ÚBrainPOPBaseIEÚbrainpopÚ z4The username and password you entered did not match.zPayment method is expired.zYour BrainPOP plan has expired.zTerms not accepted.zAccount not activated.zRThe maximum number of devices permitted are logged in with your account right now.zKYou are trying to access your account from outside of its allowed IP range.zdIndividual accounts are not included in your plan. Try again with your shared username and password.z<That username and password won't work on this BrainPOP site.z1You'll need to join a class before you can login.zXYour account is locked. Reset your password, or ask a teacher or administrator for help.)iÞ  iß  iâ  iã  iä  iè  ié  iê  ië  ió  iô  iö  c                 óŠ   — t        j                  | j                  «      j                  dd«      j                  dd«      }|› d�S )Nzhttps:zhttps?:zwww\.z
(?:www\.)?z'/(?P<slug>[^/]+/[^/]+/(?P<id>[^/?#&]+)))ÚreÚescapeÚ_ORIGINÚreplace)ÚclsÚroots     úP/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/brainpop.pyÚ
_VALID_URLzBrainPOPBaseIE._VALID_URL   s=   € ä�y‰y˜Ÿ™Ó%×-Ñ-¨i¸ÓD×LÑLÈXÐWdÓeˆØ�&Ð?Ð@Ð@ó    c                 óø   — g }| j                  t        | j                  |«      › d|› �|d|› d�d¬«      }|j                  |t        | j                  |«      › d|› �dœ«       |D ]  }|j                  |«       Œ |S )Nz.m3u8?Úmp4z-hlsF)Úm3u8_idÚfatalú?)Ú	format_idÚurl)Ú_extract_m3u8_formatsr	   Ú_HLS_URLÚappendÚ
_VIDEO_URLÚupdate)ÚselfÚslugr   Ú
display_idÚtokenÚextra_fieldsÚformatsÚfs           r   Ú_assemble_formatsz BrainPOPBaseIE._assemble_formats$   s™   € ØˆØ×,Ñ,Ü�t—}‘} dÓ+Ð,¨F°5°'Ð:Ø˜¨)¨°DÐ'9Àð -ó Hˆð 	�‰Ø"Ü˜dŸo™o¨tÓ4Ð5°Q°u°gÐ>ñ
ô 	ð ò 	#ˆAØ�H‰H�\Õ"ð	#àˆr   ú%sc                 ó  — g }i dddœdœ}|j                  «       D ]b  \  }}	t        d«      D ]O  \  }
}|||z  z  }|j                  |«      sŒ |j                  | j	                  ||   |||dd|
z
  i|	¥|¥«      «       ŒQ Œd |S )NzAudio descriptionéþÿÿÿ)Úformat_noteÚsource_preference)r,   zad_%s)ÚhighÚlowÚqualityéÿÿÿÿ)ÚitemsÚ	enumerateÚgetÚextendr+   )r$   Údatar'   r&   Ú
key_formatr(   r)   Úadditional_key_formatsÚadditional_key_formatÚadditional_key_fieldsÚkey_qualityÚ	key_indexÚfull_key_indexs                r   Ú_extract_adaptive_formatsz(BrainPOPBaseIE._extract_adaptive_formats1   sÇ   € Øˆàà2Ø%'ññ"
Ðð =S×<XÑ<XÓ<Zò 	Ñ8Ð!Ð#8Ü*3°OÓ*Dò Ñ&�˜YØ!6¸*ÀyÑ:PÑ!Q�Ø—8‘8˜NÕ+Ø—N‘N 4×#9Ñ#9¸$¸~Ñ:NÐP^Ð`jÐlqØ! 2¨Ñ#3ðtà/ðtð 'ðtó $õ ñð	ð ˆr   c           	      óP  — | j                  dd t        j                  ||dœ«      j                  «       d| j                  dœddd¬«      }t        |d	   «      }|d
k7  rJ| j                  j                  |«      xs |j                  d«      }| j                  |rd|› �nd|› �«       y y )Nz"https://api.brainpop.com/api/login)ÚusernameÚpasswordzapplication/json)zContent-TypeÚRefererz
Logging inzUnable to log ini�  )r9   ÚheadersÚnoteÚerrnoteÚexpected_statusÚstatus_codeiá  ÚmessagezUnable to login: zGot status code )	Ú_download_jsonÚjsonÚdumpsÚencoder   r   Ú_LOGIN_ERRORSr7   Úreport_warning)r$   rC   rD   Ú	login_resrJ   rK   s         r   Ú_perform_loginzBrainPOPBaseIE._perform_loginE   sº   € Ø×'Ñ'Ø0°$Ü—‘¨¸xÑHÓI×PÑPÓRà 2ØŸ<™<ñð !Ð*<Ècð (ó Sˆ	ô " )¨MÑ":Ó;ˆØ˜$ÒØ×(Ñ(×,Ñ,¨[Ó9ÒU¸Y¿]¹]È9Ó=UˆGØ×ÑÙ18Ð# G 9Ñ-Ð@PÐQ\ÐP]Ð>^õ`ð r   N)Ú__name__Ú
__module__Ú__qualname__Ú_NETRC_MACHINEr   rP   r   r   r+   rA   rS   © r   r   r   r      sq   „ Ø€NØ€GàDØ*Ø/Ø#Ø&ØbØ[ØtØ&ØMØBØhñ€Mð ñAó ðAð DFÐTVó ð MQÐ_aó ó(`r   r   c            	       óT   — e Zd 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œgZd„ Zy)Ú
BrainPOPIEzhttps://www.brainpop.comúhttps://svideos.brainpop.comúhttps://hls.brainpop.comzhttps://cdn.brainpop.comzThttps://www.brainpop.com/health/conflictresolution/martinlutherkingjr/movie?ref=nullÚ 3ead374233ae74c7f1b0029a01c972f0Ú1f3259fa457292b4r   zMartin Luther King, Jr.Úmartinlutherkingjrz$md5:f403dbb2bf3ccc7cf4c59d9e43e3c349©ÚidÚextÚtitler&   Údescription©r   Úmd5Ú	info_dictz/https://www.brainpop.com/science/space/bigbang/Ú 9a1ff0e77444dd9e437354eb669c87ecÚacae52cd48c99acfzBig BangÚbigbangz$md5:3e53b766b0f116f631b13f4cae185d38úRequires login©r   rf   rg   Úskipc                 ó   — | j                  |«      j                  dd«      \  }}| j                  d|› d�|dd«      d   }t        | j                  d|› d�|d	d
d¬«      dt        ¬«      xs |d   }t        |d«      s7t        |d«      }d|v r| j                  |d¬«       n| j                  ||¬«       |d   }|d   }g i }
}	|	j                  | j                  ||j                  dd«      |d|j                  d«      xs dddœ«      «       t        |di t        ¬«      j                  «       D ]<  \  }}|	j                  | j                  ||j                  dd«      |d|d dœ«      «       Œ> |j                  «       D ]W  \  }}| j                  d!|d"d ¬#«      }|sŒ|sŒ!|
j                  |g «      j                  d$t        | j                  |«      i«       ŒY |d%   ||j                  d&«      |j                  d'«      |	|
d(œS ))Nr%   ra   z5https://api.brainpop.com/api/content/published/bp/en/z/movie?full=1zDownloading movie data JSONzUnable to download movie datar9   z?full=1zDownloading topic data JSONzUnable to download topic dataF)r   )r9   Útopic)Úexpected_typero   )ÚaccessÚallow)rq   ÚreasonÚloggedT)Úmetadata_available)Úvideo_idÚfeaturer'   r   z%s_v2ÚlanguageÚené
   )rx   Úlanguage_preferenceÚlocalization)Údefaultrp   iöÿÿÿz^subtitles_(?P<lang>\w+)$zsubtitle metadata)r}   r   Útopic_idÚnameÚsynopsis)ra   r&   rc   rd   r)   Ú	subtitles)Ú_match_valid_urlÚgrouprL   r   ÚdictÚraise_login_requiredÚraise_no_formatsr8   rA   r7   r5   Ú_search_regexÚ
setdefaultr!   r	   Ú_CDN_URL)r$   r   r%   r&   Ú
movie_dataÚ
topic_datars   Úmovie_featureÚmovie_feature_datar)   r�   ÚlangÚlocalized_featurer   s                 r   Ú_real_extractzBrainPOPIE._real_extractp   sy  € Ø×0Ñ0°Ó5×;Ñ;¸FÀDÓIÑˆˆjØ×(Ñ(ØCÀDÀ6ÈÐWÐYcØ)Ð+JóLàLRñTˆ
ô " $×"5Ñ"5ØCÀDÀ6ÈÐQÐS]Ø)Ð+JÐRWð #6ó #Yð ¬Tô3ò Jð 7AÀÑ6Ið 	ô
 ˜JÐ(;Ô<Ü! *Ð.BÓCˆFØ˜6Ñ!Ø×)Ñ)¨&ÀTÐ)ÕJà×%Ñ% f°zÐ%ÔBØ" 9Ñ-ˆØ*¨6Ñ2Ðà �ˆØ�‰�t×5Ñ5Ð6HÐJ\×J`ÑJ`ÐahÐjlÓJmÐoyð  |CØ%×)Ñ)¨*Ó5Ò=¸Ø#%ñE
ó ô 	ô (4°MÀ>Ð[]ÔmqÔ'r×'xÑ'xÓ'zò 	Ñ#ˆDÐ#Ø�N‰N˜4×9Ñ9Ð:KÐM^×MbÑMbÐcjÐlnÓMoÐq{ð  ~EØ Ø'*ñGó õ ð	ð ,×1Ñ1Ó3ò 	‰IˆD�#Ø×%Ñ%Ø,¨dÐ4GÐQUð &ó WˆDâšØ×$Ñ$ T¨2Ó.×5Ñ5Øœ7 4§=¡=°#Ó6ð7õ ð		ð ˜ZÑ(Ø$Ø—^‘^ FÓ+Ø%Ÿ>™>¨*Ó5ØØ"ñ
ð 	
r   N)	rT   rU   rV   r   r"   r    r‰   Ú_TESTSr�   rX   r   r   rZ   rZ   T   sh   „ Ø(€GØ/€JØ)€HØ)€HàeØ1à$ØØ.Ø.ØAñ
ñ
ð AØ1à$ØØØ#ØAñ
ð !ñð€Fó..
r   rZ   c                   ó   — e Zd Zd„ Zd„ Zy)ÚBrainPOPLegacyBaseIEc                 ó¤   — |d   }| j                  |||«      }|d   ||j                  d«      |j                  d«      |j                  d«      |dœS )NÚmoviesÚEntryIDr   rc   r€   )ra   r&   rc   Ú	alt_titlerd   r)   )rA   r7   )r$   r‹   r&   r'   rŠ   r)   s         r   Ú_parse_js_topic_dataz)BrainPOPLegacyBaseIE._parse_js_topic_data¢   s^   € Ø Ñ)ˆ
à×0Ñ0°¸UÀJÓOˆð ˜YÑ'Ø$Ø—^‘^ FÓ+Ø#Ÿ™¨Ó0Ø%Ÿ>™>¨*Ó5Øñ
ð 	
r   c                 óÒ   — | j                  |«      }| j                  ||«      }| j                  d|d|d¬«      d   d   d   }| j                  d|d	«      }| j	                  |||«      S )
Nzvar\s+content\s*=\s*zcontent dataú;)Úend_patternÚcategoryÚunitro   zec_token\s*:\s*[\'"]([^\'"]+)zvideo token)Ú	_match_idÚ_download_webpageÚ_search_jsonr‡   r˜   )r$   r   r&   Úwebpager‹   r'   s         r   r�   z"BrainPOPLegacyBaseIE._real_extract°   sˆ   € Ø—^‘^ CÓ(ˆ
Ø×(Ñ(¨¨jÓ9ˆØ×&Ñ&Ø# W¨nØ Cð 'ó )à)3ñ5à5;ñ=à=DñFˆ
ð ×"Ñ"Ð#CÀWÈmÓ\ˆØ×(Ñ(¨°ZÀÓGÐGr   N)rT   rU   rV   r˜   r�   rX   r   r   r“   r“   ¡   s   „ ò
óHr   r“   c                   óJ   — e Zd 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œgZy)ÚBrainPOPJrIEzhttps://jr.brainpop.comzhttps://svideos-jr.brainpop.comzhttps://hls-jr.brainpop.comzhttps://cdn-jr.brainpop.comz7https://jr.brainpop.com/health/feelingsandsel/emotions/Ú 04e0561bb21770f305a0ce6cf0d869abÚ347r   ÚEmotionsÚemotions)ra   rb   rc   r&   re   z8https://jr.brainpop.com/science/habitats/arctichabitats/Ú b0ed063bbd1910df00220ee29340f5d6Ú29zArctic HabitatsÚarctichabitatsrk   rl   N©rT   rU   rV   r   r"   r    r‰   r‘   rX   r   r   r£   r£   º   s]   „ Ø'€GØ2€JØ,€HØ,€HàHØ1àØØØ$ñ	
ñ	ð JØ1àØØ&Ø*ñ	
ð !ñ
ð�Fr   r£   c            	       óN   — e Zd 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œgZy)ÚBrainPOPELLIEzhttps://ell.brainpop.comz https://svideos-esl.brainpop.comzhttps://hls-esl.brainpop.comzhttps://cdn-esl.brainpop.comz.https://ell.brainpop.com/level1/unit1/lesson1/Ú a2012700cfb774acb7ad2e8834eed0d0Ú1r   zLesson 1Úlesson1zPersonal Pronouns)ra   rb   rc   r&   r—   re   z.https://ell.brainpop.com/level3/unit6/lesson5/Ú be19c8292c87b24aacfb5fda2f3f8363Ú101zLesson 5Úlesson5zReview: Unit 6rk   rl   Nr«   rX   r   r   r­   r­   Õ   sc   „ Ø(€GØ3€JØ-€HØ-€Hà?Ø1àØØØ#Ø,ñ
ñ
ð @Ø1àØØØ#Ø)ñ
ð !ñð�Fr   r­   c            	       óR   — e Zd Zd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œgZy)ÚBrainPOPEspIEu   BrainPOP EspaÃ±olzhttps://esp.brainpop.comr[   r\   zhttps://cdn.brainpop.com/mxzFhttps://esp.brainpop.com/ciencia/la_diversidad_de_la_vida/ecosistemas/Ú cb3f062db2b3c5240ddfcfde7108f8c9Ú3893r   ÚEcosistemasÚecosistemasz$md5:80fc55b07e241f8c8f2aa8d74deaf3c3r`   re   z>https://esp.brainpop.com/espanol/la_escritura/emily_dickinson/Ú 98c1b9559e0e33777209c425cda7dac4Ú7146zEmily DickinsonÚemily_dickinsonz$md5:2795ad87b1d239c9711c1e92ab5a978brk   rl   N©	rT   rU   rV   ÚIE_DESCr   r"   r    r‰   r‘   rX   r   r   rµ   rµ   ò   sh   „ Ø!€GØ(€GØ/€JØ)€HØ,€HàWØ1àØØ"Ø'ØAñ
ñ
ð PØ1àØØ&Ø+ØAñ
ð !ñð�Fr   rµ   c            	       óR   — e Zd Zd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œgZy)ÚBrainPOPFrIEu   BrainPOP FranÃ§aiszhttps://fr.brainpop.comr[   r\   zhttps://cdn.brainpop.com/frzBhttps://fr.brainpop.com/sciencesdelaterre/energie/sourcesdenergie/Ú 97e7f48af8af93f8a2be11709f239371Ú1651r   u   Sources d'Ã©nergieÚsourcesdenergiez$md5:7eece350f019a21ef9f64d4088b2d857r`   re   z0https://fr.brainpop.com/francais/ecrire/plagiat/Ú 0cf2b4f89804d0dd4a360a51310d445aÚ5803ÚPlagiatÚplagiatz$md5:4496d87127ace28e8b1eda116e77cd2brk   rl   Nr½   rX   r   r   rÀ   rÀ     sh   „ Ø"€GØ'€GØ/€JØ)€HØ,€HàSØ1àØØ*Ø+ØAñ
ñ
ð BØ1àØØØ#ØAñ
ð !ñð�Fr   rÀ   c                   ó:   — e Zd ZdZdZdZdZdZdddd	d
dddœdœgZy)ÚBrainPOPIlIEzBrainPOP Hebrewzhttps://il.brainpop.comr[   r\   zhttps://cdn.brainpop.com/hezAhttps://il.brainpop.com/category_9/subcategory_150/subjects_3782/Ú 9e4ea9dc60ecd385a6e5ca12ccf31641Ú3782r   z$md5:e993632fcda0545d9205602ec314ad67Úsubjects_3782z$md5:4cc084a8012beb01f037724423a4d4edr`   re   Nr½   rX   r   r   rÉ   rÉ   .  sA   „ Ø€GØ'€GØ/€JØ)€HØ,€HàRØ1àØØ;Ø)ØAñ
ñ
ð 
�Fr   rÉ   )rM   r   Úcommonr   Úutilsr   r   r   r	   r   rZ   r“   r£   r­   rµ   rÀ   rÉ   rX   r   r   ú<module>rÏ      s‡   ðÛ Û 	å !÷ó ôD`�]ô D`ôNJ
�ô J
ôZH˜>ô Hô2Ð'ô ô6Ð(ô ô:Ð(ô ô<Ð'ô ô<Ð'õ r   