Hôm nay mình làm một việc mà nếu tự làm bằng tay chắc mất cả năm: đọc hết podcast Hiếu TV, từ tập đầu tiên tháng 2/2021 tới tập chia tay tháng 7/2024, rồi biên tập lại thành một cái blog đọc cho nhanh.
Người làm là Claude Code (model Opus 5.5), mình chỉ ngồi ra lệnh, xem, chê, rồi bảo làm tiếp. Kết quả ở đây: hieutv-notes.hongthaiphi.workers.dev.
Lý do làm thì đơn giản. Podcast anh Hiếu hay, nhưng mỗi tập 20–30 phút, tổng cộng hơn 55 tiếng. Mình thích đọc hơn nghe, đọc thì lướt được, tìm lại được, đánh dấu được. Mà mấy cái transcript tự động của YouTube thì đọc không nổi, “podcast Hiếu TV” nó nghe thành “busquets thiếu tivi”, “Afterpay” thành “áp thấp hay” =))
Làm những gì
Mình nói với Claude từng bước, nó tự làm, có chỗ nó hỏi lại.
- Đầu tiên nhờ nó đánh giá qua vài kênh YouTube, rồi chọn @hieu-tv.
- Tải phụ đề tiếng Việt và metadata (tiêu đề, thời lượng, chapter) của cả kênh bằng
yt-dlp. Được 183 video, 180 video có phụ đề. Lần đầu tải bị chặn mất 38 video, cho chạy lại thì lấy đủ. - Viết một cái static site generator bằng Python, khoảng 300 dòng, không cần thư viện gì. Có bảng, có khung “Bình luận”, có mốc thời gian
[12:35]bấm vào thì video nhảy tới đúng đoạn đó, có bài liên quan cuối mỗi bài. - Deploy lên Cloudflare Workers (dạng chỉ chứa static assets), free.
- Rồi ngồi viết. Mỗi tập nó đọc lại toàn bộ transcript, viết lại bằng tiếng Việt cho gọn, giữ đủ ý, thêm phần bình luận của nó: đính chính số liệu sai, thêm nghiên cứu, bối cảnh pháp luật Việt Nam, cảnh báo với bài đầu tư.
Giữa chừng mình đổi ý vài lần. Ban đầu có đặt password, sau thấy nội dung công khai của kênh thì bỏ. Không đăng transcript gốc, chỉ để link sang YouTube cho ai muốn xem. Đổi font cho hiện đại hơn, thêm nút sáng/tối, thêm link bài liên quan. Mấy cái đó nó sửa trong vài phút.
Kết quả
- 180 bài, khoảng 240 nghìn chữ, bằng chừng 1/3 lượng chữ trong transcript gốc (750 nghìn chữ).
- Hơn 600 đoạn bình luận. Có những chỗ nó bắt lỗi khá hay: vụ cá cược 10 năm của Buffett là với Protégé Partners chứ không phải cái tên lơ mơ trong transcript, gen người với tinh tinh khác nhau khoảng 1–1,2% chứ không phải 0,1%, sơ đồ Ikigai bốn vòng tròn thực ra không phải của người Nhật, câu “Lãi kép là kỳ quan thứ tám” không có bằng chứng là của Einstein…
- Mấy tập nhạy cảm (an tử, sống thử, ý nghĩa cuộc sống) nó tự thêm số điện thoại hỗ trợ, ghi rõ đâu là quan điểm cá nhân của anh Hiếu. Cái này mình không dặn mà nó tự làm, khá chu đáo.
- Cả site nặng 3.1MB.
Ba video không có phụ đề nên chưa có bài: một clip đi kayak cắm trại ở NSW, và hai tập đầu năm 2022. Muốn có thì phải cho chạy Whisper chép lời, để hôm khác.
Tốn bao nhiêu token
Cái này mình tò mò nhất nên bắt nó tự đếm lại từ file log của phiên làm việc. Toàn bộ chạy trong một phiên dài khoảng 6 tiếng (10h50 sáng tới 5h chiều), bị nén ngữ cảnh 2 lần.
| Loại | Số token |
|---|---|
| Input (không cache) | 711 |
| Output (chữ nó viết ra) | 766 nghìn |
| Ghi vào cache | 2,78 triệu |
| Đọc từ cache | 122,2 triệu |
| Tổng | khoảng 125,7 triệu |
Tổng cộng khoảng 290 lượt gọi model, 187 lần ghi file, 166 lần đọc file, 115 lệnh shell.
Nhìn con số 125 triệu thì giật mình, nhưng 97% trong đó là đọc lại cache. Mỗi lượt gọi, nó phải gửi lại cả cuộc hội thoại, phần cũ thì được cache nên rẻ hơn nhiều so với input thường. Chữ thật sự nó viết ra chỉ có 766 nghìn token, tức khoảng 4 nghìn token mỗi bài. Chia đều thì mỗi tập podcast tốn khoảng 700 nghìn token, phần lớn là tiền “nhớ” chứ không phải tiền “viết”.
Kinh nghiệm nếu làm với kênh khác
Mình định làm tiếp với vài kênh nữa, nên ghi lại cho mình trước.
- Kiểm tra phụ đề trước khi làm gì. Kênh nào không có phụ đề thì phải chạy Whisper, tốn thêm thời gian và máy. Phụ đề tự động tiếng Việt sai nhiều nhất ở tên riêng, tên công ty, tiếng Anh chen giữa và con số. Phải dặn model kiểm tra lại các con số, đừng tin transcript. Có tập nó phát hiện số liệu thuế bị nhận dạng sai, phải tự tính lại.
- Lấy luôn file
.info.jsoncủa từng video. Trong đó có chapter, mốc thời gian chuẩn, mô tả video. Có tập chỉ có nhạc, phải đọc phần mô tả mới biết tập đó nói gì. - Tải chậm thôi, YouTube chặn khi tải dồn dập. Bị lỗi thì cho chạy lại phần thiếu. Đừng dùng
--cookies-from-browsernếu không thật cần, cái đó đụng tới tài khoản Google của mình nên mình dặn nó phải hỏi trước. - Chốt format bài với 3–5 bài mẫu trước, duyệt xong rồi mới cho viết hàng loạt. Mình duyệt xong format rồi chỉ nói đúng một câu “viết tiếp các tập còn lại”, nó cày một mạch.
- Cho nó “gấp” transcript ra một file dễ đọc trước (tiêu đề, thời lượng, chapter, rồi text), đỡ phải đọc lại file thô. Mỗi lần chỉ đọc 1–2 tập. Mình thử đọc nhiều tập cùng lúc thì output bị cắt ngang.
- Build và deploy giữa chừng vài lần, lỡ có gì hỏng thì còn bản cũ.
- Không đăng transcript gốc. Chỉ đăng bản viết lại có thêm bình luận, kèm link về video gốc. Nội dung của người ta thì nên tôn trọng người ta.
- Muốn tiết kiệm token thì chia nhỏ: mỗi phiên làm 20–30 tập thay vì một phiên chạy 6 tiếng, vì phiên càng dài thì mỗi lượt gọi càng phải gửi lại nhiều ngữ cảnh. Hoặc cho nhiều phiên chạy song song, mỗi phiên một năm.
- Phần bình luận là thứ làm blog này khác một bản tóm tắt. Dặn rõ nó được phép đính chính, bổ sung nghiên cứu, nhưng phải tách bạch đâu là lời anh Hiếu, đâu là lời của nó.
Ngồi xem nó viết, có lúc mình đọc mấy tập về tự do tài chính, về “biết đủ”, về chuyện anh Hiếu nghỉ hưu xong lại làm nhiều gấp 5–7 lần trước rồi kiệt sức. Đọc thì nhanh thật, một bài vài phút là xong một tập. Nhưng mấy tập hay thì chắc vẫn phải mở lại nghe giọng anh ấy, đọc chữ không có cái chậm rãi đó.
Còn 2 tập chưa có phụ đề, mai cho nó chạy Whisper thử xem sao nhỉ.