
    VGhn-                     d   d dl Z d dlZd dlZd dlZddlmZ ddlmZ ddlm	Z	  ej                  d      Z ej                  d      Z ej                  d	      Z ej                  d
      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Zej+                  d      ej+                  d       dz  z   dz  ej+                  d      z   ZdZdZdZdZd Zd Zd Zd Z G d de      Zy)    N   )
FragmentFD   )	HTTPError)RetryManagerz>Bz>Bxz>Hz>Hxxz>Iz>Qz>bxz>hz>hxxz>ii      i   @   c                 P    t         j                  dt        |      z         | z   |z   S )N   )u32packlen)box_typepayloads     ^/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/yt_dlp/downloader/ism.pyboxr      s$    88AG$%07::    c                 x    t        | t        j                  |      t        j                  |      dd  z   |z         S )Nr   )r   u8r   r   )r   versionflagsr   s       r   full_boxr   #   s1    x)CHHUOAB,??'IJJr   c                 v   |d   }|d   }|d   }|j                  dd      }|j                  dd      }|j                  dd	      }|j                  d
d	      }|d   }	t        t        j                               x}
}d}|t        j	                  d      z  }|dz  }| j                  t        d|             t        j	                  |
      }|t        j	                  |      z  }|t        j	                  |      z  }|t        j	                  |      z  }|t        j	                  d      z  }|t        j	                  d      z  }|t        j	                  d	      z  }|t        j	                  d	      dz  z  }|t        z  }|t        j	                  d	      dz  z  }|t        j	                  d      z  }t        ddd	|      }t        j	                  |
      }|t        j	                  |      z  }|t        j	                  |      z  }|t        j	                  d	      z  }|t        j	                  |      z  }|t        j	                  d	      dz  z  }|t        j	                  d	      z  }|t        j	                  d	      z  }|t        j	                  |	dk(  rdnd	      z  }|t        j	                  d	      z  }|t        z  }|t        j	                  |      z  }|t        j	                  |      z  }t        ddt        t         z  t"        z  |      }t        j	                  |
      }|t        j	                  |      z  }|t        j	                  |      z  }|t        j	                  |      z  }|t        j	                  t%        |d	         dz
  dz  t%        |d         dz
  dz  z  t%        |d         dz
  z        z  }|t        j	                  d	      z  }t        ddd	|      }t        j	                  d	      }|	dk(  r&|dz  }|t        j	                  d	      dz  z  }|dz  }nX|	dk(  r&|dz  }|t        j	                  d	      dz  z  }|dz  }n-|	d k(  r&|d!z  }|t        j	                  d	      dz  z  }|d"z  }nJ |t        d#d	d	|      z  }|	dk(  r<t        j	                  d	      }|t        j	                  d	      z  }t        d$d	d	|      }nZ|	dk(  r?t        j	                  d	      }|t        j	                  d	      dz  z  }t        d%d	d|      }n|	d k(  rt        d&d	d	d'      }nJ |}t        j	                  d      }|t        d(d	t&        d'      z  }t        d)d	d	|      }|t        d*|      z  }t        j	                  d      }t(        j	                  d	      dz  }|t        j	                  d      z  }|	dk(  r|t        j	                  d	      dz  z  }|t        j	                  |j                  d+d            z  }|t        j	                  |j                  d,d-            z  }|t        j	                  d	      z  }|t        j	                  d	      z  }|t        j	                  |d.         z  }|d/k(  rt        d0|      }|d1k(  rt        d2|      }n|	dk(  r`|t        j	                  d	      z  }|t        j	                  d	      z  }|t        j	                  d	      dz  z  }|t        j	                  |      z  }|t        j	                  |      z  }|t        j	                  d3      z  }|t        j	                  d3      z  }|t        j	                  d	      z  }|t        j	                  d      z  }|t(        j	                  d	      d4z  z  }|t        j	                  d5      z  }|t        j	                  d6      z  }t+        j,                  |d7   j/                               }|d8v r|j1                  t        j	                  d            dd  \  }}t(        j	                  d      } | |dd9 z  } | t(        j	                  d:|j                  d;d9      dz
  z        z  } | t(        j	                  d      z  } | t        j	                  t3        |            z  } | |z  } | t(        j	                  d      z  } | t        j	                  t3        |            z  } | |z  } |t        d<|       z  }t        d=|      }n,J |	d k(  r#|d>k(  r|d?z  }|d@z  }|d@z  }t        dA|      }nJ J |z  }t        dBd	d	|      }!t        j	                  d	      }"|!t        dCd	d	|"      z  }!t        j	                  d	      }#|!t        dDd	d	|#      z  }!t        j	                  d	      }$|!t        dEd	d	|$      z  }!|t        dF|!      z  }|t        dG|      z  }|t        dH|      z  }|t        dI|      z  }t        j	                  |      }%t        dJdd	|%      }&t        j	                  |      }'|'t        j	                  d      z  }'|'t        j	                  d	      z  }'|'t        j	                  d	      z  }'|'t        j	                  d	      z  }'|&t        dKd	d	|'      z  }&|t        dL|&      z  }| j                  t        dM|             y )NNtrack_idfourccduration	timescalei languageundheightr   widthstream_types   ismlr   s   piffiso2s   ftypr      l    s   mvhdaudios   tkhd`   
      s   mdhds   sounr   s   SoundHandler videos   vides   VideoHandler texts   subts   SubtitleHandler s   hdlrs   smhds   vmhds   sthdr   s   url s   drefs   dinfchannelsbits_per_sample   sampling_rateAACLs   mp4azEC-3s   ec-3H          codec_private_data)H264AVC1r	      nal_unit_length_fields   avcCs   avc1TTMLs   http://www.w3.org/ns/ttml     s   stpps   stsds   sttss   stscs   stcos   stbls   minfs   mdias   traks   mehds   trexs   mvexs   moov)getinttimer   r   writer   u64s1616s88u16unity_matrixr   s16u1616TRACK_ENABLEDTRACK_IN_MOVIETRACK_IN_PREVIEWordSELF_CONTAINEDr   binascii	unhexlifyencodesplitr   )(streamparamsr   r   r   r   r   r    r!   r"   creation_timemodification_timeftyp_payloadmvhd_payloadmoov_payloadtkhd_payloadtrak_payloadmdhd_payloadmdia_payloadhdlr_payloadsmhd_payloadmedia_header_boxvmhd_payloadminf_payloaddref_payloaddinf_payloadstsd_payloadsample_entry_payloadsample_entry_boxr3   spsppsavcc_payloadstbl_payloadstts_payloadstsc_payloadstco_payloadmehd_payloadmvex_payloadtrex_payloads(                                           r   write_piff_headerrm   '   s	   j!HHFj!H

;1Izz*e,HZZ!$FJJw"E'K(+DIIK(88M%LCHHQKL%%L
LLWl+,88M*LCHH.//LCHHY''LCHHX&&LEJJqM!LCHHQKLCHHQKLCHHQK!O#LL LCHHQK!O#LCHHZ((LGQ<8L88M*LCHH.//LCHHX&&LCHHQKLCHHX&&LCHHQK!O#LCHHQKLCHHQKLCHH+"8Qa@@LCHHQKLL LEJJu%%LEJJv&&LGQ(FIY(Y[ghL88M*LCHH.//LCHHY''LCHHX&&LCHHs8A;/$62=3xPQ{CSVZCZ_`B`aehiqrsiteux|e|}~~LCHHQKLGQ<8L88A;Lga'))		a'))		a',,uHWaL99Lgxx{##GQ<@		xx{a'#GQ<@		#GQ37u#L88A;LHWa==LGQ<8LC..L88A;L771:>CHHQK'ga/J)B CC4Er)J KK++

6/+B CCV"7,@AV"7,@A		++a// 00

4 00

4 00++
R/.,%//7K0L0S0S0UV%%)//<QR@HC771:LC!H$LBGGDFJJ7NPQ,RUV,V$WXXLBGGAJ&LCHHSX..LCLBGGAJ&LCHHSX..LCL C$>> "7,@A5		V $BB  E)  E) "7,@A5u$$LGQ<8L88A;LHWaL99L88A;LHWaL99L88A;LHWaL99LC..LC..LC..LC..L88H%LGQ<8L88H%LCHHQKLCHHQKLCHHQKLCHHQKLHWaL99LC..L
LLWl+,r   c                 @   t        j                  |       }	 t        j                  |j	                  d            d   }|j	                  d      }||d   k(  r3|j	                  |dz
        }t        |      dk(  r|S t        ||dd        S |j                  |dz
  d       )Nr	   r   r   r   )ioBytesIOr   unpackreadr   extract_box_dataseek)databox_sequencedata_readerbox_sizer   box_datas         r   rs   rs      s    **T"K
::k..q1215##A&|A&"''15H< A%#Hl12.>??Aq) r   c                       e Zd ZdZd Zy)IsmFDz-
    Download segments in a ISM manifest
    c                 L   | j                   j                  dd      r|d   d d n|d   }|t        |      d}| j                  ||       |j	                  dddi      }| j                   j                  dd	      }d
}|D ]  }|dz  }||d   k  rt        | j                   j                  d      | j                  ||       }	|	D ]  }
	 | j                  ||d   |      }|s  y| j                  |      }|d   sFt        |g d      }t        j                  |dd       d
   |d   d<   t        |d   |d          d	|d<   | j                  ||        |	j                  s|s y| j!                  |        | j#                  ||      S # t        $ r}||
_        Y d }~d }~ww xY w)NtestF	fragmentsr   )filenametotal_fragsextra_stateism_track_writtenskip_unavailable_fragmentsTr   fragment_indexfragment_retries)
frag_indexfatalurl)s   moofs   trafs   tfhdr	   r   _download_paramsr   dest_stream)rO   r:   r    _prepare_and_start_frag_download
setdefaultr   report_retry_download_fragment_read_fragmentrs   r   rq   rm   _append_fragmentr   errorreport_skip_fragment_finish_frag_download)selfr   	info_dictsegmentsctxr   r   r   segmentretry_managerretrysuccessfrag_content	tfhd_dataerrs                  r   real_downloadzIsmFD.real_download   s   15E29[)"1- )+ 6 	 !x=

 	--c9=nn]5
  &*[[__5QSW%X"
 	6G!OJS!122(9K)LdN_N_4>JdFdfM& "55c75>9UG"$#'#6#6s#;L&':;$4\C^$_	DGJJyYZ[\~D^_`Da	"45jA)#m*<iHZ>[\;?$78))#|<" ""1 ))*57	6: ))#y99 ! "%EKs   F	#A.F			F#FF#N)__name__
__module____qualname____doc__r    r   r   r{   r{      s    /:r   r{   ) rJ   ro   structr<   fragmentr   networking.exceptionsr   utilsr   Structr   u88rA   rD   r   r>   r@   rC   r?   s32r   rB   rE   rF   rG   rI   r   r   rm   rs   r{   r   r   r   <module>r      s$    	     -  V]]4fmmEfmmDffmmDfmmDfmmEfmmDffmmD!CHHQK!O3q8388J;OO ;Kp-f
*4:J 4:r   