---
title: "Halfway Through Building an English-Learning Tool, I Decided to Use One That Already Existed"
author: "Shawn Jiang"
lang: en
date: 2026-09-25
canonical: https://tplog.dev/en/essay/stopping-halfway-through-an-english-learning-tool/
translations:
  ja: https://tplog.dev/ja/essay/stopping-halfway-through-an-english-learning-tool/
  zh: https://tplog.dev/zh/essay/stopping-halfway-through-an-english-learning-tool/
---

# Halfway Through Building an English-Learning Tool, I Decided to Use One That Already Existed

At first, I simply wanted to learn English.

When I watched YouTube videos and could not make out a sentence, I wanted to go back and listen to it a few more times. It would be much more convenient if I could follow the subtitles and use the keyboard to jump to the previous or next line instead of constantly dragging the progress bar with a mouse.

So I built a tool for myself: import a video, display its subtitles below it, and add keyboard shortcuts for pausing and moving from one line to another. The requirements were specific, and it was something I genuinely wanted to use. There was an immediate satisfaction in turning an idea in my head into an interface I could interact with. I thought I had done a pretty good job.

Some of my ideas changed as I built it. At first, the page included a set of preselected cards with memorable lines to repeat. Clicking one would play the corresponding line and pause automatically at the end. Later, I decided that I should be the one to judge which lines were worth practicing while I listened. Since I could already move between lines with the keyboard, there was no need to maintain a separate set of curated cards. I removed the feature.

Choices like this are not always easy to think through in the abstract. Once something was in front of me and I could use it, it became much easier to tell what I actually needed.

But other problems were far more difficult than I had expected: how to obtain YouTube subtitles reliably, and how to keep the server from being treated as a bot when it imported videos.

When I first imagined the project, I assumed the video and subtitles were already there and that I could simply retrieve them. I focused on what would happen afterward—how to display them, how to move between lines, and how to make repeated listening easier. It was only when I actually connected the tool to YouTube that the “import” step I had glossed over unfolded into a problem of its own. If I could not retrieve the subtitles, none of the later interactions would ever have a chance to be useful, however smooth they were.

Halfway through building the tool, I discovered [PlayLingo](https://playlingo.app). It already had the features I was working on: bilingual subtitles, line-by-line navigation, and replaying the current line. It also supported repeating lines aloud and saving them for review. It met my needs well.

There was no reason to build the same thing again.

My goal was to learn English. Building my own tool was simply one approach I had chosen at the time. Now that a suitable product already existed, I could use it directly. I did not have to solve subtitle retrieval and server restrictions before allowing myself to start learning.

Even after stopping, I still felt good about the time I had spent building. I had created the interactions I wanted, and I had personally removed a feature that looked appealing but turned out to be unnecessary. I had also discovered how many dependencies lay behind something as simple as “import a video,” none of which I had considered before. All of these lessons came from the concrete experience of making something.

The existence of a ready-made tool was enough reason for me to stop developing mine. What I had already built had genuinely taught me something. I did not need to finish the entire project just to prove that it had value.

In the end, I can continue learning English with PlayLingo. And the experience of building this tool gave me this essay to write.
