
    ^j                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl	m
Z
  e
e                                          j        d         Zedz  Zedz  Zedz  Zedz  Zed	z  Zed
z  ZdZddZd Zd Zd Zedk    r ej         e                       dS # e$ rbZ e ee                               d          r ee          nd ee          z   ej!                    ej        d           Y dZ[dS dZ[ww xY wdS )    N)datetimetimezone)Path   zoutput/final.mp4zlog/final-render.jsonzstory/promotion-report.jsonzoutput/final-upload.mp4z$log/upload-transcode-submission.jsonzlog/upload-transcode.jsonzhttp://192.168.1.104:8024   c                 V   |&t          j        |                                          nd }t          j                            t          |z   ||rddini |           }t          j                            ||          5 }t          j        |          cd d d            S # 1 swxY w Y   d S )NzContent-Typezapplication/json)dataheadersmethod)timeout)	jsondumpsencodeurllibrequestRequestBASEurlopenload)r   pathpayloadr   bodyreqresponses          script/transcode-upload.pyr   r      s    )0)<G			#	#	%	%	%$DtDydbf;nNK];^;^lnv|}}C			G		4	4[	RZH[H[[[[[[[[[[[[[[[[[[[s   =BB"%B"c                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)fs   r   <lambda>zsha.<locals>.<lambda>   s    !4!4     r"   )hashlibsha256openiterupdate	hexdigest)r   hblockr    s      @r   shar+      s    nA	4 JA4444S99IIE!((5////IJ J J J J J J J J J J J J J J;;==s   ,A##A'*A'c                     t          j        dddddddddt          |           g
d	d	d	
          }t          j        |j                  S )Nffprobez-verrorz-show_entrieszformat=duration,sizezMstream=index,codec_name,width,height,sample_rate,channels:stream_tags=encoderz-ofr   T)capture_outputtextcheck)
subprocessrunstrr   loadsstdout)r   outs     r   prober8      s    	$w?UVe  gv  w|  }C  DG  HL  DM  DM  N  ^b  hl  sw  	x  	x  	xC:cj!!!r"   c                  :   t           t          t          fD ](} |                                 st	          d|            )t          j        t                                                    }t          j        t                                                    }|                    d          }t          t                     }|                    d          dusI|                    d          dus2|                    d          |k    s|                    d          |k    rt	          d          t                                          r(t                                          st	          d          t                                          r#t          j        t                                                    }|                    d          du r|                    d          |k    r|                    d	          |k    rt                                          rt                                          j        d
k     rt|                    d          t          t                    k    rIt          t          j        d|d         t                                          j        d                     dS t!          dd          }|                    d          dk    s|                    d          durt	          d          d }t"                                          rt          j        t"                                                    }|                    d          |k    s.|                    d	          |k    s|                    d          st	          d          |}|t%          t                     t%          t                    dd
dddddd	}	t!          dd|	          }
dd|||
d         |
d         |	t'          j        t*          j                                                  d}t"                              t          j        |dd !          d"z              |d         }t3          d#          D ]B}t!          dd$|z             }|                    d          d%v r n$t5          j        d&           Ct	          d'          |                    d          d(k    s+|                    d)i                               d          dur;t	          d*|                    d           d+|                    d,                     t9          t                    }|                    d-g           }d. |D             }d/ |D             }t;          |          dk    ot;          |          dk    o|d                             d0          d1k    o|d                             d0          d2k    o||d                             d3          dk    o]|d                             d4          dk    o>t                                          j        d
k     o|d)                             d5          du }d ||rd(nd6|t%          t                               t>                              ||t@          t%          t                              t>                              t                                          j        t          t                    |d)         |dd7d8d9t'          j        t*          j                                                  d:}t                              t          j        |dd !          d"z              t          t          j        |||d;         |d         d<d=                     |rdndS )>NzTranscode blocked: missing spoken_sha256verifiedTsource_canon_sha256output_sha256z4Transcode blocked: final/canon/hash receipt mismatchz2Unreceipted upload output exists; do not overwriteinput_sha256i ʚ;job_id)reused_verifiedr?   bytesr   GETz/healthstatusok
h264_nvenczTranscode endpoint unhealthyzNTranscode blocked: prior submission belongs to different authority/input bytesi /`   i  i8  r   F)	input_video_pathoutput_video_pathtarget_output_bytesmax_output_bytesaudio_bitrate_kbpswidthheightfps	overwritePOSTz!/v1/huyenan-transcode-upload/jobsr   )versionr;   r<   r>   r?   rC   r   submitted_at   )ensure_asciiindent
i  z"/v1/huyenan-transcode-upload/jobs/>   failed	cancelled	completed
   z'Transcode poll timeout; resume same jobrY   verificationzTranscode job ended z: r.   streamsc                 <    g | ]}|                     d           |S )rL   get.0ss     r   
<listcomp>zmain.<locals>.<listcomp>?   s-    >d>d>dQUVUZUZ[bUcUc>dq>d>d>dr"   c                 <    g | ]}|                     d           |S )sample_rater^   r`   s     r   rc   zmain.<locals>.<listcomp>?   sc      lX  lX  lXrs  CD  CH  CH  IV  CW  CW  lXlm  lX  lX  lXr"   
codec_nameh264aacrL   rM   under_one_gbrW   not_required user_preapproved_footage_content)requiredrC   reason)rQ   r;   rC   r<   inputr>   r?   endpointoutputoutput_bytesr=   server_verificationindependent_probe	visual_qa
checked_atrq   )r;   r?   rA   r$   )rT   )!FINALFINAL_RECEIPT	PROMOTIONexistsRuntimeErrorr   r5   	read_textr_   r+   OUTPUTRECEIPTstatst_sizeprintr   r   
SUBMISSIONr4   r   nowr   utc	isoformat
write_textrangetimesleepr8   lenrelative_toPROJECTr   )r   final_receipt	promotioncanon	final_shaoldhealth
submission	candidater   createdr?   _joblocalr\   videoaudior;   receipts                       r   mainr       s1
   }Y/ V V{{}}U<0Td0T0T#U#UUU*]446677M$*YM`M`MbMbBcBc	jsjwjw  yH  kI  kIdi%jjI}}Z  ,,0A0A*0M0MUY0Y0Y]j]n]n  pE  ^F  ^F  HM  ^M  ^M  Q^  Qb  Qb  cr  Qs  Qs  u~  Q~  Q~  EQ  RH  EI  EI  I}}xw~~//xlCw6x6x0x~~ vJw((**++77:$&&3773H+I+I5+P+PUXU\U\]kUlUlnwUwUw  }C  }J  }J  }L  }LUw  QW  Q\  Q\  Q^  Q^  Qf  gt  Qt  Qt  y|  y@  y@  AP  yQ  yQ  SV  W]  S^  S^  y^  y^$*c(mTZT_T_TaTaTijjkkllltutu5##Fzz(T!!VZZ%=%=T%I%IP\]{P|P|J|J *Z113344	==.//66)--:W:WYb:b:bjsjwjw  yA  kB  kB:boppp
$'JJ3v;;ep  ER  hj  sw  AE  LN  [`  a  aB7KK5u\eovw  pA  KR  S[  K\  gn  ~F  ~J  KS  KW  ~X  ~X  ~b  ~b  ~d  ~d  e  e
djaPPPQUUVVVhF3ZZ G GE>vEFF778 BBB55
2EFF	F
wwx+%%)C)C)G)G
)S)S[_)_)_fr  tr  KN  KR  KR  S[  K\  K\  tr  tr  `c  `g  `g  ho  `p  `p  tr  tr  gs  gs  as
--E		)B 7 7>d>d'>d>d>d  lX  lXw~  lX  lX  lXej%jj!m  XE

A  X%(,,|2L2Lf2T  XY^_`YaYeYefrYsYsuzYz  X  @E  FG  @H  @L  @L  MT  @U  @U  W[  @[  X  `e  fg  `h  `l  `l  mu  `v  `v  x|  `|  X  AG  AL  AL  AN  AN  AV  Wd  Ad  X  il  m{  i|  i@  i@  AO  iP  iP  TX  iXHHX6[kkS[rw  AD  EJ  EV  EV  W^  E_  E_  A`  A`  py  CI  UY  cf  gm  gy  gy  zA  gB  gB  cC  cC  SY  S^  S^  S`  S`  Sh  y|  }C  yD  yD  [^  _m  [n  CH  af  p~  Hj  Uk  Uk  yA  yE  FN  FR  yS  yS  y]  y]  y_  y_  `  `Gtz'uAFFFtKLLL	$*6'.BYcjkzc{||  KP  Q  Q  Q  R  R  R  _g  Zn  Z[  Z[  mn  Snr"   __main__zTranscode blocked:zTranscode blocked: )file)Nr   )"r#   r   r2   sysr   urllib.requestr   r   r   pathlibr   __file__resolveparentsr   rv   rw   rx   r|   r   r}   r   r   r+   r8   r   __name__exit	Exceptionexcr   r4   
startswithstderr r"   r   <module>r      s         



      ' ' ' ' ' ' ' '      X  (+  --
/
/	((99
++ \ \ \ \  
" " "#n #n #nH ZSXddff   %CCHH''(<==aCCXY\Y\]`YaYaCagjgqrrrr
#(1+++++++++ s   B D!AC>>D