Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>YouTube Music PlayerNew to Visual Studio Code? Get it now.
YouTube Music Player

YouTube Music Player

Akimiya Hoang

| (0) | Free
Search and play YouTube music in VS Code through mpv and yt-dlp.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

YouTube Music Player for VS Code

Nghe nhạc YouTube ngay trong Activity Bar của VS Code. Extension dùng yt-dlp để tìm/đọc playlist và mpv để phát nhạc qua JSON IPC.

Tính năng

  • Search YouTube trực tiếp trong sidebar.
  • Now playing: ảnh thumbnail, tên bài, channel và tiến độ.
  • Play/pause, previous, next, stop, seek và volume.
  • Tải bài đang phát dưới dạng Video MP4 hoặc Audio MP3 bằng yt-dlp.
  • Built-in streaming player và Media Session cho máy không có mpv.
  • Queue có thể thêm, phát, xóa từng bài hoặc xóa toàn bộ.
  • Search Results và Queue có thể thu gọn/mở rộng bằng cách nhấn vào tiêu đề.
  • Queue và history được lưu theo workspace.
  • Tự lấy related tracks từ YouTube Mix khi queue hết.
  • Nút refresh để lấy lại related tracks thủ công.
  • Regex include/exclude giúp bỏ trailer, reaction, review, podcast, Shorts…
  • Chế độ audio-only mặc định, không mở cửa sổ video.

Yêu cầu

yt-dlp là bắt buộc. mpv là backend mặc định nhưng không còn bắt buộc: extension tự fallback sang built-in HTML audio player nếu không chạy được mpv, hoặc có thể bật youtubeMusic.noMpv. Tải MP3 và ghép video/audio MP4 cần thêm ffmpeg.

Ubuntu/Debian:

sudo apt install mpv ffmpeg wget curl
sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp

macOS:

brew install mpv yt-dlp ffmpeg

Windows (winget):

winget install mpv
winget install yt-dlp.yt-dlp
winget install Gyan.FFmpeg

Nếu executable không nằm trong PATH, đặt đường dẫn đầy đủ tại youtubeMusic.mpvPath và youtubeMusic.ytDlpPath.

Sử dụng

  1. Nhấn biểu tượng YouTube Music trong Activity Bar.
  2. Nhập tên bài hát/nghệ sĩ và nhấn Search.
  3. Nhấn ▶ để phát ngay hoặc + để thêm vào queue.
  4. Nhấn ↻ ở phần Queue để làm mới danh sách related tracks.
  5. Nhấn biểu tượng Download cạnh player controls, chọn MP4/MP3 và vị trí lưu.

Các lệnh cũng có trong Command Palette với tiền tố YouTube Music.

Cấu hình

Setting Mặc định Ý nghĩa
youtubeMusic.mpvPath mpv Đường dẫn executable mpv
youtubeMusic.ytDlpPath yt-dlp Đường dẫn executable yt-dlp
youtubeMusic.searchLimit 20 Số kết quả tìm kiếm tối đa
youtubeMusic.includeFilter rỗng Chỉ giữ title/channel khớp regex
youtubeMusic.excludeFilter regex non-music Loại video khớp regex
youtubeMusic.autoRelated true Tự lấy related khi queue hết
youtubeMusic.relatedLimit 20 Số related tracks mỗi lần
youtubeMusic.defaultVolume 70 Âm lượng khởi tạo
youtubeMusic.audioOnly true Không mở cửa sổ video
youtubeMusic.noMpv false Luôn dùng built-in streaming player thay cho mpv
youtubeMusic.restorePlayback true Giữ mpv phát và khôi phục Now Playing sau Reload Window
youtubeMusic.downloadDirectory rỗng Thư mục tải mặc định; rỗng để nhớ vị trí chọn gần nhất
youtubeMusic.ytDlpDownloadArgs [] Custom arguments chỉ dùng khi download
youtubeMusic.debugLogs false Ghi error, info, full lệnh yt-dlp và port proxy vào Output → YouTube Music Player

Mỗi custom argument và giá trị của nó là một phần tử riêng. Ví dụ dùng cookies từ Firefox và giới hạn tốc độ tải:

{
  "youtubeMusic.ytDlpDownloadArgs": [
    "--cookies-from-browser",
    "firefox",
    "--limit-rate",
    "5M"
  ]
}

Các argument do extension quản lý như output path và định dạng MP3/MP4 được thêm sau custom arguments để đảm bảo file được lưu đúng lựa chọn trong giao diện.

Built-in streaming và Media Session

Khi youtubeMusic.noMpv bật hoặc mpv không khả dụng, extension dùng yt-dlp để resolve URL bestaudio. Một HTTP proxy chỉ lắng nghe trên localhost sẽ:

  • forward Range requests để seek;
  • dùng User-Agent, Referer và các HTTP headers do yt-dlp trả về;
  • thêm CORS headers cho VS Code webview;
  • không lưu audio xuống ổ đĩa.

Webview phát stream bằng HTMLAudioElement và đăng ký Media Session API, nên hệ điều hành có thể hiển thị title, artist, thumbnail và các nút play/pause/next/previous/seek. Khả năng hiển thị cụ thể phụ thuộc phiên bản VS Code/Electron và desktop environment.

Trước khi phát, extension kiểm tra một Range request nhỏ để loại URL đã hết hạn hoặc endpoint trả HTTP 403. Webview báo khả năng giải mã M4A/AAC và WebM/Opus; resolver ưu tiên format tương thích và tự thử format còn lại nếu Chromium báo MEDIA_ERR_SRC_NOT_SUPPORTED.

Khôi phục mpv sau Reload Window

youtubeMusic.restorePlayback mặc định bật và chỉ áp dụng cho backend mpv. Trước khi Extension Host tắt, extension giữ tiến trình mpv cùng IPC socket và arm watchdog 15 giây. Host mới reconnect, hủy watchdog rồi đọc lại pause state, position, duration và volume trực tiếp từ mpv; media không bị load lại nên âm thanh tiếp tục trong lúc VS Code reload.

Nếu VS Code thực sự đóng hoặc host mới không reconnect trong 15 giây, watchdog tự tắt mpv để tránh tiến trình mồ côi. Built-in HTML audio không dùng cơ chế này.

Regex được chạy không phân biệt hoa/thường trên chuỗi title + channel. Ví dụ chỉ ưu tiên video có dấu hiệu là nhạc:

{
  "youtubeMusic.includeFilter": "\\b(audio|official|lyrics?|mv|music)\\b",
  "youtubeMusic.excludeFilter": "\\b(live stream|reaction|review|tutorial|podcast|shorts?)\\b"
}

Để không lọc exclude, đặt youtubeMusic.excludeFilter thành chuỗi rỗng.

Phát triển

npm install
npm run compile

Nhấn F5 trong VS Code để chạy Extension Development Host. Dùng npm run watch trong khi phát triển.

Lưu ý

  • Kết quả và related tracks phụ thuộc vào YouTube/yt-dlp; hãy cập nhật yt-dlp nếu extraction ngừng hoạt động.
  • Nội dung bị giới hạn khu vực, riêng tư hoặc cần đăng nhập có thể không phát.
  • Hãy tuân thủ điều khoản YouTube và quy định bản quyền tại nơi bạn sống.
  • YouTube là nhãn hiệu đã được đăng ký thuộc sở hữu của Google LLC.Project này hoàn toàn không hợp tác với Google hoặc Youtube
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft