让我损失一年的错误
4 分•作者: wyrior•5 天前
去年,我在浏览一个网站时,无法下载高清视频。作为一名开发者,当遇到问题时,你总会想“不如自己做一个”。于是我开始研究,发现这些网站中只有大约 0.2% 真正可用,而且充斥着糟糕的广告。我查看了它们的流量,结果令人震惊,竟然有数千万的访问量。
我开始使用标准的 MEAN 技术栈进行开发。当时我 17 岁,虽然懂编程,但经验不足,完全是被这些流量数字驱动着。我使用了 yt-dlp 作为核心抓取器,并辅以 youtube-dl 和非官方的 TikTok API 作为备用方案。我可以说是在过度设计,试图构建一个层层备用的、万无一失的系统。这个过程花了两个月,到最后,修改一行代码就需要改动 15 到 20 个文件,这绝对是糟糕的代码。
我重写了代码,剥离了外部依赖,在 Node.js 中高效地使用了 yt-dlp。但速度仍然很慢,仅仅获取信息就需要 10 到 15 秒,开始下载又需要 10 到 15 秒。我尝试优化参数和预热连接池,但速度仍然停留在 9 到 10 秒。这时我非常执着于速度,又花了三个月。
我尝试了 Bun,但没有带来实质性的改进,命令行进程时间基本没变。我转而学习了 Go 语言,用 15 天学会后,重新构建了项目,这次成功了,启动速度降到了 4 到 5 秒。我为此庆祝了一个星期,享受着这个小小的胜利。
第五个月,我进一步优化。我意识到不需要 yt-dlp 的完整 `--dump-json` 元数据(5 秒),转而使用 oembed 和 iframely 来快速获取基础元数据(250 毫秒),同时让 yt-dlp 在后台处理下载。
六个月后,我以“videosaver”的名称上线了产品,但这个名字太普通了,Google 几乎没有收录,甚至搜索自己的名字也排不上名。我学到了命名和域名年龄比我想象的更重要。
接着我陷入了抑郁,一个月都在过度思考。第八个月,我重写了前端,并将品牌更名为“buckty”,采用了类似 AI 聊天机器人的界面,技术 SEO 得分在各个平台都达到了 100/100。第九个月上线,产品快速且功能完善,但仍然没有真正的流量。博客文章从未被收录。我在 Medium 和其他平台发布内容,但毫无起色。Cookie 问题和 IP 限制不断出现。我尝试使用 aria2 来提速,但这是个错误的服务器端决定。外部链接建设也未能带来任何改变。
我创建了一个 Instagram 电影剪辑主题账号,一个月内获得了 5 万粉丝和超过 7000 万的触达量。我试图将这些流量导向 Buckty,开始发布表情包,但三天内 Meta 就因为我账号的机器人行为将其封禁。再也没有恢复。
我意识到快速下载和不错的界面并不是核心竞争力。我用 Kotlin 开发了一个类似“Seal”的手机 App,支持通过分享直接下载,但下载是在服务器端完成,然后流式传输给用户。我还增加了 Google Drive 自动上传作为另一个卖点,通过一个 Nest.js 中间件连接了 Web 和移动端,这个中间件运行在 Go 后端之上,负责处理历史记录、Drive 上传等所有事情。但仍然存在 Cookie 问题。依然没有用户。我决定不再添加任何新功能,只专注于流量。
过去一个月,我尝试了所有 SEO 策略,但都无效。我意识到真正的问题在于杠杆效应,竞争对手通过黑帽 SEO 大量建设外部链接,每月花费 1 万美元,却能通过 CPM 广告带来每月 20 万美元的收入。另一条可行的路径是赞助拥有真实受众的创作者来推广产品。
经历了这一切,我最终的体会是……什么都没有,又似乎什么都有。我在优化、设计和扩展方面学到了很多。但真正的教训是:产品本身不重要,营销才是一切。那些构建“AI 包装器”的人获得了我无法企及的关注度,尽管我构建的是一个实际的系统,而不是炒作。
因此,我决定将整个生态系统开源,包括手机 App、Web App,所有的一切。它也可以本地运行,使用 Wails 将 Web App 打包成一个自托管的系统 App,你可以连接自己的账户,备份所有内容。它的设计目标是极少的维护,应该可以连续运行六个月而无需干预。开源一周后,我将离开它,去开发下一个项目。很难放弃这样一个项目,但任何让你后悔的事情,最好的离开时机就是你开始后悔的那一刻,而现在是第二好的时机。
查看原文
last year i was randomly visiting a website and couldnt download a video in hd quality. as a dev, when smoething doesnt work, you think "let's build it." so i started researching and found like 0.2% of these sites actually worked, but full of shitty ads. checked their traffic and got shokced, tens of millions of visits.<p>started building with a regular MEAN stack. i was 17, knew how to code but wasnt experienced, just pushed by those traffic numbers. used yt-dlp as the core scraper along with other fallbacks like youtube-dl and unofficial tiktok apis. by all means i was overengineering, tryign to build a bulletproof system with fallback on fallback. took two months, and by the end changing one line meant touching 15 to 20 files. that's bad code.<p>rewrote it, stripped external deps, used yt-dlp efficiently in node js. still slow, 10 to 15 sec just to fetch info, another 10 to 15 to start download. tried optimizing args and prewarmed pools, still stuck around 9 to 10 sec. obsessed with speed at this point, 3 months gone.<p>tried bun, no real improvement, cmd process time was the smae. switched to golang, learned it in 15 days, rebuilt again, and it worked, 4 to 5 sec startup. procrastinated a full week just enjoying that small win.<p>month 5, optimized further. realized we didnt need full yt-dlp --dump-json metadata (5 sec), switched to oembed and iframely for instant basic metadata (250ms) while yt-dlp handled the download in the bakcground.<p>launched after 6 months under the name "videosaver," too common a name, google barely indexed it, didnt even rank for its own name. learned naming and domain age matter more than i thought.<p>depression hit, overthought for a month. month 8, rebuilt frontend and rebranded to "buckty," ai chatbot style ui, technical seo scored 100/100 everywhere. launched month 9, fast and functional, but still zero real traffic. blog posts never got indexed. wrote on medium, other platforms, still nothing. cookies issues and ip throttling kept coming up. tried aria2 for speed, bad call server side. backlinks didnt move the needle either.<p>started an instagram theme page posting movie clips, hit 50k followers and 70m+ reach in a month. tried converting it into traffic for buckty, started posting memes, and within 3 days meta blocked the account for bot-like activity. never recovered.<p>realized fast downloads and decent ui isnt a usp. built a mobile app in kotlin with direct-download-with-share like "seal," but downloading server side then streaming to the user. added google drive auto-upload as another usp, connected web and mobile through a nest js middleware sitting on top of the golang backend, handling history, drive uploads, everything. still had the cookies issue. still no audience. decided no more features, just focus on traffic.<p>spent the last month trying every seo strategy, nothing worked. realized the real issue was leverage, competitors were doing blackhat bulk backlinking, spending 10k a month to pull 200k a month in cpm ads. the other real path is sponsoring a creator with real audience to showcase the product.<p>after all this, my final takeaway is... nothing, and everything. learned a ton about optimization, design, scaling. but the real lesson: product is nothing, marketing is everything. people building "ai wrappers" get traction i couldnt, even though i built an actual system, not hype.<p>so i'm open sourcing the whole ecosystem, mobile app, web app, all of it. built to run locally too, using wails to package the web app as a self hosted system app, connect your own accounts, back everything up. designed it to need minimal maintenance, should run fine for 6 months untouched. within a week of open sourcing it, i'm leaving it and moving to the next project. hard to walk away from something like this, but the best time to leave anything that hurts you was the moment you regretted it, and the second best time is now.