<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Farhan Munir</title>
    <description>The latest articles on DEV Community by Farhan Munir (@munirfarhan).</description>
    <link>https://dev.to/munirfarhan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3833974%2Fd6f31945-fbf3-430a-aca8-9937f9230037.jpg</url>
      <title>DEV Community: Farhan Munir</title>
      <link>https://dev.to/munirfarhan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/munirfarhan"/>
    <language>en</language>
    <item>
      <title>Reel-Quick: Robustness revisited</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Tue, 18 Aug 2026 16:11:03 +0000</pubDate>
      <link>https://dev.to/munirfarhan/reel-quick-robustness-revisited-4h5m</link>
      <guid>https://dev.to/munirfarhan/reel-quick-robustness-revisited-4h5m</guid>
      <description>&lt;p&gt;Building video tools is never just about generating an output file. The real work starts when users hit the messy parts of production:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a render fails after several minutes&lt;/li&gt;
&lt;li&gt;the UI forces them to rebuild everything from scratch&lt;/li&gt;
&lt;li&gt;an overlay flow becomes one-way instead of editable&lt;/li&gt;
&lt;li&gt;previews do not respond to timing changes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is exactly what we worked through in &lt;strong&gt;Reel Quick&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of treating these as isolated bugs, we tightened the workflow end to end so the app behaves more like a real production tool and less like a brittle demo.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Fixed
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Stabilized video rendering
&lt;/h3&gt;

&lt;p&gt;One of the biggest failures came from transition rendering. Some clips were being prepared at different dimensions, which caused FFmpeg transition stitching to fail.&lt;/p&gt;

&lt;p&gt;We fixed that by normalizing clip output dimensions before the transition step. That removed a whole class of render failures where jobs would spend minutes processing only to die at the final merge.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Added retry for failed videos
&lt;/h3&gt;

&lt;p&gt;This was the biggest workflow problem.&lt;/p&gt;

&lt;p&gt;Previously, a failed render meant the user had to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reimport files&lt;/li&gt;
&lt;li&gt;recreate segments&lt;/li&gt;
&lt;li&gt;rebuild the same video setup again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is unacceptable for a creator workflow.&lt;/p&gt;

&lt;p&gt;We changed the backend so failed videos can be retried using the already stored video metadata and saved clip segments. The system now reuses the existing record instead of forcing a full rebuild.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Made retry visible in the UI
&lt;/h3&gt;

&lt;p&gt;Backend retry alone is not enough if the user cannot discover it.&lt;/p&gt;

&lt;p&gt;We added a retry action directly on the videos page so a failed video can be re-queued from the same row where the failure is shown. That keeps recovery close to the failure point, which is where it belongs.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Fixed a retry response bug
&lt;/h3&gt;

&lt;p&gt;During the retry work, the backend was correctly queueing jobs but returning a broken response because of non-serialized datetime values.&lt;/p&gt;

&lt;p&gt;That meant the render could still start, but the frontend would see an error.&lt;/p&gt;

&lt;p&gt;We fixed the response serialization so the API now reflects the actual outcome correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Reopened the text overlay workflow
&lt;/h3&gt;

&lt;p&gt;The text overlay flow was too final.&lt;/p&gt;

&lt;p&gt;If an overlay had already been created, the videos page effectively treated it as done. We changed that so users can re-enter the overlay editor for the same video instead of being blocked by a finished state.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Loaded saved overlays back into the editor
&lt;/h3&gt;

&lt;p&gt;Reopening the editor is only useful if the saved work comes back with it.&lt;/p&gt;

&lt;p&gt;We added support for loading previously saved overlay definitions, which means reopening a video now restores its overlay setup instead of starting from an empty screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Let users edit existing overlays
&lt;/h3&gt;

&lt;p&gt;Before this round of fixes, the text overlay page allowed deletion, but not actual editing of an existing item.&lt;/p&gt;

&lt;p&gt;That forced a delete-and-recreate workflow, which is slow and frustrating.&lt;/p&gt;

&lt;p&gt;Now each overlay can be reopened in edit mode, updated in place, and saved back into the list.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Synced the video preview with overlay timing
&lt;/h3&gt;

&lt;p&gt;This was a small UX issue with a big impact.&lt;/p&gt;

&lt;p&gt;When choosing the start time for a text overlay, the preview video did not move with the selected timestamp. That made timing adjustments needlessly clumsy.&lt;/p&gt;

&lt;p&gt;We changed the editor so the preview seeks as the user selects the overlay start time. That makes timing decisions much faster and much more intuitive.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Sorted overlays by start time
&lt;/h3&gt;

&lt;p&gt;Overlay lists get messy quickly if they appear in creation order instead of timeline order.&lt;/p&gt;

&lt;p&gt;We updated the page so overlays are shown in start-time order and stay sorted after loading, editing, and adding new items. That makes the list easier to scan and much easier to trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why These Fixes Matter
&lt;/h2&gt;

&lt;p&gt;None of these changes are flashy on their own.&lt;/p&gt;

&lt;p&gt;But together they shift the app from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"something works if everything goes right"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"the workflow stays usable when real things go wrong"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That difference matters a lot in any video pipeline.&lt;/p&gt;

&lt;p&gt;Users do not judge a product only by the happy path. They judge it by what happens after a failure, after a revision request, and after they need to change something they already created.&lt;/p&gt;

&lt;p&gt;That was the focus of this work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Like Most About This Iteration
&lt;/h2&gt;

&lt;p&gt;The biggest improvement is not just that rendering got more stable.&lt;/p&gt;

&lt;p&gt;It is that the workflow became &lt;strong&gt;recoverable&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;failed videos can be retried&lt;/li&gt;
&lt;li&gt;overlays can be reopened&lt;/li&gt;
&lt;li&gt;existing overlay items can be edited&lt;/li&gt;
&lt;li&gt;preview timing is now interactive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the kind of engineering work that makes tools feel serious.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try Reel Quick
&lt;/h2&gt;

&lt;p&gt;If you want to explore the project or follow along with future improvements, check out the repo here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you like the direction of the project, please &lt;strong&gt;star the repo&lt;/strong&gt;. It helps a lot.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>python</category>
      <category>fastapi</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Add AI-Powered Trending Audio Recommendations to the Instagram Reel Wizard</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Fri, 07 Aug 2026 05:56:33 +0000</pubDate>
      <link>https://dev.to/munirfarhan/add-ai-powered-trending-audio-recommendations-to-the-instagram-reel-wizard-8i7</link>
      <guid>https://dev.to/munirfarhan/add-ai-powered-trending-audio-recommendations-to-the-instagram-reel-wizard-8i7</guid>
      <description>&lt;h1&gt;
  
  
  Add AI-Powered Trending Audio Recommendations to the Instagram Reel Wizard
&lt;/h1&gt;

&lt;p&gt;When you automate Reel creation, video ideas and stock footage are only part of the workflow. Audio is usually what turns a plain clip sequence into something that actually feels native to Instagram. That was the gap this issue was solving.&lt;/p&gt;

&lt;p&gt;In Reel Quick, the wizard could already research content ideas and supporting visuals, but creators still had to leave the flow, open Instagram manually, and hunt for trending audio on their own. That breaks momentum. It also creates a mismatch between an AI-generated Reel concept and the music or original audio that gives the Reel its final shape.&lt;/p&gt;

&lt;p&gt;This issue adds a dedicated Step 3 that researches trending Instagram audio for a niche and research period, then returns a structured JSON payload with ranked recommendations, evidence, and relevance scoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Before this change, the wizard could help a creator answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What should I post?&lt;/li&gt;
&lt;li&gt;What trend should I build around?&lt;/li&gt;
&lt;li&gt;What visual direction should I use?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But it could not answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What audio should I search for inside Instagram when I publish the Reel?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That missing step matters because audio on Instagram is not interchangeable. A Reel about comeback stories, gym progress, or business motivation usually performs differently depending on whether the selected audio matches what creators are already using in that niche.&lt;/p&gt;

&lt;p&gt;So the problem was not "find any song." The problem was "find currently trending Instagram audio that is relevant to a specific niche and backed by public evidence."&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Step Solves
&lt;/h2&gt;

&lt;p&gt;The new Step 3 audio search does four things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Accepts a niche, start date, end date, and result limit.&lt;/li&gt;
&lt;li&gt;Uses AI plus web research to find trending Instagram audio during that period.&lt;/li&gt;
&lt;li&gt;Returns ranked recommendations with citations and relevance scoring.&lt;/li&gt;
&lt;li&gt;Gives creators enough metadata to search the audio directly inside Instagram.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That makes the wizard useful later in the workflow, not just at the ideation stage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why The System Does Not Download Audio
&lt;/h2&gt;

&lt;p&gt;This is the most important implementation constraint.&lt;/p&gt;

&lt;p&gt;Instagram does not provide an API that lets us reliably fetch Reel audio files or public downloadable audio links for trending sounds. Even when a public Instagram audio page exists, that does not mean there is a supported downloadable media URL exposed for app developers.&lt;/p&gt;

&lt;p&gt;There are also product and compliance reasons not to do this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instagram audio is platform-controlled content.&lt;/li&gt;
&lt;li&gt;Licensing terms vary by region, creator, and audio source.&lt;/li&gt;
&lt;li&gt;Public Reel/audio pages are not a supported contract for direct media ingestion into third-party apps.&lt;/li&gt;
&lt;li&gt;The goal of this feature is recommendation, not redistribution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the feature deliberately stops at recommendation.&lt;/p&gt;

&lt;p&gt;The app can tell the creator:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which audio is trending&lt;/li&gt;
&lt;li&gt;why it fits the niche&lt;/li&gt;
&lt;li&gt;where the evidence came from&lt;/li&gt;
&lt;li&gt;what type of Reel it is good for&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the creator still needs to open Instagram, search for the recommended audio, and attach it while creating the Reel in the Instagram app.&lt;/p&gt;

&lt;p&gt;That design is intentional. It keeps the workflow realistic and aligned with how Instagram actually exposes audio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Approach
&lt;/h2&gt;

&lt;p&gt;The Step 3 backend now uses a prompt-driven research flow that asks the model to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;search within a specific historical window&lt;/li&gt;
&lt;li&gt;avoid fabricated songs, artists, dates, URLs, and citations&lt;/li&gt;
&lt;li&gt;prefer multiple independent sources&lt;/li&gt;
&lt;li&gt;return strict JSON&lt;/li&gt;
&lt;li&gt;explain why each audio recommendation fits the niche&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend validates the model response and stores a normalized structure shaped like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;wizard_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;query&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;input_values&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;audio&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;audio.results&lt;/code&gt; array contains the recommendations, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;rank&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;audio_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;artist_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;audio_type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;relevance_score&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;trend_confidence_score&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;best_for&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;why_selected&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;evidence&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives the frontend a clean contract for rendering audio suggestions without having to parse free-form text.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example Output JSON
&lt;/h2&gt;

&lt;p&gt;The following is the sample output saved in &lt;code&gt;docs/wizard_step_3.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6a754df164ad86c595f2c3e5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"wizard_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6a6634287bef448b20420ad5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"niche"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"motivation videos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"research_period"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"start_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-01"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"end_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-20"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"maximum_results"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"completed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"research_result_json"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"wizard_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6a6634287bef448b20420ad5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"niche"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"motivation videos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"start_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-01"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"end_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-20"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"maximum_results"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"input_values"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"niche"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"motivation videos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"start_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-01"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"end_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-20"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"audio"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"niche"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"motivation videos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"research_period"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"start_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-01"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"end_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-20"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"generated_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-08-07T03:16:09Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"results"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Resiliencia"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Rantseni"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"song"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;97&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;88&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"how-it-started versus how-it-is-going transformations"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"discipline, recovery, and personal-growth montages"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"A July 2026 Instagram trend archive directly identifies this audio with motivational progress builds. Its resilience theme closely matches transformation, persistence, comeback, and self-improvement Reels."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lists Resiliencia by Rantseni in the July archive and associates it with motivational how-it-started versus how-it-is-going builds."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/722903805204295/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page linked by the trend report for the identified recording."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Goals"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"LISA, Anitta &amp;amp; Rema"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"song"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;93&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;86&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"ambition and goal-setting montages"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"career, fitness, and achievement highlights"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The June trend archive explicitly connects this World Cup audio with ambition montages. Its energetic theme supports goal announcements, training sequences, milestone recaps, and achievement-focused motivational edits."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Includes Goals in its June 2026 archive and describes its Reel format as ambition montages and a dance challenge."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/1460390505443280/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page for the track cited in the June trend archive."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Wings (Sped Up)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Birdy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"remix"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;84&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"graduation and milestone slideshows"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"personal progress and new-chapter Reels"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"This sped-up version was documented as a June trend for graduation and milestone slideshows, making it especially suitable for motivational stories about progress, growth, accomplishment, and entering a new life chapter."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lists Wings (Sped Up) by Birdy among June trends for graduation and milestone slideshow formats."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/500331368617006/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page linked for the sped-up recording."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Freakin’ Out"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Dexter and The Moonrocks"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"song"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;88&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;82&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"identity and self-belief montages"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"confidence-restoration and comeback edits"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The documented “remember who you are” format strongly aligns with self-belief and identity-based motivation. It can frame setbacks, rediscovering confidence, personal values, and comeback stories."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Records Freakin’ Out in the June archive as the audio for a remember-who-you-are identity montage."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/1392969992841787/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page for the recording referenced by the trend report."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ignoring Calls"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"thehairgrowthguru_"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"original_audio"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;86&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"focus-mode and productivity routines"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"discipline and distraction-free work Reels"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"This creator audio was specifically associated with focus-mode and productivity content. That makes it directly useful for discipline, deep-work, study, business-building, and avoiding-distraction motivational Reels."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lists Ignoring Calls by thehairgrowthguru_ in the June archive for focus-mode and productivity content."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/34291922853755802/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram page for the creator-uploaded original audio."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PRESSURE!"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Nyck Caution"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"song"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;78&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"fitness personal-record attempts"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"high-pressure training and competition edits"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The July archive identifies this audio with sports hype, game-day countdowns, and fitness personal records. Its intensity suits pushing limits, preparation, competition, and performance-focused motivation."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Associates PRESSURE! with sports hype, game-day countdowns, and fitness personal-record clips in July 2026."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/377868818218171/nyck-caution-pressure/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page identifying the track and artist."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Game Time"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Future &amp;amp; Tyla"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"song"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;81&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;77&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"gym and athletic training montages"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"competition-day and performance motivation"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Documented during June as a World Cup-related trend used for sports hype and gym montages. It is suitable for energetic workout edits, competition preparation, team motivation, and achievement sequences."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lists Game Time in the June archive for sports hype, gym, and travel montages."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/1467234368070031/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page linked for Game Time."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Buffer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"article"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-30"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://buffer.com/resources/trending-audio-instagram/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Identifies Game Time as trending on Instagram and notes use in sports edits and gym content."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DNA (More Than a Game)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Andrea Bocelli, David Guetta, Megan Thee Stallion &amp;amp; EJAE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"song"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;78&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;74&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"purpose and personal-mission storytelling"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"team identity and legacy montages"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The June trend archive links this anthem to identity and purpose storytelling. It fits motivational narratives about personal mission, belonging, teamwork, values, legacy, and striving for something larger than oneself."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lists DNA (More Than a Game) in the June archive for brand identity and purpose storytelling."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/2232168290889562/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page for the recording cited in the archive."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Respect"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Aretha Franklin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"song"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;73&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;72&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"confidence and self-worth statements"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"business, skill, or transformation flexes"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The July trend format centers on confidently showing what a creator or business can deliver. Although broader than motivation, it works for assertive self-worth messages, success reveals, capability demonstrations, and confidence-building edits."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lists Respect in July for confident product or service flex content using the recognizable lyric format."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/515371218997711/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page linked for the Aretha Franklin recording."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"rank"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SPEND DAT SAX"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"artist_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Corey Staggers"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"audio_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instrumental"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"trend_confidence_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;70&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"best_for"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"process-to-result transformation videos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"skill-building and completed-project reveals"&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"why_selected"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The June archive associates this audio with process-to-result Reels. That format adapts well to motivational transformations showing practice, discipline, consistent work, and the final outcome."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SocialPilot"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"trend_report"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-27"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.socialpilot.co/blog/instagram-reels-trends"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Includes SPEND DAT SAX by Corey Staggers in the June archive for process-to-result brand Reels."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Instagram"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"source_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"instagram_audio_page"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"published_or_updated_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://www.instagram.com/reels/audio/27043767605285229/"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"supports"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Direct Instagram audio page linked for the identified recording."&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"limitations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"Limited availability of niche-specific trend reports for the exact research period."&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"debug_raw_response"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"debug_validation_errors"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"created_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-08-07 03:16:01"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"updated_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-08-07 03:16:09"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"completed_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-08-07 03:16:09"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"failed_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Final UX Constraint
&lt;/h2&gt;

&lt;p&gt;This feature helps the user get to the right audio faster, but it does not and should not pretend to finish the last mile automatically.&lt;/p&gt;

&lt;p&gt;The final workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use the wizard to generate the Reel concept and audio recommendations.&lt;/li&gt;
&lt;li&gt;Create or render the video in this app.&lt;/li&gt;
&lt;li&gt;Open Instagram.&lt;/li&gt;
&lt;li&gt;Search for the recommended audio by name.&lt;/li&gt;
&lt;li&gt;Add the audio during Reel creation inside the Instagram app.&lt;/li&gt;
&lt;li&gt;Publish.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the realistic boundary of a compliant integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/ronin1770/instagram-reel-creation" rel="noopener noreferrer"&gt;https://github.com/ronin1770/instagram-reel-creation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Issue description: &lt;a href="https://github.com/ronin1770/reel-quick/issues/19" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/19&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>python</category>
      <category>instagram</category>
    </item>
    <item>
      <title>Reel-Quick | Building a Wizard for Faster Content Creation</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Thu, 06 Aug 2026 04:21:49 +0000</pubDate>
      <link>https://dev.to/munirfarhan/reel-quick-building-a-wizard-for-faster-content-creation-2185</link>
      <guid>https://dev.to/munirfarhan/reel-quick-building-a-wizard-for-faster-content-creation-2185</guid>
      <description>&lt;h1&gt;
  
  
  Building a Wizard for Faster Content Creation
&lt;/h1&gt;

&lt;p&gt;As a content creator, I realized I was spending far more time researching viral topics, searching for stock videos, and organizing ideas than actually creating content. To solve that problem, I built a wizard that streamlines the entire workflow—from discovering trending themes and researching ideas to finding royalty-free videos and organizing assets for production. The goal is simple: reduce repetitive work so creators can spend more time making engaging videos and less time switching between tools.&lt;/p&gt;

&lt;p&gt;⭐ &lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love your feedback! If you find the project useful, please consider giving it a ⭐ on GitHub.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>automation</category>
      <category>ai</category>
    </item>
    <item>
      <title>Adding Idempotency to OTLP Metrics Exports in Heka Insights Agent</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Sat, 01 Aug 2026 17:07:59 +0000</pubDate>
      <link>https://dev.to/munirfarhan/adding-idempotency-to-otlp-metrics-exports-in-heka-insights-agent-50ea</link>
      <guid>https://dev.to/munirfarhan/adding-idempotency-to-otlp-metrics-exports-in-heka-insights-agent-50ea</guid>
      <description>&lt;p&gt;When metrics exporters retry failed requests, they can accidentally create a subtle but serious problem: duplicate ingestion.&lt;/p&gt;

&lt;p&gt;That was the motivation behind &lt;a href="https://github.com/ronin1770/heka-insights-agent/issues/25" rel="noopener noreferrer"&gt;issue #25&lt;/a&gt; in the &lt;a href="https://github.com/ronin1770/heka-insights-agent" rel="noopener noreferrer"&gt;Heka Insights Agent repository&lt;/a&gt;. We needed the OTLP metrics exporter to include an &lt;code&gt;X-Idempotency-Key&lt;/code&gt; header on every metrics batch sent to &lt;code&gt;/v1/metrics&lt;/code&gt;, and we needed that key to stay stable across retries of the exact same batch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why We Needed This
&lt;/h2&gt;

&lt;p&gt;In distributed systems, “request failed” does not always mean “request was not processed.”&lt;/p&gt;

&lt;p&gt;A metrics export can fail because of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a timeout&lt;/li&gt;
&lt;li&gt;a transient connection failure&lt;/li&gt;
&lt;li&gt;a TLS/network interruption&lt;/li&gt;
&lt;li&gt;a retryable upstream response such as &lt;code&gt;429&lt;/code&gt; or &lt;code&gt;5xx&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In those cases, the agent may retry the same batch. Without a batch-scoped idempotency key, the ingestion gateway has no safe way to distinguish:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a legitimate retry of the same batch&lt;/li&gt;
&lt;li&gt;a brand new metrics batch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gap can lead to duplicate ingestion, inflated metric counts, and reduced trust in the telemetry pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Implemented
&lt;/h2&gt;

&lt;p&gt;We added support for a required HTTP header on OTLP metrics exports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;X-Idempotency-Key: &amp;lt;uuid&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The behavior is simple and strict:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one UUID is generated per metrics batch&lt;/li&gt;
&lt;li&gt;the same UUID is reused for every retry of that batch&lt;/li&gt;
&lt;li&gt;a new batch gets a new UUID&lt;/li&gt;
&lt;li&gt;the key is never rotated between retry attempts&lt;/li&gt;
&lt;li&gt;if key generation fails, the export fails immediately instead of silently omitting the header&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This change applies only to OTLP metrics export.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Is Useful
&lt;/h2&gt;

&lt;p&gt;The main advantage is safe deduplication at the ingestion boundary.&lt;/p&gt;

&lt;p&gt;When the gateway receives the same agent-scoped batch more than once, it can use the idempotency key to recognize that the requests are duplicates of the same export attempt rather than separate metric events.&lt;/p&gt;

&lt;p&gt;That gives us several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fewer duplicate metrics during transient failures&lt;/li&gt;
&lt;li&gt;cleaner retry behavior without changing metric payloads&lt;/li&gt;
&lt;li&gt;more predictable ingestion semantics&lt;/li&gt;
&lt;li&gt;better alignment between exporter retries and backend processing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is especially important when the client cannot know whether the server processed a request before the network failed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Improves Robustness
&lt;/h2&gt;

&lt;p&gt;Robustness is not only about retrying. It is also about retrying safely.&lt;/p&gt;

&lt;p&gt;Before idempotency support, retries improved delivery but increased the chance of double-ingesting the same batch. After this change, retries remain available, but they are now safer because the exporter preserves batch identity across attempts.&lt;/p&gt;

&lt;p&gt;In practice, the lifecycle now looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Batch A is created.&lt;/li&gt;
&lt;li&gt;The agent generates a UUID for Batch A.&lt;/li&gt;
&lt;li&gt;Attempt 1 fails.&lt;/li&gt;
&lt;li&gt;Attempt 2 retries with the same UUID.&lt;/li&gt;
&lt;li&gt;Attempt 3 retries with the same UUID.&lt;/li&gt;
&lt;li&gt;Batch B is created later with a different UUID.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That stability is what makes retry behavior robust instead of merely persistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logging Considerations
&lt;/h2&gt;

&lt;p&gt;We also made logging safer.&lt;/p&gt;

&lt;p&gt;The exporter may log that an idempotency key was used, but it does not log the full raw value. Instead, it uses a masked format such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;550e...0000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That keeps the logs useful for debugging while avoiding unnecessary exposure of sensitive or correlation-worthy identifiers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for Observability Pipelines
&lt;/h2&gt;

&lt;p&gt;Observability systems often operate under high frequency, high volume, and partial network failure. In that environment, small protocol details matter.&lt;/p&gt;

&lt;p&gt;Adding idempotency to metrics export improves the reliability of the pipeline without changing the exported metric model itself. It is a focused change, but it strengthens a critical boundary between the agent and the ingestion service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Repository: &lt;a href="https://github.com/ronin1770/heka-insights-agent" rel="noopener noreferrer"&gt;ronin1770/heka-insights-agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Issue: &lt;a href="https://github.com/ronin1770/heka-insights-agent/issues/25" rel="noopener noreferrer"&gt;Implement X-Idempotency-Key Support in the Heka Insights Agent&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;Retries are necessary in real systems, but retries without idempotency can trade one failure mode for another.&lt;/p&gt;

&lt;p&gt;By adding &lt;code&gt;X-Idempotency-Key&lt;/code&gt; support to the Heka Insights Agent OTLP metrics exporter, we made metrics delivery more resilient, ingestion safer, and the overall export path more trustworthy.&lt;/p&gt;

</description>
      <category>python</category>
      <category>observability</category>
      <category>opentelemetry</category>
      <category>backend</category>
    </item>
    <item>
      <title>Building an AI-Powered Stock Video Discovery Workflow for Instagram Reel Creation</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Thu, 30 Jul 2026 04:00:00 +0000</pubDate>
      <link>https://dev.to/munirfarhan/building-an-ai-powered-stock-video-discovery-workflow-for-instagram-reel-creation-50na</link>
      <guid>https://dev.to/munirfarhan/building-an-ai-powered-stock-video-discovery-workflow-for-instagram-reel-creation-50na</guid>
      <description>&lt;p&gt;One of the biggest bottlenecks in short-form video creation isn't writing the script or generating ideas—it's finding the right footage.&lt;/p&gt;

&lt;p&gt;After generating an engaging Reel concept, creators often spend more time searching for suitable B-roll than they do editing the final video.&lt;/p&gt;

&lt;p&gt;To solve this problem, I added a new AI-powered media discovery step to &lt;strong&gt;Reel-Quick&lt;/strong&gt;, allowing the application to automatically locate relevant royalty-free or open-license stock videos based on the generated Reel concept.&lt;/p&gt;

&lt;p&gt;Repository&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Implementation Issue&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick/issues/18" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/18&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Problem
&lt;/h1&gt;

&lt;p&gt;The existing Reel Wizard already produces high-quality creative outputs including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reel ideas&lt;/li&gt;
&lt;li&gt;Trending concepts&lt;/li&gt;
&lt;li&gt;Video titles&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;li&gt;Core messages&lt;/li&gt;
&lt;li&gt;Visual recommendations&lt;/li&gt;
&lt;li&gt;Story structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, once the concept was generated, users still had to manually search for footage.&lt;/p&gt;

&lt;p&gt;The workflow looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Idea Generated
       │
       ▼
Open Pexels
       │
       ▼
Search
       │
       ▼
Open Pixabay
       │
       ▼
Search Again
       │
       ▼
Open Mixkit
       │
       ▼
Search Again
       │
       ▼
Repeat Until Enough Clips Are Found
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This process introduced several problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;disconnected user experience&lt;/li&gt;
&lt;li&gt;inconsistent search quality&lt;/li&gt;
&lt;li&gt;duplicated work&lt;/li&gt;
&lt;li&gt;forgotten licensing requirements&lt;/li&gt;
&lt;li&gt;broken URLs&lt;/li&gt;
&lt;li&gt;footage that didn't match the intended emotional tone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application generated the creative direction but stopped short of helping users assemble the actual Reel.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Goal
&lt;/h1&gt;

&lt;p&gt;Instead of making users perform multiple manual searches, the wizard should continue the workflow automatically.&lt;/p&gt;

&lt;p&gt;Once a Reel concept has been approved, the application should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;understand the intended story&lt;/li&gt;
&lt;li&gt;identify the required visual scenes&lt;/li&gt;
&lt;li&gt;generate effective search phrases&lt;/li&gt;
&lt;li&gt;locate matching royalty-free footage&lt;/li&gt;
&lt;li&gt;return structured results for later workflow stages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is a much smoother creator experience.&lt;/p&gt;




&lt;h1&gt;
  
  
  Reusing Existing AI Infrastructure
&lt;/h1&gt;

&lt;p&gt;Rather than introducing another AI provider or search service, the implementation builds on the existing AI Engine already used throughout Reel-Quick.&lt;/p&gt;

&lt;p&gt;The backend generates a prompt containing the information collected during previous wizard steps.&lt;/p&gt;

&lt;p&gt;Typical inputs include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;niche&lt;/li&gt;
&lt;li&gt;trend name&lt;/li&gt;
&lt;li&gt;Reel title&lt;/li&gt;
&lt;li&gt;video concept&lt;/li&gt;
&lt;li&gt;core message&lt;/li&gt;
&lt;li&gt;emotional tone&lt;/li&gt;
&lt;li&gt;visual style&lt;/li&gt;
&lt;li&gt;B-roll requirements&lt;/li&gt;
&lt;li&gt;language&lt;/li&gt;
&lt;li&gt;platform&lt;/li&gt;
&lt;li&gt;orientation&lt;/li&gt;
&lt;li&gt;maximum results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of asking users to invent search terms themselves, GPT performs that reasoning.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI Prompt Responsibilities
&lt;/h1&gt;

&lt;p&gt;The prompt instructs GPT to behave as a media research assistant.&lt;/p&gt;

&lt;p&gt;Its responsibilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;understand the narrative&lt;/li&gt;
&lt;li&gt;identify visual themes&lt;/li&gt;
&lt;li&gt;generate search phrases&lt;/li&gt;
&lt;li&gt;search only trusted royalty-free libraries&lt;/li&gt;
&lt;li&gt;avoid fabricated information&lt;/li&gt;
&lt;li&gt;verify licensing whenever possible&lt;/li&gt;
&lt;li&gt;return structured JSON&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This moves the intelligence from the user into the application.&lt;/p&gt;




&lt;h1&gt;
  
  
  Supported Video Sources
&lt;/h1&gt;

&lt;p&gt;The implementation focuses on well-known media libraries commonly used by content creators.&lt;/p&gt;

&lt;p&gt;Current supported sources include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pexels&lt;/li&gt;
&lt;li&gt;Pixabay&lt;/li&gt;
&lt;li&gt;Mixkit&lt;/li&gt;
&lt;li&gt;Coverr&lt;/li&gt;
&lt;li&gt;Videvo&lt;/li&gt;
&lt;li&gt;Wikimedia Commons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These platforms provide a large collection of reusable stock footage suitable for social media production.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Structured JSON Matters
&lt;/h1&gt;

&lt;p&gt;Instead of returning free-form text, the AI produces validated JSON.&lt;/p&gt;

&lt;p&gt;A simplified structure looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"wizard_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"search_terms"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"videos"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"warnings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each video contains structured metadata such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;title&lt;/li&gt;
&lt;li&gt;source&lt;/li&gt;
&lt;li&gt;page URL&lt;/li&gt;
&lt;li&gt;creator&lt;/li&gt;
&lt;li&gt;duration&lt;/li&gt;
&lt;li&gt;orientation&lt;/li&gt;
&lt;li&gt;visual tags&lt;/li&gt;
&lt;li&gt;recommended usage&lt;/li&gt;
&lt;li&gt;licensing information&lt;/li&gt;
&lt;li&gt;relevance score&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This allows the frontend to display results immediately while giving later wizard steps machine-readable data.&lt;/p&gt;




&lt;h1&gt;
  
  
  Built-in Safety Checks
&lt;/h1&gt;

&lt;p&gt;One challenge with AI-generated search results is preventing hallucinations.&lt;/p&gt;

&lt;p&gt;The prompt explicitly tells GPT to never invent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;URLs&lt;/li&gt;
&lt;li&gt;creators&lt;/li&gt;
&lt;li&gt;filenames&lt;/li&gt;
&lt;li&gt;licenses&lt;/li&gt;
&lt;li&gt;attribution requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If license verification cannot be confirmed, the response marks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;license_verified&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;instead of guessing.&lt;/p&gt;

&lt;p&gt;This creates a much more reliable workflow for commercial content creators.&lt;/p&gt;




&lt;h1&gt;
  
  
  Backend Validation
&lt;/h1&gt;

&lt;p&gt;Even with structured AI responses, validation is still essential.&lt;/p&gt;

&lt;p&gt;The backend validates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;maximum of 10 results&lt;/li&gt;
&lt;li&gt;valid URLs&lt;/li&gt;
&lt;li&gt;duplicate URLs&lt;/li&gt;
&lt;li&gt;duplicate identifiers&lt;/li&gt;
&lt;li&gt;supported orientations&lt;/li&gt;
&lt;li&gt;required fields&lt;/li&gt;
&lt;li&gt;relevance score range&lt;/li&gt;
&lt;li&gt;Boolean license properties&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Invalid responses never proceed directly into the workflow.&lt;/p&gt;




&lt;h1&gt;
  
  
  Workflow
&lt;/h1&gt;

&lt;p&gt;The complete pipeline now looks like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Selects Reel
        │
        ▼
Load Visual Requirements
        │
        ▼
Generate AI Prompt
        │
        ▼
Existing AI Engine
        │
        ▼
GPT Media Search
        │
        ▼
JSON Validation
        │
        ▼
License Verification
        │
        ▼
Save Results
        │
        ▼
Display Video Options
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This transforms media discovery from a manual activity into an automated workflow stage.&lt;/p&gt;




&lt;h1&gt;
  
  
  Tracking Research Status
&lt;/h1&gt;

&lt;p&gt;Each search request maintains its own lifecycle.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="s"&gt;pending&lt;/span&gt;
&lt;span class="s"&gt;processing&lt;/span&gt;
&lt;span class="s"&gt;completed&lt;/span&gt;
&lt;span class="s"&gt;completed_with_warnings&lt;/span&gt;
&lt;span class="s"&gt;failed&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes it easier to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retry failed searches&lt;/li&gt;
&lt;li&gt;debug AI responses&lt;/li&gt;
&lt;li&gt;monitor long-running operations&lt;/li&gt;
&lt;li&gt;expose progress within the UI&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Debug Information
&lt;/h1&gt;

&lt;p&gt;When something goes wrong, developers need more than a generic error.&lt;/p&gt;

&lt;p&gt;The implementation stores useful diagnostic information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;raw AI response&lt;/li&gt;
&lt;li&gt;JSON validation errors&lt;/li&gt;
&lt;li&gt;inaccessible URLs&lt;/li&gt;
&lt;li&gt;duplicate results&lt;/li&gt;
&lt;li&gt;missing license information&lt;/li&gt;
&lt;li&gt;prompt version&lt;/li&gt;
&lt;li&gt;AI model used&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This significantly improves troubleshooting and future prompt refinement.&lt;/p&gt;




&lt;h1&gt;
  
  
  Benefits for Creators
&lt;/h1&gt;

&lt;p&gt;The new workflow offers several advantages.&lt;/p&gt;

&lt;p&gt;Instead of manually searching multiple websites, creators receive a curated list of relevant footage that already matches the intended story.&lt;/p&gt;

&lt;p&gt;Benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;faster content production&lt;/li&gt;
&lt;li&gt;fewer context switches&lt;/li&gt;
&lt;li&gt;better visual consistency&lt;/li&gt;
&lt;li&gt;reduced copyright risk&lt;/li&gt;
&lt;li&gt;reusable search results&lt;/li&gt;
&lt;li&gt;production-ready structured data&lt;/li&gt;
&lt;li&gt;smoother wizard experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, creators can stay focused on storytelling instead of repetitive searching.&lt;/p&gt;




&lt;h1&gt;
  
  
  What's Next?
&lt;/h1&gt;

&lt;p&gt;This implementation lays the foundation for future workflow automation.&lt;/p&gt;

&lt;p&gt;Possible future enhancements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;automatic media import&lt;/li&gt;
&lt;li&gt;one-click download&lt;/li&gt;
&lt;li&gt;scene-to-clip matching&lt;/li&gt;
&lt;li&gt;AI clip ranking&lt;/li&gt;
&lt;li&gt;timeline generation&lt;/li&gt;
&lt;li&gt;automatic Reel assembly&lt;/li&gt;
&lt;li&gt;transition recommendations&lt;/li&gt;
&lt;li&gt;music synchronization&lt;/li&gt;
&lt;li&gt;caption placement&lt;/li&gt;
&lt;li&gt;multi-platform optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term goal is to move from &lt;strong&gt;"idea generation"&lt;/strong&gt; to &lt;strong&gt;fully automated Reel production&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Generative AI is often associated with writing scripts or generating captions, but some of its greatest value comes from orchestrating workflows.&lt;/p&gt;

&lt;p&gt;By teaching the Reel Wizard how to discover relevant, royalty-free footage, we eliminate one of the most repetitive parts of short-form video production.&lt;/p&gt;

&lt;p&gt;Instead of jumping between multiple stock-video websites, creators receive curated, structured, and reusable search results that integrate directly into the rest of the production pipeline.&lt;/p&gt;

&lt;p&gt;This is another step toward making AI not just creative, but genuinely productive.&lt;/p&gt;




&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation Issue
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick/issues/18" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/18&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Build Viral Instagram Reels Faster with the Reel-Quick Content Wizard</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Wed, 29 Jul 2026 14:56:56 +0000</pubDate>
      <link>https://dev.to/munirfarhan/build-viral-instagram-reels-faster-with-the-reel-quick-content-wizard-512h</link>
      <guid>https://dev.to/munirfarhan/build-viral-instagram-reels-faster-with-the-reel-quick-content-wizard-512h</guid>
      <description>&lt;p&gt;Every creator knows the feeling.&lt;/p&gt;

&lt;p&gt;You have a great idea for your next Instagram Reel, but turning that idea into a finished video means opening dozens of browser tabs. You search for stock footage, browse music libraries, look for inspiration, download assets, organize folders, and only then begin editing.&lt;/p&gt;

&lt;p&gt;Creating the Reel often takes less time than researching it.&lt;/p&gt;

&lt;p&gt;That's exactly the problem we're solving in &lt;strong&gt;Reel-Quick&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Content Wizard allows you to search trends, discover royalty-free video clips, find matching audio, and gather everything required to create your next viral Reel.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of manually searching across multiple websites, creators simply describe the Reel they want to create, and the Wizard performs the research for them.&lt;/p&gt;




&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;⭐ Repository&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📌 Implementation Issue&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick/issues/17" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/17&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  The Problem
&lt;/h1&gt;

&lt;p&gt;Creating short-form content has become easier.&lt;/p&gt;

&lt;p&gt;Researching it has not.&lt;/p&gt;

&lt;p&gt;Most creators follow a workflow similar to this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Think of an idea&lt;/li&gt;
&lt;li&gt;Research current trends&lt;/li&gt;
&lt;li&gt;Search stock footage&lt;/li&gt;
&lt;li&gt;Search music&lt;/li&gt;
&lt;li&gt;Search sound effects&lt;/li&gt;
&lt;li&gt;Download assets&lt;/li&gt;
&lt;li&gt;Organize files&lt;/li&gt;
&lt;li&gt;Start editing&lt;/li&gt;
&lt;li&gt;Repeat everything tomorrow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The research phase can easily consume over an hour for every Reel.&lt;/p&gt;

&lt;p&gt;The more content you produce, the more repetitive this process becomes.&lt;/p&gt;




&lt;h1&gt;
  
  
  Introducing the Reel-Quick Content Wizard
&lt;/h1&gt;

&lt;p&gt;The Content Wizard turns this repetitive workflow into a guided AI experience.&lt;/p&gt;

&lt;p&gt;Instead of manually searching multiple websites, the creator simply describes the Reel.&lt;/p&gt;

&lt;p&gt;The Wizard then researches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trending content ideas&lt;/li&gt;
&lt;li&gt;Royalty-free videos&lt;/li&gt;
&lt;li&gt;Matching audio&lt;/li&gt;
&lt;li&gt;Story concepts&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;li&gt;Titles&lt;/li&gt;
&lt;li&gt;Visual styles&lt;/li&gt;
&lt;li&gt;Video structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything needed before editing even begins.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1 — Choose a Trend
&lt;/h1&gt;

&lt;p&gt;The creator first selects a trend discovered by the research engine.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Niche&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Motivation Videos&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trending Topic&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Micro-Motivations&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video Title&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Power of Starting Again&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Concept&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A motivational Reel about rebuilding after failure using sunrise, solitude, training, and comeback visuals.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 2 — AI Research Engine
&lt;/h1&gt;

&lt;p&gt;Instead of performing a simple keyword search, the Wizard first uses AI to research what is currently performing well.&lt;/p&gt;

&lt;p&gt;The research engine analyzes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Platform&lt;/li&gt;
&lt;li&gt;Language&lt;/li&gt;
&lt;li&gt;Date range&lt;/li&gt;
&lt;li&gt;Niche&lt;/li&gt;
&lt;li&gt;Trending topics&lt;/li&gt;
&lt;li&gt;Creator opportunities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An example response looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6a6634287bef448b20420ad5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"niche"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"motivation videos"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"language"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"English"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"platforms_analyzed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Instagram Reels"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"research_period"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"start_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-01"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"end_date"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-07-20"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"completed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"research_result_json"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"wizard_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6a6634287bef448b20420ad5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"trends"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"trend_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Micro-Motivations"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"opportunity_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"summary"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Short, impactful motivational messages that fit into daily routines."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"creator_guidance"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Focus on delivering concise, powerful messages that can be consumed in under 30 seconds."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"example_hooks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Need a quick boost?"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"30 seconds to change your mindset!"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Start your day with this thought."&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"example_titles"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Quick Morning Motivation"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"30-Second Mindset Shift"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Daily Motivation in a Flash"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"recommended_video_structure"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Hook"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Message"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Call to Action"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"suggested_visual_style"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Fast cuts"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Text overlays"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"Bright colors"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual API returns much richer information, including multiple trending opportunities, evidence supporting each trend, creator guidance, video concepts, suggested visual styles, risks, and opportunity scores. :contentReference[oaicite:0]{index=0}&lt;/p&gt;




&lt;h1&gt;
  
  
  Why JSON Instead of Plain Text?
&lt;/h1&gt;

&lt;p&gt;Returning structured JSON makes the Wizard far more powerful than a simple chatbot.&lt;/p&gt;

&lt;p&gt;The same response can power:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recommendation cards&lt;/li&gt;
&lt;li&gt;Trend dashboards&lt;/li&gt;
&lt;li&gt;Search filters&lt;/li&gt;
&lt;li&gt;Automatic storyboard generation&lt;/li&gt;
&lt;li&gt;Prompt generation&lt;/li&gt;
&lt;li&gt;Future AI agents&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of asking AI multiple questions, the application receives everything needed in a predictable format.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 3 — Find Matching Stock Videos
&lt;/h1&gt;

&lt;p&gt;Once a trend has been selected, the Wizard searches multiple royalty-free sources.&lt;/p&gt;

&lt;p&gt;Current supported sources include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pexels&lt;/li&gt;
&lt;li&gt;Pixabay&lt;/li&gt;
&lt;li&gt;Mixkit&lt;/li&gt;
&lt;li&gt;Coverr&lt;/li&gt;
&lt;li&gt;Videvo&lt;/li&gt;
&lt;li&gt;Wikimedia Commons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than performing a basic keyword search, the Wizard understands the entire context of the Reel.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The Power of Starting Again"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;can produce searches such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sunrise runner&lt;/li&gt;
&lt;li&gt;athlete training&lt;/li&gt;
&lt;li&gt;lonely mountain trail&lt;/li&gt;
&lt;li&gt;gym workout&lt;/li&gt;
&lt;li&gt;boxing practice&lt;/li&gt;
&lt;li&gt;meditation&lt;/li&gt;
&lt;li&gt;writing goals&lt;/li&gt;
&lt;li&gt;determination&lt;/li&gt;
&lt;li&gt;comeback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This produces much better visual matches than simply searching for "motivation."&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4 — Find Matching Audio
&lt;/h1&gt;

&lt;p&gt;Great Reels aren't only visual.&lt;/p&gt;

&lt;p&gt;The Wizard also researches suitable audio, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Motivational music&lt;/li&gt;
&lt;li&gt;Cinematic tracks&lt;/li&gt;
&lt;li&gt;Ambient sounds&lt;/li&gt;
&lt;li&gt;Emotional piano&lt;/li&gt;
&lt;li&gt;Inspirational orchestral music&lt;/li&gt;
&lt;li&gt;Trending audio styles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of browsing multiple libraries, creators receive recommendations that match the mood of the Reel.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5 — Organize Everything
&lt;/h1&gt;

&lt;p&gt;Once videos and audio have been discovered, Reel-Quick organizes everything into a single project.&lt;/p&gt;

&lt;p&gt;Assets include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Video clips&lt;/li&gt;
&lt;li&gt;Audio&lt;/li&gt;
&lt;li&gt;Creative notes&lt;/li&gt;
&lt;li&gt;References&lt;/li&gt;
&lt;li&gt;Titles&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;li&gt;Story ideas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No more random download folders.&lt;/p&gt;

&lt;p&gt;Everything stays connected to the Reel.&lt;/p&gt;




&lt;h1&gt;
  
  
  AI-Powered Creative Assistance
&lt;/h1&gt;

&lt;p&gt;The Wizard doesn't replace creativity.&lt;/p&gt;

&lt;p&gt;It accelerates it.&lt;/p&gt;

&lt;p&gt;Instead of staring at a blank page, creators begin with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Current trends&lt;/li&gt;
&lt;li&gt;Ready-made hooks&lt;/li&gt;
&lt;li&gt;Suggested titles&lt;/li&gt;
&lt;li&gt;Video concepts&lt;/li&gt;
&lt;li&gt;Recommended structure&lt;/li&gt;
&lt;li&gt;Visual style guidance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The creator still decides the final story.&lt;/p&gt;

&lt;p&gt;The Wizard simply removes the repetitive research.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why This Matters
&lt;/h1&gt;

&lt;p&gt;Most editing software starts after you've already gathered your content.&lt;/p&gt;

&lt;p&gt;Reel-Quick starts before editing begins.&lt;/p&gt;

&lt;p&gt;It helps creators answer the most important questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What should I make today?&lt;/li&gt;
&lt;li&gt;What trends are growing?&lt;/li&gt;
&lt;li&gt;Which visuals fit this story?&lt;/li&gt;
&lt;li&gt;Which audio matches the mood?&lt;/li&gt;
&lt;li&gt;How should I structure the Reel?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By reducing research from hours to minutes, creators can spend more time creating content that people actually want to watch.&lt;/p&gt;




&lt;h1&gt;
  
  
  Future Roadmap
&lt;/h1&gt;

&lt;p&gt;The Content Wizard is only the beginning.&lt;/p&gt;

&lt;p&gt;Future releases may include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI-generated storyboards&lt;/li&gt;
&lt;li&gt;Shot list generation&lt;/li&gt;
&lt;li&gt;Automatic captions&lt;/li&gt;
&lt;li&gt;Hook optimization&lt;/li&gt;
&lt;li&gt;Scene sequencing&lt;/li&gt;
&lt;li&gt;Voice-over suggestions&lt;/li&gt;
&lt;li&gt;Trend forecasting&lt;/li&gt;
&lt;li&gt;One-click Reel generation&lt;/li&gt;
&lt;li&gt;Multi-platform optimization&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Built for Creators
&lt;/h1&gt;

&lt;p&gt;Our vision for Reel-Quick is simple.&lt;/p&gt;

&lt;p&gt;Creators shouldn't waste hours searching the internet before every Reel.&lt;/p&gt;

&lt;p&gt;The Content Wizard brings together AI research, stock media discovery, audio recommendations, and creative guidance into a single workflow.&lt;/p&gt;

&lt;p&gt;Instead of searching.&lt;/p&gt;

&lt;p&gt;You start creating.&lt;/p&gt;




&lt;h1&gt;
  
  
  Get Involved
&lt;/h1&gt;

&lt;p&gt;If you're interested in AI-powered creator tools, we'd love your feedback.&lt;/p&gt;

&lt;p&gt;⭐ GitHub Repository&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📌 Feature Request&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick/issues/17" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/17&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contributions, feature ideas, bug reports, and feedback are always welcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>instagram</category>
      <category>python</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Configurable Video Transition Duration in Reel Quick</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Sun, 26 Jul 2026 09:38:03 +0000</pubDate>
      <link>https://dev.to/munirfarhan/configurable-video-transition-duration-in-reel-quick-5gpj</link>
      <guid>https://dev.to/munirfarhan/configurable-video-transition-duration-in-reel-quick-5gpj</guid>
      <description>&lt;p&gt;Video transitions are one of those details that quietly shape the feel of an edit.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://github.com/ronin1770/reel-quick/issues/13" rel="noopener noreferrer"&gt;Reel Quick issue #13&lt;/a&gt;, the goal was simple: let users control how long a scene transition lasts instead of forcing a fixed value.&lt;/p&gt;

&lt;p&gt;Issue URL: &lt;a href="https://github.com/ronin1770/reel-quick/issues/13" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/13&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;The app already supported transition effects between scenes, but the duration was fixed.&lt;/p&gt;

&lt;p&gt;That meant creators could choose &lt;em&gt;what&lt;/em&gt; transition to use, but not &lt;em&gt;how long&lt;/em&gt; it should run.&lt;/p&gt;

&lt;p&gt;For short-form video, that matters a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fast transitions create a snappier pace&lt;/li&gt;
&lt;li&gt;longer transitions feel smoother or more cinematic&lt;/li&gt;
&lt;li&gt;some edits need no transition at all&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The feature
&lt;/h2&gt;

&lt;p&gt;The new behavior adds a configurable transition duration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;minimum: &lt;code&gt;0.0&lt;/code&gt; seconds&lt;/li&gt;
&lt;li&gt;maximum: &lt;code&gt;4.0&lt;/code&gt; seconds&lt;/li&gt;
&lt;li&gt;step: &lt;code&gt;0.5&lt;/code&gt; seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A slider in the frontend lets the user choose the duration, and that value is sent to the backend for FFmpeg video generation.&lt;/p&gt;

&lt;p&gt;If the value is &lt;code&gt;0.0&lt;/code&gt;, transitions are disabled entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  The FFmpeg math
&lt;/h2&gt;

&lt;p&gt;When two clips are joined with a transition, the transition overlaps the end of the first clip and the start of the second clip.&lt;/p&gt;

&lt;p&gt;So the final duration is:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;final length = clip 1 + clip 2 - transition duration&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 1
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Clip 1 = &lt;code&gt;7&lt;/code&gt; seconds&lt;/li&gt;
&lt;li&gt;Clip 2 = &lt;code&gt;8&lt;/code&gt; seconds&lt;/li&gt;
&lt;li&gt;Transition duration = &lt;code&gt;4&lt;/code&gt; seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Math:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;7 + 8 - 4 = 11 seconds&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Final video length: &lt;code&gt;11 seconds&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 2
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Clip 1 = &lt;code&gt;7&lt;/code&gt; seconds&lt;/li&gt;
&lt;li&gt;Clip 2 = &lt;code&gt;8&lt;/code&gt; seconds&lt;/li&gt;
&lt;li&gt;Transition duration = &lt;code&gt;0.5&lt;/code&gt; seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Math:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;7 + 8 - 0.5 = 14.5 seconds&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Final video length: &lt;code&gt;14.5 seconds&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why validation matters
&lt;/h2&gt;

&lt;p&gt;This feature also needs guardrails.&lt;/p&gt;

&lt;p&gt;The backend validates that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the duration is between &lt;code&gt;0&lt;/code&gt; and &lt;code&gt;4&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;the duration is a multiple of &lt;code&gt;0.5&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;clips are long enough for the selected transition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point is important. A &lt;code&gt;4&lt;/code&gt; second transition cannot work safely if a clip itself is only &lt;code&gt;3&lt;/code&gt; seconds long.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation notes
&lt;/h2&gt;

&lt;p&gt;The implementation touches both frontend and backend:&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;add a transition duration slider&lt;/li&gt;
&lt;li&gt;show the selected value beside it&lt;/li&gt;
&lt;li&gt;send &lt;code&gt;transition_duration&lt;/code&gt; in the video creation request&lt;/li&gt;
&lt;li&gt;show inline validation errors&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;accept &lt;code&gt;transition_duration&lt;/code&gt; in the API&lt;/li&gt;
&lt;li&gt;validate the range and step&lt;/li&gt;
&lt;li&gt;preserve the default behavior when no value is supplied&lt;/li&gt;
&lt;li&gt;pass the value into FFmpeg transition generation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The key idea
&lt;/h2&gt;

&lt;p&gt;The transition does not add extra time to the video.&lt;/p&gt;

&lt;p&gt;It overlaps clips.&lt;/p&gt;

&lt;p&gt;That is the core reason the final duration becomes:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sum of clips - overlap&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For &lt;code&gt;n&lt;/code&gt; clips, the total duration becomes:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sum(all clip durations) - sum(all transition overlaps)&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source note
&lt;/h2&gt;

&lt;p&gt;Small editing controls like this can have a big impact on creative flexibility.&lt;/p&gt;

&lt;p&gt;This is exactly the kind of feature that makes open source video tools more useful in real workflows: not flashy, just practical and user-driven.&lt;/p&gt;

&lt;p&gt;If you want to follow the discussion or implementation details, see the issue here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick/issues/13" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/13&lt;/a&gt;&lt;/p&gt;

</description>
      <category>instagram</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>flask</category>
    </item>
    <item>
      <title>Implementing HTTP 429 Retry-After Handling in Heka Insights Agent</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Sat, 25 Jul 2026 10:34:29 +0000</pubDate>
      <link>https://dev.to/munirfarhan/implementing-http-429-retry-after-handling-in-heka-insights-agent-5d30</link>
      <guid>https://dev.to/munirfarhan/implementing-http-429-retry-after-handling-in-heka-insights-agent-5d30</guid>
      <description>&lt;p&gt;We opened a focused reliability issue in the Heka Insights Agent to improve how the OTLP HTTP exporter behaves under backend rate limiting.&lt;/p&gt;

&lt;p&gt;Issue URL: &lt;a href="https://github.com/ronin1770/heka-insights-agent/issues/22" rel="noopener noreferrer"&gt;https://github.com/ronin1770/heka-insights-agent/issues/22&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/ronin1770/heka-insights-agent" rel="noopener noreferrer"&gt;https://github.com/ronin1770/heka-insights-agent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The problem is simple: if an ingestion gateway returns &lt;code&gt;429 Too Many Requests&lt;/code&gt;, the agent should not immediately keep retrying on a short generic backoff loop until all attempts are exhausted.&lt;/p&gt;

&lt;p&gt;If the server says:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;429 Too Many Requests
Retry-After: 20
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then the agent should respect that instruction, wait, and retry the same metrics batch at the correct time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;In telemetry pipelines, rate limiting is normal. Gateways protect themselves, vendors enforce quotas, and burst traffic happens.&lt;/p&gt;

&lt;p&gt;What matters is how the agent behaves when that happens.&lt;/p&gt;

&lt;p&gt;A weak retry strategy looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;request fails with &lt;code&gt;429&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;exporter retries too quickly&lt;/li&gt;
&lt;li&gt;all configured attempts are consumed before the rate-limit window resets&lt;/li&gt;
&lt;li&gt;the batch fails even though the backend gave a valid recovery signal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is not just inefficient. It also creates noisy logs, unnecessary traffic, and lower delivery reliability.&lt;/p&gt;

&lt;p&gt;For an agent that is expected to stay running continuously, this is the wrong operational behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Goal of Issue #22
&lt;/h2&gt;

&lt;p&gt;Issue #22 defines a more correct path for &lt;code&gt;429 Too Many Requests&lt;/code&gt; handling in the OTLP HTTP exporter.&lt;/p&gt;

&lt;p&gt;The required behavior is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;detect &lt;code&gt;429&lt;/code&gt; explicitly instead of treating it like a generic transient HTTP error&lt;/li&gt;
&lt;li&gt;read the &lt;code&gt;Retry-After&lt;/code&gt; header case-insensitively&lt;/li&gt;
&lt;li&gt;support integer-second delay values&lt;/li&gt;
&lt;li&gt;use a default delay when the header is missing or invalid&lt;/li&gt;
&lt;li&gt;cap excessive values with configuration&lt;/li&gt;
&lt;li&gt;retry the same OTLP payload&lt;/li&gt;
&lt;li&gt;reuse the same idempotency key&lt;/li&gt;
&lt;li&gt;avoid stacking exponential backoff on top of server-provided delay&lt;/li&gt;
&lt;li&gt;keep the main agent process and collectors running&lt;/li&gt;
&lt;li&gt;add logging and timing instrumentation around the retry path&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a narrow but important reliability improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Core Design Choice
&lt;/h2&gt;

&lt;p&gt;The most important part of the issue is not just "sleep and retry."&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;retrying the same batch with the same idempotency key&lt;/strong&gt; after honoring the delay requested by the server.&lt;/p&gt;

&lt;p&gt;That protects correctness in a few ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the exporter does not replace the pending batch with newer metrics&lt;/li&gt;
&lt;li&gt;retry semantics stay tied to the original request&lt;/li&gt;
&lt;li&gt;the backend sees the same logical delivery attempt after the rate-limit window&lt;/li&gt;
&lt;li&gt;clients do not accidentally create duplicate semantics by regenerating request identity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is especially important for observability delivery paths, where retries need to be operationally safe, not just convenient.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuration Rules
&lt;/h2&gt;

&lt;p&gt;The issue introduces explicit control for Retry-After behavior:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OTLP_RETRY_AFTER_DEFAULT_SECONDS=5&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OTLP_RETRY_AFTER_MAX_SECONDS=300&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OTLP_MAX_EXPORT_ATTEMPTS=5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gives the exporter deterministic behavior across common cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing header -&amp;gt; use default&lt;/li&gt;
&lt;li&gt;empty header -&amp;gt; use default&lt;/li&gt;
&lt;li&gt;invalid value -&amp;gt; use default&lt;/li&gt;
&lt;li&gt;negative value -&amp;gt; use default&lt;/li&gt;
&lt;li&gt;zero -&amp;gt; retry without additional delay&lt;/li&gt;
&lt;li&gt;value above max -&amp;gt; cap it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the kind of behavior that operators can reason about quickly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Async Sleep Matters
&lt;/h2&gt;

&lt;p&gt;One of the stronger requirements in the issue is that the wait must be asynchronous:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;retry_after_seconds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That detail matters because the agent should continue running normally while one export batch is waiting for its retry window.&lt;/p&gt;

&lt;p&gt;The wait should not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;block the event loop&lt;/li&gt;
&lt;li&gt;freeze collectors&lt;/li&gt;
&lt;li&gt;terminate the process&lt;/li&gt;
&lt;li&gt;force a broad retry redesign for unrelated HTTP failures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the scope disciplined while still improving real runtime behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Logging and Timing
&lt;/h2&gt;

&lt;p&gt;The issue also calls for better observability around exporter retries themselves.&lt;/p&gt;

&lt;p&gt;That includes logging:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;endpoint&lt;/li&gt;
&lt;li&gt;HTTP status&lt;/li&gt;
&lt;li&gt;current attempt&lt;/li&gt;
&lt;li&gt;maximum attempts&lt;/li&gt;
&lt;li&gt;parsed Retry-After value&lt;/li&gt;
&lt;li&gt;applied delay&lt;/li&gt;
&lt;li&gt;whether defaulting or capping occurred&lt;/li&gt;
&lt;li&gt;masked idempotency-key reference&lt;/li&gt;
&lt;li&gt;retry outcome&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also asks for timing data such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;retry_after_parse_ms&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;retry_after_sleep_seconds&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;retry_request_ms&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;total_batch_export_ms&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is important because retry logic without timing visibility becomes difficult to debug in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing Scope
&lt;/h2&gt;

&lt;p&gt;Issue #22 is also explicit about testing expectations.&lt;/p&gt;

&lt;p&gt;The test coverage should verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;header parsing for valid and invalid cases&lt;/li&gt;
&lt;li&gt;case-insensitive header handling&lt;/li&gt;
&lt;li&gt;same payload reuse on retry&lt;/li&gt;
&lt;li&gt;same idempotency key reuse on retry&lt;/li&gt;
&lt;li&gt;correct attempt accounting&lt;/li&gt;
&lt;li&gt;no extra exponential backoff layered onto Retry-After&lt;/li&gt;
&lt;li&gt;successful retry exit behavior&lt;/li&gt;
&lt;li&gt;max-attempt failure without crashing the agent&lt;/li&gt;
&lt;li&gt;clean shutdown during the wait&lt;/li&gt;
&lt;li&gt;collector continuity while the exporter is waiting&lt;/li&gt;
&lt;li&gt;no logging of secrets or raw OTLP payloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is also a clear integration expectation: return &lt;code&gt;429&lt;/code&gt;, wait the correct amount of time, retry the same batch, then succeed and exit the retry loop cleanly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Like This Issue
&lt;/h2&gt;

&lt;p&gt;This is the kind of issue that improves a system in a practical way.&lt;/p&gt;

&lt;p&gt;It does not try to redesign all retry behavior in one pass. It focuses on one real failure mode, defines the expected runtime behavior precisely, and forces the implementation to think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;correctness&lt;/li&gt;
&lt;li&gt;idempotency&lt;/li&gt;
&lt;li&gt;async behavior&lt;/li&gt;
&lt;li&gt;operational visibility&lt;/li&gt;
&lt;li&gt;bounded configuration&lt;/li&gt;
&lt;li&gt;testability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a good pattern for infrastructure work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the Issue
&lt;/h2&gt;

&lt;p&gt;If you want the full requirement set and acceptance criteria, the issue is here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ronin1770/heka-insights-agent/issues/22" rel="noopener noreferrer"&gt;https://github.com/ronin1770/heka-insights-agent/issues/22&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're interested in Linux telemetry agents, OTLP delivery behavior, or exporter reliability work, the repository is here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ronin1770/heka-insights-agent" rel="noopener noreferrer"&gt;https://github.com/ronin1770/heka-insights-agent&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>testing</category>
      <category>opentelemetry</category>
    </item>
    <item>
      <title>Reel Quick: Added Video Transition Effects and a Theme Selector</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Wed, 15 Jul 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/munirfarhan/reel-quick-added-video-transition-effects-and-a-theme-selector-46mp</link>
      <guid>https://dev.to/munirfarhan/reel-quick-added-video-transition-effects-and-a-theme-selector-46mp</guid>
      <description>&lt;h1&gt;
  
  
  Reel Quick: Added Video Transition Effects and a Theme Selector
&lt;/h1&gt;

&lt;p&gt;I’ve been improving &lt;strong&gt;Reel Quick&lt;/strong&gt;, an open-source Instagram reels generator built with &lt;strong&gt;FastAPI, Next.js, and ARQ&lt;/strong&gt;. The latest update adds two practical frontend/video workflow improvements: &lt;strong&gt;video transition effects&lt;/strong&gt; and a &lt;strong&gt;theme selector&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The transition work makes reel stitching feel more polished by adding support for scene transition effects between clips. For this release, I also added sample input/output media so the behavior is easy to inspect directly. On the UI side, Reel Quick now supports a &lt;strong&gt;theme selector&lt;/strong&gt; with multiple appearance modes, making the interface more flexible for different working environments and user preferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was added
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Video transition effects&lt;/li&gt;
&lt;li&gt;Sample transition input clips&lt;/li&gt;
&lt;li&gt;Sample output video showing a circle transition&lt;/li&gt;
&lt;li&gt;Theme selector demo output video&lt;/li&gt;
&lt;li&gt;Updated project documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;For reel creation workflows, transitions improve the final viewing experience without forcing extra manual editing outside the tool. The theme selector improves usability for longer editing sessions and makes the app feel more production-ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Repo: &lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Issue: &lt;a href="https://github.com/ronin1770/reel-quick/issues/11" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/11&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo assets
&lt;/h2&gt;

&lt;p&gt;Inside the repo docs folder you can find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transition input clips&lt;/li&gt;
&lt;li&gt;Transition output example&lt;/li&gt;
&lt;li&gt;Theme selector demo video&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to follow the implementation discussion and scope, check the linked issue above.&lt;/p&gt;

</description>
      <category>python</category>
      <category>fastapi</category>
      <category>opensource</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Adding RPM Packaging for CentOS 9 in Heka Insights</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Sun, 12 Jul 2026 10:00:00 +0000</pubDate>
      <link>https://dev.to/munirfarhan/adding-rpm-packaging-for-centos-9-in-heka-insights-3cj3</link>
      <guid>https://dev.to/munirfarhan/adding-rpm-packaging-for-centos-9-in-heka-insights-3cj3</guid>
      <description>&lt;p&gt;Heka Insights Agent now includes a dedicated RPM packaging workflow for CentOS Stream 9 and other Enterprise Linux 9-compatible distributions.&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://sl1nk.com/dpi1j6p" rel="noopener noreferrer"&gt;https://sl1nk.com/dpi1j6p&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project already supported packaged installation on Debian-based systems, but RPM-based environments need their own build format, package metadata, lifecycle scripts, and installation workflow.&lt;/p&gt;

&lt;p&gt;This release adds that missing path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supported RPM-based distributions
&lt;/h2&gt;

&lt;p&gt;The new packaging flow targets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CentOS Stream 9&lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Linux 9&lt;/li&gt;
&lt;li&gt;Rocky Linux 9&lt;/li&gt;
&lt;li&gt;AlmaLinux 9&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of attempting to reuse a Debian &lt;code&gt;.deb&lt;/code&gt; package, operators can now build and install a native &lt;code&gt;.rpm&lt;/code&gt; artifact using the standard &lt;code&gt;dnf&lt;/code&gt; and &lt;code&gt;rpm&lt;/code&gt; ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was added
&lt;/h2&gt;

&lt;p&gt;The repository now includes a dedicated RPM packaging structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;packaging/rpm/build_rpm.sh
packaging/rpm/heka-insights-agent.spec
packaging/rpm/heka-insights-agent.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The build script:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creates the standalone agent binary with PyInstaller.&lt;/li&gt;
&lt;li&gt;Prepares the RPM build directories.&lt;/li&gt;
&lt;li&gt;Copies the binary, systemd unit, documentation, and configuration example.&lt;/li&gt;
&lt;li&gt;Runs &lt;code&gt;rpmbuild&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Generates the final RPM and SHA-256 checksum.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The generated artifact follows the standard EL9 naming format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;heka-insights-agent-0.1.0-1.el9.x86_64.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why native RPM packaging matters
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;.deb&lt;/code&gt; package is not a CentOS release artifact.&lt;/p&gt;

&lt;p&gt;Debian and Enterprise Linux distributions use different package formats, package managers, dependency metadata, and installation lifecycle hooks.&lt;/p&gt;

&lt;p&gt;CentOS 9 and related systems expect:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RPM package metadata&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dnf&lt;/code&gt;-compatible dependency handling&lt;/li&gt;
&lt;li&gt;RPM installation and removal scriptlets&lt;/li&gt;
&lt;li&gt;EL9-compatible binaries&lt;/li&gt;
&lt;li&gt;systemd integration&lt;/li&gt;
&lt;li&gt;Enterprise Linux filesystem conventions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building the agent directly on an EL9 system also reduces compatibility risks with native libraries such as glibc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Consistent runtime model
&lt;/h2&gt;

&lt;p&gt;The packaging format changes, but the agent’s runtime model remains consistent.&lt;/p&gt;

&lt;p&gt;The RPM installs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/usr/local/bin/heka-insights-agent
/usr/lib/systemd/system/heka-insights-agent.service
/etc/heka-insights-agent/
/var/log/heka-insights-agent/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configuration is completed through the setup command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo&lt;/span&gt; /usr/local/bin/heka-insights-agent setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The service can then be enabled and started with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;--now&lt;/span&gt; heka-insights-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Service output is available through the systemd journal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;journalctl &lt;span class="nt"&gt;-u&lt;/span&gt; heka-insights-agent &lt;span class="nt"&gt;-f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The package also creates the agent service account and prepares the required configuration and log directories with restricted permissions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleaner release artifacts
&lt;/h2&gt;

&lt;p&gt;Platform-specific output is now separated inside &lt;code&gt;dist/&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dist/ubuntu/
dist/centos9/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps Debian and RPM artifacts clearly separated and makes multi-platform release automation easier to maintain.&lt;/p&gt;

&lt;p&gt;A release can now provide artifacts such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;heka-insights-agent_0.1.0_amd64.deb
heka-insights-agent-0.1.0-1.el9.x86_64.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installation on CentOS 9
&lt;/h2&gt;

&lt;p&gt;The generated RPM can be installed using:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  ./heka-insights-agent-0.1.0-1.el9.x86_64.rpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo&lt;/span&gt; /usr/local/bin/heka-insights-agent setup
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; &lt;span class="nt"&gt;--now&lt;/span&gt; heka-insights-agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The service can be verified with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl status heka-insights-agent &lt;span class="nt"&gt;--no-pager&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  A practical release improvement
&lt;/h2&gt;

&lt;p&gt;This is not a change to the telemetry engine itself, but it is an important operational improvement.&lt;/p&gt;

&lt;p&gt;Teams using CentOS Stream, RHEL, Rocky Linux, or AlmaLinux can now evaluate and deploy Heka Insights Agent using a package format that matches their infrastructure.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fewer manual installation steps&lt;/li&gt;
&lt;li&gt;clearer release documentation&lt;/li&gt;
&lt;li&gt;native package management&lt;/li&gt;
&lt;li&gt;easier upgrades and removals&lt;/li&gt;
&lt;li&gt;more consistent production rollouts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Review the source, packaging scripts, and release documentation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sl1nk.com/dpi1j6p" rel="noopener noreferrer"&gt;https://sl1nk.com/dpi1j6p&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>centos</category>
      <category>telemetry</category>
    </item>
    <item>
      <title>I Added Scene Transitions to Reel Quick with FastAPI, Next.js, and FFmpeg</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Sat, 11 Jul 2026 06:13:26 +0000</pubDate>
      <link>https://dev.to/munirfarhan/i-added-scene-transitions-to-reel-quick-with-fastapi-nextjs-and-ffmpeg-33a3</link>
      <guid>https://dev.to/munirfarhan/i-added-scene-transitions-to-reel-quick-with-fastapi-nextjs-and-ffmpeg-33a3</guid>
      <description>&lt;p&gt;Building reels by stitching short clips together works, but hard cuts can make the final video feel rough. I wanted Reel Quick to produce something smoother without forcing creators to leave the app and finish the job in a separate editor.&lt;/p&gt;

&lt;p&gt;This update adds scene transitions to Reel Quick. When creating a reel, you can now choose a transition and have it applied automatically at every scene boundary. That keeps the workflow simple while making the final output feel more polished.&lt;/p&gt;

&lt;p&gt;On the backend, I added a transition catalog for supported FFmpeg xfade effects, including fade, dissolve, fadeblack, fadewhite, wipeleft, wiperight, slideleft, slideright, circleopen, and circleclose. The API validates the selected transition, stores it with the video, and exposes transition records so the frontend can load only active options.&lt;/p&gt;

&lt;p&gt;On the frontend, the create-video flow now fetches available transitions and lets the user pick one before the job is queued. From there, the worker passes that choice into the render pipeline, and FFmpeg applies the selected transition between trimmed clips during output generation.&lt;/p&gt;

&lt;p&gt;One detail that matters: this feature depends on FFmpeg support for the xfade filter. If the local FFmpeg build supports it, Reel Quick can now turn plain stitched clips into cleaner, more watchable reels with no extra editing step.&lt;/p&gt;

&lt;p&gt;This is the kind of update I like most: small on the surface, but meaningful in the final result. It improves creator output, keeps the API workflow clean, and moves Reel Quick closer to being a practical open source reel-production tool.&lt;/p&gt;

&lt;p&gt;Output video: &lt;a href="https://drive.google.com/file/d/1HqOj9ZctlApq2AO2ylS16YXYhy6gu7AO/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1HqOj9ZctlApq2AO2ylS16YXYhy6gu7AO/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Issue: &lt;a href="https://github.com/ronin1770/reel-quick/issues/1" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/ronin1770/reel-quick" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>ffmpeg</category>
      <category>python</category>
    </item>
    <item>
      <title>Feature Request: Theme Switching for Reel-Quick</title>
      <dc:creator>Farhan Munir</dc:creator>
      <pubDate>Tue, 07 Jul 2026 10:56:59 +0000</pubDate>
      <link>https://dev.to/munirfarhan/feature-request-theme-switching-for-reel-quick-2oim</link>
      <guid>https://dev.to/munirfarhan/feature-request-theme-switching-for-reel-quick-2oim</guid>
      <description>&lt;p&gt;I have opened a feature request to add frontend theme support to Reel-Quick.&lt;/p&gt;

&lt;p&gt;The proposed feature would allow users to select between Light, Dark, and System-default themes. The selected preference should persist across sessions and apply consistently throughout the application.&lt;/p&gt;

&lt;p&gt;Because Reel-Quick is built with Next.js, this could be implemented using a theme provider such as next-themes, together with CSS variables, Tailwind dark-mode utilities, or the project’s existing styling approach.&lt;/p&gt;

&lt;p&gt;Theme support would improve accessibility, reduce visual fatigue in low-light environments, and make the platform more adaptable for individual users and future team deployments.&lt;/p&gt;

&lt;p&gt;The initial scope can remain simple: Light, Dark, and System modes. Later enhancements could include accent colors, high-contrast mode, compact layouts, or organization-level branding.&lt;/p&gt;

&lt;p&gt;View, discuss, or contribute to the feature request here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ronin1770/reel-quick/issues/11" rel="noopener noreferrer"&gt;https://github.com/ronin1770/reel-quick/issues/11&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>ux</category>
    </item>
  </channel>
</rss>
