
    8j                         d dl Z d dlZd dlZd dlmZ  ed          ZdZ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edz  ZdZd ZddZd Zd Zedk    r e             dS dS )    N)PathzJ/data/video-pipeline/Youtube-Video-Maker/Project/05062026-002-Dinh-Bo-Linhz$http://192.168.1.104:8016/concat-mp4zhttp://192.168.1.104:8002/probezparts/part_ranges.jsonz#render_parts/render_validation.jsonoutputzmain_story.mp4zmain_story_probe.jsonzconcat_report.jsonz&logs/step15_concat_parts_manifest.jsong      ?c                 R    t          t          j        d          | z   d           d S )Nz%Y-%m-%d %H:%M:%S T)flush)printtimestrftime)msgs    #scripts_run_step_15_concat_parts.pylogr      s+    	$-,
-
-
34@@@@@@      c                    t           j                            | t          j        |d                              d          ddid          }t           j                            ||          5 }t          j        |                                	                    d                    cd d d            S # 1 swxY w Y   d S )	NFensure_asciiutf-8zContent-Typezapplication/jsonPOST)dataheadersmethodtimeout)
urllibrequestRequestjsondumpsencodeurlopenloadsreaddecode)urlpayloadr   reqresps        r   	post_jsonr'      s    
.
 
 Ze444;;GDD!34	 !  C 
		W		5	5 7z$))++,,W55667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   .9B44B8;B8c           
         t          t          dt          |           id          }|                    di           }|                    dg           }d |D             }d |D             }t          |           |                    d          t	          |                    d	          pd
          t          |                    d          pd
          t          |          t          |          |||d	S )N
input_pathx   r   formatstreamsc                 D    g | ]}|                     d           dk    |S )
codec_typevideoget.0ss     r   
<listcomp>zprobe.<locals>.<listcomp>'   .    JJJ1155+>+>'+I+IQ+I+I+Ir   c                 D    g | ]}|                     d           dk    |S )r.   audior0   r2   s     r   r5   zprobe.<locals>.<listcomp>(   r6   r   format_namedurationr   size)	pathr9   duration_secr;   	has_video	has_audiovideo_streamsaudio_streamsraw)r'   PROBE_ENDPOINTstrr1   floatintbool)r<   docfmtr,   r@   rA   s         r   proberJ   #   s    
N\3t99$=s
K
K
KC
''(B

Cggi$$GJJJJJMJJJJJMD		ww}--cggj116Q77CGGFOO(q))-((-((&&
 
 
r   c                  h
   t                               dd           t          j                            dd           t	          j        t                              d                    d         } t	          j        t                              d                    }|	                    d          dk    r%t          d|	                    d                     d	 |	                    dg           D             }g }g }| D ]}|d
         }||vrt          d|           t          ||         d                   }|                                st          d|           |                    t          |                     |                    |t          |          |d         ||         d         d           t!          d |D                       }t!          d |D                       }	|t          t"                    dd}
t%          dt&           dt)          |           dt"                      t+          t&          |
d          }t-          t"                    }|d         |	z
  }|d         |z
  }|	                    d          dk    o@t"                                          o'|d         o|d         ot/          |          t0          k    }t2          j        dt          t"                    |d         ||	t7          |d          t7          |d          |d         |d         |d         |d          |d!         |d"         d#}t2          j        d|rdnd$t&          ||t          t"                    t          t8                    t0          t"                                          |d         |d         t)          |          t7          |d          t7          |d          |d%d&
}t8                              t	          j        |dd'(          d           t>                              t	          j        |dd'(          d           t                              t	          j        t2          j        d|d         t&          t          t"                    t          t8                    t          t>                    t)          |          |d         d)	dd'(          d           |stA          d$          t%          d*t	          j        |d         |d         t)          |          d+d,          z              d S )-NT)parentsexist_okr   )encodingpartsstatus	completedz%Step 14 validation is not completed: c                 J    i | ] }|                     d           |d         |!S )validpart_idr0   r3   ps     r   
<dictcomp>zmain.<locals>.<dictcomp>=   s3    aaaqRSRWRWX_R`R`a1Y<aaar   rT   z1Part is missing or invalid in render validation: output_pathzMissing rendered part: r=   video_duration_sec)rT   r<   target_duration_secvalidated_duration_secc              3   &   K   | ]}|d          V  dS )rZ   N rU   s     r   	<genexpr>zmain.<locals>.<genexpr>P   s(      HHAq./HHHHHHr   c              3   &   K   | ]}|d          V  dS )r[   Nr]   rU   s     r   r^   zmain.<locals>.<genexpr>Q   s(      NN!!45NNNNNNr   F)input_pathsrX   reencodezPOST z inputs=z output=r   r   okr?   r>         r9   r;   r@   rA   )
project_idstepmain_audio_video_pathmain_duration_sectarget_total_duration_sec"validated_parts_total_duration_secdiff_vs_validated_parts_secdiff_vs_target_ranges_secr?   r>   r9   r;   r@   rA   failed_validation)output_existsr?   r>   parts_count$duration_diff_vs_validated_parts_sec"duration_diff_vs_target_ranges_secrS   )
re   rf   rP   endpointconcat_responseinput_partsrX   
probe_pathduration_tolerance_sec
validation   )r   indent)	re   rf   rP   rr   rX   ru   concat_reportro   r=   zDONE )rP   r:   rO   r   )!
OUTPUT_DIRmkdirMANIFESTparentr   r    PART_RANGES	read_textRENDER_VALIDATIONr1   RuntimeErrorr   existsFileNotFoundErrorappendrD   sum
OUTPUT_MP4r   CONCAT_ENDPOINTlenr'   rJ   absDURATION_TOLERANCEPROJECTnameround
PROBE_JSON
write_textr   CONCAT_REPORT
SystemExit)part_rangesrender_validationvalid_by_idr`   selected_partspartpidr<   target_totalvalidated_totalr$   responsemediaduration_difftarget_diffrS   	probe_docreports                     r   mainr   6   sV   TD111O$666*[22G2DDEEgNK
#4#>#>#>#P#PQQX&&+55dCTCXCXYaCbCbddeeeaa,=,A,A'2,N,NaaaKKN  9ok!!XSVXXYYYK$]344{{}} 	F#$Dd$D$DEEE3t99%%%II#'#7&1#&67K&L	
 
 	 	 	 	 HHHHHHHLNN~NNNNNO": G
 OOO[)9)9OO:OOPPP'4@@@H*E.)O;M',6KX$& 	5	5+	5 +	5 "44 
 l!$Z">2%1.=',]A'>'>%*;%:%:;';']+f// I" l!&?++,?##%:*oo"4'..00{+{+~..49-4K4K27Q2G2G
 
 F( $*YU1MMMX_```TZU1MMMX_```
l"#:*oo]++>**n-
$ 
$ !
% 
% 
% 07  
8 
8 
8  .,---$*x(8eNF[fijxfyfyzz  JO  P  P  P  	P  Q  Q  Q  Q  Qr   __main__)r   )r   r   urllib.requestr   pathlibr   r   r   rC   r   r   r{   r   r   r   r}   r   r   r'   rJ   r   __name__r]   r   r   <module>r      s              
$[
\
\8200CC x
**
11
11== A A A7 7 7 7  &`Q `Q `QF zDFFFFF r   