§
    ?ÝÖjš  ã                   ó¢  — d Z 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ZdZej	         
                    de¦  «         ddlmZ dZej	                             ed¦  «        Zej	                             ed¦  «        ZdZd	d
gZ ej         ej        d¬¦  «        ¦  «        ZdZdZg d¢Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Ze dk    r e¦   «          dS dS )u  Story IG StudioSoft sebagai VIDEO bermusik (bukan gambar diam).

Perintah Bos 20 Okt 2026: *"pastikan semua postingan Instagram StudioSoft pakai lagu"*.
IG Graph API tidak punya kolom musik untuk story gambar, jadi satu-satunya jalan: story
dijadikan video pendek (8 dtk) dengan bed musik dibakar ke MP4 â€” gambar tetap sama
(kanvas 9:16 hasil `ss_ig_story_mirror.kanvas_story`), cuma diberi zoom halus + lagu.

Bed musik: bank sendiri di `musik/` (bebas royalti, buatan `musik_bank.py`), diputar
bergiliran per tanggal supaya tidak sama terus.

Sebagai modul:  video_story(nama_jpg, tgl) â†’ nama berkas mp4
CLI:
  python3 ss_story_musik.py --hari 30          # rencana: story gambar mana yang dijadikan video
  python3 ss_story_musik.py --hari 30 --run    # bangun video + PUT jadwalnya
é    Nz//home/mantapman/.hermes/profiles/atun/workspace)Ú
get_clientÚ6a38ac33c5ff4ce3a3231232zopenclaw-imgÚmusikz4https://mantapserver.tail3947bb.ts.net/openclaw-img/z103.84.155.153z103.84.155.217é   )Úhoursg       @g      è?)zkalem_hangat_24s.wavzkalem_lembut_24s.wavzceria_ringan_24s.wavzkalem_malam_24s.wavzceria_cerah_24s.wavc                 ó°   — t           j                             t          t          |                      ¦   «         t          t          ¦  «        z           ¦  «        S )N)ÚosÚpathÚjoinÚMUSIKÚBEDÚ	toordinalÚlen)Útgls    úA/home/mantapman/.hermes/profiles/atun/workspace/ss_story_musik.pyÚ	bed_untukr   +   s0   € ÝŒ7�<Š<��s 3§=¢=¡?¤?µS½±X´XÑ#=Ô>Ñ?Ô?Ð?ó    c                 óR   — t          j        dd| t           j        ¬¦  «        }d|› d�S )Nz\.(jpe?g|png|webp)$Ú )ÚflagsÚss_story_vid_ú.mp4)ÚreÚsubÚI)Únama_jpgÚdasars     r   Ú
nama_videor   /   s.   € ÝŒFÐ)¨2¨x½r¼tÐDÑDÔD€EØ&˜5Ð&Ð&Ð&Ð&r   c                 óà   — t          j        ddd| dddddg	d	d	¬
¦  «        }t          j        d|j        ¦  «        }t          |¦  «        o%t          |                     d¦  «        ¦  «        dk    S )NÚffmpegz-hide_bannerú-iz-afÚvolumedetectz-fÚnullú-T©Úcapture_outputÚtextzmax_volume: (-?[\d.]+) dBé   iÎÿÿÿ)Ú
subprocessÚrunr   ÚsearchÚstderrÚboolÚfloatÚgroup)r
   ÚpÚms      r   Úaudio_terisir2   4   st   € ÝŒ˜ .°$¸¸eÀ^Ø˜f cð+Ø;?Àdð	Lñ 	Lô 	L€Aå
Œ	Ð.°´Ñ9Ô9€AÝ�‰7Œ7Ð.•u˜QŸWšW Q™ZœZÑ(Ô(¨3Ò.Ð.r   Fc           
      óž  — t           j                             t          | ¦  «        }t           j                             |¦  «        sdS t          | ¦  «        }t           j                             t          |¦  «        }t           j                             |¦  «        r6t           j                             |¦  «        dk    r|st          |¦  «        r|S t          |¦  «        }t           j                             |¦  «        sdS dt          › dt          dz
  d›dt          d›d�}|                     d	d
¦  «        }g d‘d‘d‘d‘d‘d‘d‘d‘d‘t          t          ¦  «        ‘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*‘d+‘d,‘d-‘d.‘d/‘d0‘|‘}	t          j        |	d1¬2¦  «         t          |¦  «        st          j        |¦  «         dS t          j        ||¦  «         t!          d3|› d4t           j                             |¦  «        d5z  d›d6t           j                             |¦  «        › d7�¦  «         |S )8zOBangun (kalau belum ada) video story 1080x1920 + musik. Return nama berkas mp4.Ni † zé[0:v]scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:color=white,zoompan=z='min(1.05,1+0.0007*on)':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':d=1:s=1080x1920:fps=30,format=yuv420p[v];[1:a]volume=z&,afade=t=in:st=0:d=0.6,afade=t=out:st=g333333ó?z.2fz:d=1.2,atrim=0:z,asetpts=N/SR/TB[a]r   z_tmp.mp4r    z-yz-vÚerrorz-loopÚ1z
-framerateÚ30z-tr!   z-stream_loopz-1z-filter_complexz-mapz[v]z[a]z-c:vÚlibx264z-presetÚmediumz-crfÚ21z
-profile:vÚhighz-levelz4.0z-pix_fmtÚyuv420pz-rz-c:aÚaacz-b:aÚ192kz-arÚ44100z	-shortestz	-movflagsz
+faststartT)Úcheckz      video story: z (g    €„.Az MB, ú))r	   r
   r   ÚIMG_DIRÚexistsr   Úgetsizer2   r   ÚVOLÚDURÚreplaceÚstrr)   r*   ÚremoveÚprintÚbasename)
r   r   ÚpaksaÚsrcÚout_namaÚoutÚbedÚfcÚtmpÚcmds
             r   Úvideo_storyrS   ;   s}  € å
Œ'�,Š,•w Ñ
)Ô
)€CÝŒ7�>Š>˜#ÑÔð ØˆtÝ˜(Ñ#Ô#€HÝ
Œ'�,Š,•w Ñ
)Ô
)€CÝ	„w‡~‚~�cÑÔð �rœwŸš¨sÑ3Ô3°gÒ=Ð=ÀeÐ=Ý˜ÑÔð 	ØˆOÝ
�C‰.Œ.€CÝŒ7�>Š>˜#ÑÔð Øˆtð	Uõ ð		Uð 	Uõ
  ™)ÐTð	Uð 	Uõ
 9<ÐTð	Uð 	Uð 	Uð ð �+Š+�f˜jÑ
)Ô
)€Cð+ˆ8ð +�Tð +˜4ð + ð +¨'ð +°3ð +¸ð +Àdð +ÈDð +ÕRUÕVYÑRZÔRZð +Ð\`ð +Ðbeð +Øð+Øð+Ø!%ð+Ø'*ð+Ø,=ð+Ø?Að+àð+àð+à ð+à"'ð+à)/ð+à1:ð+à<Eð+àGOð+àQWð+àY]ð+ð ð+ð  ð+ð "*ð+ð ,1ð+ð 3=ð+ð ?Hð+ð JNð+ð PTð+ð ð	+ð ð	+ð !ð	+ð #)ð	+ð +0ð	+ð 29ð	+ð ;Fð	+ð
 ð+ð
 %ð+ð
 '*ð+€Cõ „N�3˜dÐ#Ñ#Ô#Ð#Ý˜ÑÔð Ý
Œ	�#‰ŒˆØˆtÝ„Jˆs�CÑÔÐÝ	ð & ð &ð &­B¬G¯OªO¸CÑ,@Ô,@À3Ñ,FÐ
Qð &ð &ÝŒW×Ò˜cÑ"Ô"ð&ð &ð &ñ 'ô 'ð 'à€Or   c                 óÄ   — g d}}|dk    rU|                       |d¬¦  «        }|                     d¦  «        pg }|sn$||z  }t          |¦  «        dk     rn|dz  }|dk    °U|S )Nr(   é<   éd   )ÚpageÚlimitÚdocs)Úget_schedulesÚgetr   )ÚcrY   rW   ÚrÚbs        r   Úsemua_jadwalr_   a   s~   € Ø�Qˆ$€DØ
�"Š*ˆ*Ø�OŠO ¨SˆOÑ1Ô1ˆØ�EŠE�&‰MŒMÐ˜RˆØð 	ØØ�‰	ˆÝˆq‰6Œ6�CŠ<ˆ<ØØ�‰	ˆð �"Š*ˆ*ð €Kr   c                 ó¦   — d}t           D ]F}t          j        dddddddd	d
d|› �| gdd¬¦  «        }|o|j                             ¦   «         dk    }ŒG|S )NTÚcurlz-sz-oz	/dev/nullz-wz%{http_code}z
--max-timer6   z	--resolvez#mantapserver.tail3947bb.ts.net:443:r%   Ú200)ÚINGRESSr)   r*   ÚstdoutÚstrip)ÚuÚokÚipr0   s       r   Úcek_ingressri   o   s~   € Ø	€BÝð .ð .ˆÝŒN˜F D¨$°¸TÀ>ÐS_ÐaeØ'Ð)SÈrÐ)SÐ)SÐUVðXà*.°Tð;ñ ;ô ;ˆð Ð-�A”H—N’NÑ$Ô$¨Ò-ˆˆØ€Ir   c                  ó"  — t          j        ¦   «         } |                      dt          d¬¦  «         |                      dd¬¦  «         |                      ¦   «         }t
          j                             t
          j        j        ¦  «        }|t          j	        |j
        ¬¦  «        z   }t          ¦   «         }g }t          |¦  «        D �]ª}|                     d¦  «        t          k    rŒ"t          |                     d	¦  «        ¦  «                             ¦   «         d
k    rŒ[t          |                     d¦  «        ¦  «                             ¦   «         dvrŒ’t
          j                             t          |                     d¦  «        ¦  «                             dd¦  «        ¦  «        }||cxk    r|k    sn Œõ|                     d¦  «        pi gd         }|                     d¦  «        pd                     d¦  «        d         }	t          |                     d	¦  «        ¦  «                             ¦   «         dk    s|	                     d¦  «        r�Œ’|                     |||	f¦  «         �Œ¬t-          dt/          |¦  «        › �¦  «         d}
t1          |d„ ¬¦  «        D �]Â\  }}}	|                     t4          ¦  «                             d¦  «        }|j        s6t-          d|› d|	d d…         › dt;          |	¦  «        d d …         › �¦  «         Œqt=          |	|                     ¦   «         ¦  «        }|st-          d!|› d"|	› �¦  «         |
d#z  }
Œ°t@          |z   }tC          |¦  «        st-          d!|› d$�¦  «         |
d#z  }
Œâ	 | "                    |d%         d|d|d&œgi¦  «         nG# tF          $ r:}t-          d!|› d't          |¦  «        d d(…         › �¦  «         |
d#z  }
Y d }~�ŒFd }~ww xY w| $                    |d%         ¦  «        }|                     d)¦  «        p|}tK          |tL          ¦  «        rd*|v r|d*         d         }|                     d¦  «        pi gd         }t          |                     d	¦  «        ¦  «                             ¦   «         dk    o)|                     d¦  «        pd                     d¦  «        }|
|rdnd#z  }
t-          d+|rd,nd-› d|› d.|                     d	¦  «        › d/|                     d¦  «        › d0|                     d¦  «        pd                     d¦  «        d         d d1…         › �
¦  «         tO          j(        d#¦  «         �ŒÄt-          d2t/          |¦  «        |
z
  › d3|
› d4�¦  «         d S )5Nz--harié   )ÚtypeÚdefaultz--runÚ
store_true)Úaction)ÚdaysÚ	accountIdrl   ÚstoryÚstatus)ÚpendingÚprocessÚ
processingÚ
scheduleAtÚZz+00:00Úmediasr   Úurlr   ú/éÿÿÿÿÚvideor   u'   story IG SS gambar â†’ video bermusik: c                 ó   — | d         S )Nr   © )Úxs    r   ú<lambda>zmain.<locals>.<lambda>•   s
   € °A°a´D€ r   )Úkeyz%d %b %H:%Mz
  rencana ú é2   u    â†’ rU   u     â�Œ z gagal rakit dari r(   z video tidak 200 di ingressÚ_id)rz   rl   Úaltz PUT gagal: én   ÚdatarY   z  u   âœ…u   âš ï¸�z type=z status=z media=é4   z	selesai: z ok, z janggal))ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsÚdatetimeÚnowÚtimezoneÚutcÚ	timedeltaÚharir   r_   r[   ÚIG_SSrG   ÚlowerÚfromisoformatrF   ÚsplitÚendswithÚappendrI   r   ÚsortedÚ
astimezoneÚWIBÚstrftimer*   r   rS   ÚdateÚIMG_BASEri   Úupdate_scheduleÚ	ExceptionÚget_scheduleÚ
isinstanceÚdictÚtimeÚsleep)ÚapÚar�   Úbatasr\   ÚtargetÚdÚatr1   ÚnamaÚgagalÚlabelÚvidrz   ÚeÚvÚmmrg   s                     r   Úmainrµ   y   sš  € Ý	Ô	 Ñ	"Ô	"€BØ‡O‚O�H¥3°€OÑ3Ô3Ð3Ø‡O‚O�G L€OÑ1Ô1Ð1Ø
�Š‰Œ€Aå
Ô
×
Ò
¥Ô 1Ô 5Ñ
6Ô
6€CØ•(Ô$¨!¬&Ð1Ñ1Ô1Ñ1€EÝ‰Œ€AØ€FÝ˜!‰_Œ_ð %ñ %ˆØ�5Š5�ÑÔ¥Ò&Ð&ØÝˆq�uŠu�V‰}Œ}ÑÔ×#Ò#Ñ%Ô%¨Ò0Ð0ØÝˆq�uŠu�X‰ŒÑÔ×%Ò%Ñ'Ô'Ð/SÐSÐSØÝÔ×,Ò,­S°·²°|Ñ1DÔ1DÑ-EÔ-E×-MÒ-MÈcÐS[Ñ-\Ô-\Ñ]Ô]ˆØ�rÐ"Ð"Ò"Ð"˜UÒ"Ð"Ð"Ð"ØØ�UŠU�8‰_Œ_Ð$   aÔ(ˆØ—’�e‘”Ð" ×)Ò)¨#Ñ.Ô.¨rÔ2ˆÝˆq�uŠu�V‰}Œ}ÑÔ×#Ò#Ñ%Ô%¨Ò0Ð0°D·M²MÀ&Ñ4IÔ4IÐ0ÙØ�Š�r˜1˜d�mÑ$Ô$Ð$Ñ$å	Ð
AµC¸±K´KÐ
AÐ
AÑBÔBÐBØ€EÝ˜f¨.¨.Ð9Ñ9Ô9ð ñ ‰ˆˆAˆtØ—’�cÑ"Ô"×+Ò+¨MÑ:Ô:ˆØŒuð 	ÝÐN˜uÐNÐN t¨C¨R¨C¤yÐNÐNµzÀ$Ñ7GÔ7GÈÈÈÔ7LÐNÐNÑOÔOÐOØÝ˜$ §¢¡	¤	Ñ*Ô*ˆØð 	ÝÐ:˜5Ð:Ð:°DÐ:Ð:Ñ;Ô;Ð;Ø�Q‰JˆEØÝ˜‰nˆÝ˜3ÑÔð 	ÝÐ=˜5Ð=Ð=Ð=Ñ>Ô>Ð>Ø�Q‰JˆEØð	Ø×Ò˜a œh¨¸CÈÐY\Ð4]Ð4]Ð3^Ð(_Ñ`Ô`Ð`Ð`øÝð 	ð 	ð 	ÝÐ<˜5Ð<Ð<­c°!©f¬f°T°c°T¬lÐ<Ð<Ñ=Ô=Ð=Ø�Q‰JˆEØˆHˆHˆH‰Høøøøð	øøøð �NŠN˜1˜Uœ8Ñ$Ô$ˆØ�EŠE�&‰MŒMÐ˜QˆÝ�a�ÑÔð 	 6¨Q ; ;Ø�&”	˜!”ˆAØ�uŠu�X‰ŒÐ& 2 $¨Ô*ˆÝ�—’˜‘”Ñ Ô ×&Ò&Ñ(Ô(¨GÒ3Ð^¸¿ºÀ¹¼Ð9LÈ"×8VÒ8VÐW]Ñ8^Ô8^ˆØ�b���˜aÑˆÝð C˜BÐ,�5�5 Hð Cð C¨uð Cð C¸A¿EºEÀ&¹M¼Mð Cð CÐST×SXÒSXÐYaÑSbÔSbð Cð CØŸš˜u™œÐ+¨×2Ò2°3Ñ7Ô7¸Ô;¸C¸R¸CÔ@ðCð Cñ 	Dô 	Dð 	DåŒ
�1‰Œˆ‰Ý	Ð
?•c˜&‘k”k EÑ)Ð
?Ð
?°Ð
?Ð
?Ð
?Ñ@Ô@Ð@Ð@Ð@s   Î#N,Î,
O0Î6/O+Ï+O0Ú__main__)F)!Ú__doc__rŠ   r�   r	   r   r)   Úsysr¦   ÚWSr
   ÚinsertÚrepliz_clientr   r•   r   rA   r   r    rc   r‘   r“   r�   rE   rD   r   r   r   r2   rS   r_   ri   rµ   Ú__name__r   r   r   ú<module>r½      s—  ððð ð €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø €€€à6€Ø „‡‚��2Ñ Ô Ð Ø $Ð $Ð $Ð $Ð $Ð $à"€Ø
Œ'�,Š,�r˜>Ñ
*Ô
*€Ø
Œ�Š�R˜Ñ!Ô!€ØA€ØÐ-Ð
.€Ø€hÔÐ*˜Ô*°Ð3Ñ3Ô3Ñ4Ô4€Ø	€Ø
€ð5ð 5ð 5€ð@ð @ð @ð'ð 'ð 'ð
/ð /ð /ð#ð #ð #ð #ðLð ð ðð ð ð;Að ;Að ;Að| ˆzÒÐØ€D�F„F€F€F€Fð Ðr   