{"slug": "i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor", "title": "I Was Paying Descript $24 a Month. So I Built My Own Transcript-Based Video Editor", "summary": "A developer built transcriptcut, a transcript-based video editor, after deciding Descript's $24 monthly subscription was too expensive for a workflow limited to recording, transcribing, cutting unwanted sections, cleaning filler words, adding captions, and exporting. The tool transcribes uploaded video, maps each word to start and end timestamps, and deletes selected transcript text by cutting from the first selected word's start timestamp to the last selected word's end timestamp, with FFmpeg handling the video processing. The developer deleted an initial multi-stage AI agent command bar that converted free-text requests like \"Remove the section where I talk about pricing\" into edit operations, citing the risk of giving an AI system authority over destructive edits, and instead limited the tool to surfacing long pauses and potential filler words for the user to confirm.", "body_md": "I edit videos the same way I edit text.\n\nWhen I’m recording a video and say something stupid, repeat myself, or spend thirty seconds explaining something that should have taken five seconds, I don’t want to open a traditional timeline and start dragging clips around. I want to find those words in the transcript, delete them, and have the video change with them.\n\nThat’s the workflow that originally made me start using Descript. And honestly, it’s one of those software ideas that feels obvious once you’ve used it. Your video already contains speech, your speech becomes text, and every word has a position in the video. So why shouldn’t editing the text edit the video?\n\nI was paying Descript around $24 a month and using it regularly. But after a few months, I started noticing something: I was paying for a huge product while using a surprisingly small part of it.\n\nI wasn’t producing complicated podcasts with multiple tracks. I wasn’t using AI voice cloning. I wasn’t collaborating with a production team.\n\nMy actual workflow was incredibly simple: record a video, transcribe it, remove the parts I don’t like, clean up filler words, add captions, and export.\n\nThat was basically it.\n\nEventually I had the thought that every developer has at some point when using a SaaS product:\n\n**How hard would it be to just build the part I actually use?**\n\nSo I did.\n\nI called it **transcriptcut**.\n\nThe entire application is built around one simple idea: **edit the video by editing its transcript.**\n\nYou upload a video and it gets transcribed. The transcript appears alongside the video, and every word knows when it starts and when it ends.\n\nThat last part is more important than it sounds.\n\nIf the transcript contains something like “today we are going to talk about pricing,” the application doesn’t need an AI model to understand where that sentence exists in the video. The transcription system has already given us the timestamps.\n\nIf I select that sentence and delete it, transcriptcut takes the start timestamp of the first selected word and the end timestamp of the last selected word. That gives us the exact section that needs to be removed.\n\nFrom there, it’s just an edit operation. FFmpeg handles the actual video processing.\n\nThere is no AI involved in deciding whether the correct section was removed.\n\nThere doesn’t need to be.\n\nIt’s just timestamps and arithmetic.\n\nAnd that’s what I like about this architecture. The interface feels intelligent, but the actual editing operation is deterministic.\n\nMy first implementation actually went in the opposite direction.\n\nI built a free-text “Ask AI” command bar where you could type something like:\n\n*“Remove the section where I talk about pricing.”*\n\nThe system would interpret the request, turn it into structured editing operations, validate those operations, and then execute them.\n\nI built an agent workflow for this with multiple stages responsible for understanding the request, generating the edit, validating it, and applying it.\n\nAnd it worked.\n\nI got the entire thing running end-to-end.\n\nThen I deleted it.\n\nThat was probably the most useful product decision I made during the project.\n\nThe problem wasn’t that the AI couldn’t understand the request. The problem was that I was giving an AI system too much authority over something destructive.\n\nConsider a request like:\n\n*“Make this video shorter.”*\n\nWhat exactly should happen?\n\nShould it remove the introduction? The outro? Long pauses? Repeated explanations?\n\nThe AI has to make a judgment call.\n\nAnd if it makes the wrong one, your video has changed.\n\nWhen you’re generating a paragraph of text, an imperfect AI response is usually easy to fix. When you’re deleting parts of someone’s video, it’s a different problem.\n\nSo I changed the design.\n\nInstead of allowing an AI agent to freely modify the video, transcriptcut focuses on specific operations. It can find long pauses, identify potential filler words, and surface things that might be worth removing.\n\nBut the final decision stays with the person editing the video.\n\nThe AI suggests something. I review it. I click approve. Then the application executes the edit.\n\nThat led me to a principle that I now like much more than the original AI command bar:\n\n**Agents reason. Tools execute.**\n\nI don’t need an agent to decide what to do when the user has already told me exactly what to do.\n\nThis project changed how I think about AI features in software.\n\nThere is a strong temptation right now to turn every feature into an agent. Give the model some tools, give it a large prompt, and let it figure everything out.\n\nSometimes that’s exactly the right approach.\n\nBut sometimes you’re introducing complexity into a problem that doesn’t have any ambiguity.\n\nTranscript editing is a good example.\n\nUnderstanding speech is hard, so using an AI model for transcription makes sense. Determining whether a word such as “like” is being used as a filler word can also require contextual understanding, so AI can help there too.\n\nBut once the user selects a sentence and presses delete, there is nothing left for an AI model to reason about.\n\nThe application already knows the answer.\n\nThat’s just software.\n\nI think that distinction is becoming increasingly important as we build more AI-powered applications. The goal shouldn’t be to maximize the amount of AI in a product. The goal should be to use AI where it actually adds something.\n\nIf something is ambiguous, let AI help.\n\nIf something is deterministic, write deterministic software.\n\nThere was another reason I wanted to build this myself: I wanted my videos to stay on my machine. Video files are huge, and they’re often private. I didn’t particularly like the idea of uploading every video I wanted to edit to a cloud service just to perform a fairly simple editing workflow, so I made local-first a core requirement from the beginning.\n\nThe architecture is deliberately simple. transcriptcut uses Next.js for the application, SQLite through Prisma for project data, the local filesystem for video storage, and FFmpeg for processing. There isn’t a managed database, object storage, or job queue sitting somewhere in the cloud. The project data and video files stay on the machine, while an AI provider is used only when inference is actually needed, such as transcription.\n\nWhen a video is uploaded, its audio is extracted and sent to the transcription provider. Once the transcript is available, editing happens locally through the timeline model. When it’s time to export, FFmpeg runs as a local process and creates a new video file without modifying the original.\n\nI also wanted the editing process to be non-destructive.\n\nWhen you remove a section from a video, transcriptcut doesn’t immediately rewrite your original video file. Instead, the application stores the edit as an operation.\n\nThe original upload remains untouched while the project keeps track of what you’ve done.\n\nThat means I can have a sequence of edits without destroying the source media. It also gives the application a much cleaner way to implement undo and redo because an edit is something that can be represented, replayed, and reversed rather than just a permanent modification to a large video file.\n\nRendering is handled separately as an asynchronous job, so exporting a twenty-minute video doesn’t mean keeping an HTTP request open while FFmpeg does all the work.\n\nNone of this is particularly revolutionary.\n\nAnd that’s kind of the point.\n\nI wasn’t trying to invent a new video codec or build a new rendering engine. I was taking technologies that already work well and putting them together around a workflow I actually care about.\n\nI want to be clear about something: transcriptcut isn’t a complete replacement for Descript.\n\nDescript is a much larger product, and there are many things it does that I have no interest in rebuilding.\n\nThat’s actually one of the reasons I wanted to build transcriptcut.\n\nWhen developers think about replacing an existing product, we often imagine that we have to rebuild everything the original company built.\n\nI don’t think that’s necessary.\n\nI didn’t need all of Descript.\n\nI needed the small part that I personally used every week.\n\nInstead of asking, “How do I build a competitor to Descript?” I asked a much smaller question:\n\n**How do I build the transcript editing workflow I actually use?**\n\nThat is a problem a single developer can realistically attack.\n\nAnd I think that’s an interesting way to look at software today.\n\nYou don’t always need to build the entire category.\n\nSometimes you just need to build the workflow.\n\nThe other thing I found interesting was how quickly the project came together.\n\nThe difficult parts of this application aren’t really mine. Whisper handles transcription. FFmpeg handles video processing. SQLite handles local persistence. Prisma handles the database layer. Next.js handles the application framework.\n\nModern AI coding tools also make it much faster to explore ideas, write the surrounding code, debug problems, and iterate.\n\nThat doesn’t mean building software has suddenly become easy.\n\nIt means the cost of building a focused piece of software has become much lower.\n\nA few years ago, I might have looked at something like Descript and thought, “There’s no way I can build this.”\n\nNow I look at a product like that and ask a different question:\n\n**Which part of it do I actually need?**\n\nThat’s a much more interesting question.\n\nMaybe you don’t need to rebuild the whole product.\n\nMaybe you need the 20% that you use 80% of the time.\n\nI’m not saying everyone should cancel their SaaS subscriptions and start rebuilding everything.\n\nThere are plenty of products I happily pay for because they solve problems I don’t want to solve myself.\n\nBut if you’re paying for a large product primarily because of one narrow workflow, I think it’s worth asking yourself what you’re actually paying for.\n\nIn my case, I wasn’t really paying for a video editor.\n\nI was paying for a transcript-to-video editing workflow.\n\nOnce I realized that, the problem became small enough to build.\n\nNow I have something I can run locally, change whenever I want, and keep improving without worrying about whether the feature I depend on will move to another pricing tier.\n\nAnd ironically, building it myself made me appreciate good SaaS products more.\n\nThere are plenty of things I don’t want to build, and I’m happy to pay for them when I need them.\n\nBut sometimes you don’t need the whole product.\n\nSometimes you just need one workflow.\n\nThe biggest lesson I took away from transcriptcut wasn’t really about video editing.\n\nIt was about knowing when **not** to use AI.\n\nMy first version was more impressive in a demo because you could type a sentence and an agent would figure out what you wanted.\n\nThe final version is less impressive in a demo, but I trust it more.\n\nAnd for an editor, trust matters more than magic.\n\nIf the application is uncertain about whether “like” is a filler word, AI can help.\n\nIf I’m asking a system to understand a vague request, an agent can help.\n\nBut if I’ve selected a piece of transcript and pressed delete, I don’t want an AI model making another decision.\n\nI want the application to do exactly what I asked.\n\nThat idea started as a design decision for a small video editor, but I think it’s something I’ll carry into many of the products I build from here.\n\nI built transcriptcut because I wanted a simple, local-first transcript editor for my own videos.\n\nNow I’m making it open source.\n\nIf you want to see how transcript-to-timestamp editing works, how the non-destructive editing model is structured, or you just want a local starting point for building your own video tools, the code is available at **github.com/amide-init/transcriptcut**.\n\nIt’s still evolving, and I’m curious to see what other people do with it.\n\nMaybe you don’t need another video editor either.\n\n**Maybe you just need the 20% you actually use.**\n\n[I Was Paying Descript $24 a Month. So I Built My Own Transcript-Based Video Editor](https://pub.towardsai.net/i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor-685e66750e44) was originally published in [Towards AI](https://pub.towardsai.net) on Medium, where people are continuing the conversation by highlighting and responding to this story.", "url": "https://wpnews.pro/news/i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor", "canonical_source": "https://pub.towardsai.net/i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor-685e66750e44?source=rss----98111c9905da---4", "published_at": "2026-09-24 07:55:56+00:00", "updated_at": "2026-09-24 08:29:32.550719+00:00", "lang": "en", "topics": ["ai-tools", "generative-ai", "ai-agents"], "entities": ["Descript", "transcriptcut", "FFmpeg"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor", "markdown": "https://wpnews.pro/news/i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor.md", "text": "https://wpnews.pro/news/i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor.txt", "jsonld": "https://wpnews.pro/news/i-was-paying-descript-24-a-month-so-i-built-my-own-transcript-based-video-editor.jsonld"}}