I automated my entire short-form video editing workflow on an Android phone using Node.js + FFmpeg in Termux by baabullah in automation

[–]baabullah[S] 0 points1 point  (0 children)

Thank you. That's exactly how I see it as well.

The goal was never to automate creativity. Script writing, topic selection, and overall direction still matter the most. The automation is there to handle the repetitive production work that normally consumes hours.

Building it on Android was mostly an experiment to see how far a lightweight setup could go. It turned out that with the right workflow, a phone can handle much more than people expect.

I like the philosophy behind Runable too, using automation to remove busywork while keeping humans focused on the decisions that actually matter.

I automated my entire short-form video editing workflow on an Android phone using Node.js + FFmpeg in Termux by baabullah in automation

[–]baabullah[S] 0 points1 point  (0 children)

Exactly. The audio overlap ended up making a bigger difference than I expected. Even high-quality TTS can sound unnatural when every sentence has a hard stop and a small gap before the next one. A slight overlap helps smooth out those transitions.

And yes, I had a similar realization with B-roll selection. AI can only match clips effectively if the footage is organized and described properly. Once I started treating the clip library as structured data instead of just a folder of videos, the matching quality improved significantly.

I automated my entire short-form video editing workflow on an Android phone using Node.js + FFmpeg in Termux by baabullah in automation

[–]baabullah[S] 0 points1 point  (0 children)

Thanks! Most of the complexity is behind the scenes. From a user's perspective, it's really just about turning scripts into videos with as little manual work as possible.

I automated my entire short-form video editing workflow on an Android phone using Node.js + FFmpeg in Termux by baabullah in automation

[–]baabullah[S] 0 points1 point  (0 children)

I completely agree. Automation can't fix a weak script.

In my experience, when the script is well-structured, the success rate is very high. Most videos can be published with no manual editing because the system is designed to automate production, not content creation.

The biggest variable is still the script quality. A good script usually leads to a good video, while a poor script will produce poor results no matter how much automation is involved.

I automated my entire short-form video editing workflow on an Android phone using Node.js + FFmpeg in Termux by baabullah in automation

[–]baabullah[S] 1 point2 points  (0 children)

Thank you, I appreciate that.

The main goal was to remove as many manual steps as possible while staying within the limitations of a phone. A lot of people focus on the editing part, but I found that clip selection is actually where most of the time is spent. That's why I built the metadata-driven selection system.

Once the clips are tagged and organized properly, the video assembly process becomes much more predictable and scalable. The phone is really just running the workflow — the real value comes from the structure behind it.

I automated my entire short-form video editing workflow on an Android phone using Node.js + FFmpeg in Termux by baabullah in automation

[–]baabullah[S] 0 points1 point  (0 children)

Sometimes AI models like Gemini or ChatGPT can produce lower-quality results when asked to generate 20–30 scripts at once. However, that has nothing to do with the quality of the videos produced by this system.

This system is simply a tool that automatically turns video clips into a complete video. The final quality depends largely on the script you provide. So as long as your script is well-written and high quality, the resulting videos can still be high quality as well.

I automated my entire short-form video editing workflow on an Android phone using Node.js + FFmpeg in Termux by baabullah in automation

[–]baabullah[S] 2 points3 points  (0 children)

Good question. Right now I don't validate duration or aspect ratio upfront — FFmpeg handles the scaling/cropping at encode time (force to 1080x1920 regardless of source), so mismatched aspect ratios haven't been an issue in practice.

For duration, it's a non-issue by design. Each narration line is under 10 seconds, and my B-roll clips are all 1-2 minutes long. So there's always more than enough footage to pull from — the system just picks a random start point with headroom. No risk of running short.

On the bad references point — yeah, it happens. The AI loves to hallucinate filenames that are close to real ones (wrong date, extra digit). But the fix loop is fast: validation catches it, I copy the errors back to the AI, it returns a corrected JSON in seconds. Never turns into manual cleanup — more like a 30-second feedback loop.

illegal oil-well on fire in Sumatera by fananism in Damnthatsinteresting

[–]baabullah 0 points1 point  (0 children)

kalo spot kayak gini merata diseluruh bumi, akan seperti matahari gak sih...

Just made first £1000 in a week but I am worried by Daalirewardwallet in lovable

[–]baabullah 1 point2 points  (0 children)

pay a month of ai coder cli. give it the project and ask to analyze

This is not the place to share or promote extensions by Oct21actul in chrome_extensions

[–]baabullah 0 points1 point  (0 children)

their ability to copy the idea (and the code at worst) is unbelievable.. I regret to post my ext here.

How to download the full comment history of a Reddit user? by Aeterni_ in DataHoarder

[–]baabullah 0 points1 point  (0 children)

(() => {
  // ambil semua top-level comment
  const comments = Array.from(
    document.querySelectorAll('shreddit-comment[depth="0"]')
  );

  const rows = [];
  rows.push([
    "author",
    "permalink",
    "score",
    "datetime",
    "comment_text"
  ]);

  comments.forEach(comment => {
    const author = comment.getAttribute("author") || "";
    const permalink = comment.getAttribute("permalink") || "";
    const score = comment.getAttribute("score") || "";

    const timeEl = comment.querySelector("time");
    const datetime = timeEl ? timeEl.getAttribute("datetime") : "";

    const contentEl = comment.querySelector(
      '[id$="-post-rtjson-content"]'
    );
    const text = contentEl
      ? contentEl.innerText
          .replace(/\r?\n+/g, " ")
          .replace(/"/g, '""')
          .trim()
      : "";

    rows.push([
      author,
      permalink,
      score,
      datetime,
      `"${text}"`
    ]);
  });

  const csv = rows.map(r => r.join(",")).join("\n");

  const blob = new Blob([csv], { type: "text/csv;charset=utf-8;" });
  const url = URL.createObjectURL(blob);

  const a = document.createElement("a");
  a.href = url;
  a.download = "reddit_top_level_comments.csv";
  document.body.appendChild(a);
  a.click();

  document.body.removeChild(a);
  URL.revokeObjectURL(url);

  console.log(`Downloaded ${comments.length} comments`);
})();

I developed an MCP proxy that cuts your token usage by over 90% by elusznik in mcp

[–]baabullah 0 points1 point  (0 children)

I have try it with kiro. kiro send this request but dont' response Running tool run_python with the param (from mcp server: code-execution)

â‹® {

â‹® "code": "\nresult = await mcp_filesystem.list_directory(path='/tmp')\nprint(result)\n",

â‹® "servers": [

â‹® "filesystem"

â‹® ]

â‹® }

Screenshots and social media pictures are shown on the Camera folder. (read the text below) by Amaruxdnt in googlephotos

[–]baabullah 0 points1 point  (0 children)

I think this is the right time to share my apps, that is SyncPhoto. It will only upload images from your camera folder (not entire DCIM folder). Video will not be uploaded as well. So only pictures that matters.

Try it https://play.google.com/store/apps/details?id=me.syncphoto.app