YouTube gặp lỗi tua ngược 20 giây – tôi đã dùng ChatGPT để điều tra

06 tháng 9, 2026·7 phút đọc

Một lập trình viên phát hiện lỗi kỳ lạ trên YouTube khi video tự động tua ngược 20 giây mỗi lần tải lại trang, và đã sử dụng ChatGPT cùng các công cụ debug của Chrome để truy tìm nguyên nhân gốc rễ. Kết quả cho thấy vấn đề nằm ở sự xung đột giữa cơ chế checkpoint từ máy chủ và tham số thời gian trong URL, thay vì lỗi đơn thuần từ phía trình duyệt. Bài viết cũng đưa ra góc nhìn thú vị về cách AI hỗ trợ quá trình gỡ lỗi trong phát triển web hiện đại.

YouTube gặp lỗi tua ngược 20 giây – tôi đã dùng ChatGPT để điều tra

YouTube gặp lỗi tua ngược 20 giây – tôi đã dùng ChatGPT để điều tra

Một lập trình viên đã phát hiện ra lỗi kỳ lạ trên YouTube: mỗi lần tải lại trang hoặc mở lại tab, video lại tự động tua ngược khoảng 20 giây so với điểm dừng trước đó. Thay vì bỏ qua, anh quyết định đào sâu điều tra bằng cách kết hợp sức mạnh của ChatGPT và các công cụ debug trong Chrome, và cuối cùng đã tìm ra nguyên nhân bất ngờ nằm ở cách YouTube xử lý checkpoint và tham số thời gian trong URL. Câu chuyện này không chỉ là một bài phân tích kỹ thuật, mà còn cho thấy cách AI đang thay đổi quy trình gỡ lỗi của các nhà phát triển web.

Lỗi kỳ lạ mà ai cũng từng gặp

Trong vài ngày qua, tác giả bài viết – một lập trình viên giàu kinh nghiệm – nhận thấy một vấn đề không thể bỏ qua: YouTube thỉnh thoảng tự động tua ngược video khi tải lại trang (soft reload), và mỗi khi mở lại một video chưa xem hết, trình phát lại nhảy về điểm sớm hơn khoảng 20 giây so với vị trí dừng. Ban đầu, anh thử mở tab mới, đóng rồi mở lại, tạm dừng rồi tiếp tục – nhưng chỉ có hành động tải lại trang hoặc mở lại tab mới kích hoạt lỗi này.

Tôi phát hiện ra một phím tắt mới của YouTube: đóng tab bằng Ctrl+W rồi mở lại bằng Ctrl+Shift+T sẽ tua ngược 20 giây – làm liên tục là bạn có thể quay lại bất kỳ điểm nào trong video.

Điều thú vị là trên ứng dụng Android, tính năng này hoạt động chính xác tuyệt đối. Cùng một video, cùng một checkpoint nhưng trình duyệt web lại tua sai, còn app di động lại nhớ chính xác từng giây. Sự khác biệt này đã thôi thúc tác giả tìm hiểu sâu hơn.

Bắt đầu hành trình gỡ lỗi với ChatGPT

Thay vì tự mò mẫm trong code JavaScript bị làm rối (obfuscated) của YouTube, tác giả quyết định tận dụng trợ lý AI. Anh bắt đầu bằng một câu hỏi đầy tham vọng: liệu Instagram và YouTube có điểm chung nào trong nền tảng kỹ thuật dẫn đến cùng một loại lỗi? ChatGPT đưa ra vài suy đoán thú vị nhưng không thực tế, nên anh nhanh chóng thu hẹp phạm vi chỉ tập trung vào YouTube.

ChatGPT đã hướng dẫn anh viết một script Tampermonkey để theo dõi mọi hành động tìm kiếm (seek) của video. Script này in ra thông báo dạng "Seek [from -> to]" mỗi khi video nhảy tới một mốc thời gian mới. Sau khi xác nhận script hoạt động cả khi tải lại trang, tác giả chuyển sang bước tiếp theo: đặt breakpoint ngay trong script để kiểm tra call stack – tức là xem toàn bộ chuỗi lệnh dẫn đến hành động tua.

Chrome DevTools + MCP: biến AI thành trợ lý debug

Điểm đáng chú ý nhất của bài viết là việc sử dụng Chrome DevTools Protocol (CDP)Model Context Protocol (MCP) để cho phép ChatGPT (thông qua OpenCode – một công cụ CLI tương tự Claude Code) kết nối trực tiếp vào trình duyệt và thực hiện việc gỡ lỗi một cách tự động.

MCP là một giao thức tiêu chuẩn cho phép các tác nhân AI sử dụng các công cụ bên ngoài. Trong trường hợp này, một máy chủ MCP cục bộ được cấu hình để mở kênh giao tiếp với Chrome thông qua CDP. Khi tác giả yêu cầu, ChatGPT có thể gửi lệnh để kiểm tra code JavaScript đang chạy, xem dữ liệu mạng nhận về, hoặc thậm chí thay đổi hành vi của trang web.

Điểm an toàn ở đây là mỗi lần OpenCode muốn kết nối vào Chrome, trình duyệt sẽ hiện cửa sổ xác nhận quyền – không có gì diễn ra mà không có sự đồng ý của người dùng.

Kết quả điều tra: nguyên nhân nằm ở checkpoint và URL

Sau một thời gian để ChatGPT tự do kiểm tra code, đọc các phản hồi từ máy chủ và phân tích, kết luận được đưa ra khá bất ngờ:

  • Checkpoint video được nhận trực tiếp từ máy chủ YouTube, không phải từ bộ nhớ cục bộ hay nơi nào khác.
  • Timestamps từ máy chủ đã bị sai từ trước. Khi đóng tab, timestamp gửi lên là X, nhưng khi mở lại, máy chủ trả về X trừ 20 giây.
  • Sự khác biệt giữa web và Android có thể đến từ việc app di động có cơ chế tự sửa lỗi timestamp sai từ máy chủ hoặc hai nền tảng nhận dữ liệu từ các hệ thống khác nhau.

Tuy nhiên, sau một đêm suy nghĩ, tác giả nhận ra mình đã bỏ sót một chi tiết quan trọng. Khi click vào video từ lịch sử xem của YouTube, trình duyệt thực sự chuyển hướng đến một URL có dạng youtube.com/watch?v=videoId&t=123s – tham số &t=123s chứa mốc thời gian dừng trước đó.

Vấn đề thực sự: vi phạm nguyên tắc trách nhiệm đơn lẻ

Đây chính là điểm mấu chốt. YouTube đã tạo ra một cơ chế phục hồi video dựa trên tham số URL thay vì dựa trên checkpoint có sẵn từ máy chủ. Điều này dẫn đến hai hệ lụy:

  1. Vi phạm nguyên tắc Single Responsibility: Trang web vốn đã nhận checkpoint từ máy chủ, nhưng lại còn nhận thêm một timestamp khác từ URL. Hai nguồn dữ liệu này có thể xung đột, gây ra những hành vi khó lường.
  2. Khi tải lại trang (soft reload), YouTube bỏ qua checkpoint từ máy chủ và ưu tiên timestamp trong URL – dù rằng timestamp này đã bị "cũ" so với vị trí xem thực tế.

Tác giả mô tả kịch bản thường gặp: xem video được 20 phút, dừng, đóng tab. Mở lại tab – URL vẫn ghi t=20min, checkpoint từ máy chủ là 40min. Vì tab bị stale nên YouTube tải lại URL, nhận checkpoint 40 phút trừ 20 giây lỗi, nhưng rồi URL vẫn hướng về 20 phút, khiến video bị tua ngược toàn bộ thời gian đã xem thêm.

Tham số timestamp trong URL vốn chỉ được thiết kế để chia sẻ video kèm mốc thời gian với bạn bè. Việc sử dụng nó như một cơ chế phục hồi chính đã tạo ra trải nghiệm người dùng tệ đến mức trước đây chỉ có Microsoft mới làm được.

Nhìn nhận một cách hài hước và thực tế

Tác giả thẳng thắn thừa nhận bài viết của mình ưu tiên tốc độ và sự hài hước hơn là độ chính xác tuyệt đối. Anh gọi phong cách điều tra của mình là "vibe debugging" – tức là tin tưởng vào AI và các công cụ có sẵn mà không kiểm chứng lại quá kỹ lưỡng. Anh cũng gửi báo cáo lỗi lên Google với ngôn từ lịch sự hơn rất nhiều so với văn phong trong bài.

Dù có thể có những thiếu sót trong phân tích, câu chuyện này vẫn mang lại hai bài học quý giá:

  • Lỗi phần mềm phức tạp thường đến từ những quyết định kiến trúc tưởng chừng đơn giản, như việc tái sử dụng tham số URL cho một mục đích không được thiết kế ban đầu.
  • AI như ChatGPT đang trở thành công cụ đắc lực cho việc gỡ lỗi, giúp rút ngắn thời gian điều tra từ nhiều giờ xuống còn vài chục phút, ngay cả với code đã bị làm rối.

Đối với người dùng Việt Nam, nếu gặp phải tình trạng video bị tua ngược khi mở lại từ lịch sử, có thể thử mở trực tiếp từ ứng dụng điện thoại hoặc xóa tham số &t=... trong URL rồi tải lại trang. Đây là một giải pháp tạm thời trong khi chờ Google khắc phục lỗi – nếu họ thực sự quan tâm.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗