kir4che/pip-companion

Enhanced PiP for web videos with playback controls, bilingual subtitles, danmaku, screenshots, and floating comments. 讓網頁影片在子母畫面中播放,支援播放控制、雙語字幕、彈幕、截圖與浮動留言區。

See the code

See what people are saying

SourceMessageScoreDate

I use AI to make a Picture-in-Picture Chrome extension (r/SideProject)

[PiP Companion](https://chromewebstore.google.com/detail/gnfofimkbdmkbjejmkdmihdpemlgejlm?utm_source=item-share-cb) ( ÒㅅÓ) In PiP you can play/pause, seek, change volume (max 300%) and speed (max 5x), go to next video, take screenshots, works on YouTube, Bilibili, Twitch, Netflix, and most sites…

1

Oct 15, 2026

README

幕伴 PiP · PiP Companion

Chrome Web Store version English | 简体中文 | 繁體中文

A browser extension that brings web videos into Picture-in-Picture, with subtitles, danmaku, screenshots, and floating comments panels.

PiP Companion social preview

For problems or feature requests, please report them in Issues.

Features

  • Picture-in-Picture controls: play/pause, scrub the timeline, volume, playback speed, frame stepping, play next video, and more.
    • Volume boost: same-origin videos can be boosted up to 300%; cross-origin videos may be limited to 100%.
    • Playback speed: adjust from 0.25× to 5×; automatically hidden during live streams to preserve sync, and some websites may impose limits.
    • Progress bar & previews: keeps the mini progress bar visible at the bottom when controls are hidden, and hovering over the seek bar previews thumbnails (thumbnail previews are supported only on YouTube, Bilibili, and Bahamut Anime Crazy).
    • Jump to a timestamp: enter a video time to jump directly to that point.
    • Bilingual subtitles: display subtitles that can be read from the video in PiP, with switchable tracks by the languages the video provides.
      • Customizable styles.
      • The second subtitle can use the video's native subtitle track, or live translation via Microsoft Translator, Google Cloud Translation, or DeepL (bring your own API key).
    • Playlists: supported on YouTube, Bilibili, and Bahamut Anime Crazy.
  • Danmaku:
    • Display native danmaku from Bilibili and Bahamut Anime Crazy.
    • Render chat messages from YouTube and Twitch as danmaku.
    • Send danmaku from PiP on Bahamut Anime Crazy, YouTube Live, and Bilibili.
    • Customize danmaku appearance.
    • Additional danmaku: overlay danmaku/chat from Bilibili, Bahamut Anime Crazy, or Twitch onto other videos.
  • Floating comments: open the comments panel on YouTube and Bilibili video pages while watching.
  • Screenshots: save the video frame as a PNG file.
  • Follow playback: when enabled and the PiP source pauses while another page (or the same page) has a playing video, PiP hands off to it. Due to browser restrictions, cross-tab handoff requires a click on that tab.
  • Feature toggles and keyboard shortcuts: toggle danmaku, screenshots, floating comments, and follow playback individually; customize shortcuts for PiP, comments, screenshots, and danmaku.
  • Localized interface: Available in Traditional Chinese, Simplified Chinese, and English. Change the language in Settings.
  • Embedded videos: detect videos in matching iframes. Cross-origin compatibility depends on the website and browser permissions, so not every player is guaranteed to work.

See Platform Support and Limitations for the platform compatibility matrix.

Screenshots

YouTubeBilibili
YouTube Picture-in-Picture demoBilibili Picture-in-Picture demo

Bilingual subtitles across platforms

CourseraYouTube
Coursera Picture-in-Picture bilingual subtitlesYouTube Picture-in-Picture bilingual subtitles
iQIYINetflix
iQIYI Picture-in-Picture bilingual subtitlesNetflix Picture-in-Picture bilingual subtitles; video is black due to DRM

Controls and Shortcuts

  • Open PiP: on a page with a playable video, click Open PiP in the extension popup, or press Shift + Alt/Opt + P on the page to toggle PiP on or off.
  • Customize shortcuts: open the extension’s All settings page, select a shortcut in Shortcuts, then press a new combination.
ActionDefault shortcut
Open PiPShift + Alt/Opt + P
Play or pauseSpace
Seek (5s by default)← / →
Adjust volume↓ / ↑
MuteM
SubtitlesC
FanmakuD
Danmaku inputEnter
Ffloating commentsAlt/Opt + C
Take screenshotAlt/Opt + P
Adjust playback speedShift + , / Shift + .
Step one frame, / .
Auto-adjust aspect ratioR
Resize PiPCtrl/Cmd + scroll wheel

Installation

Requires Chrome 116 or later. From the project directory, run npm ci and npm run build. Then open chrome://extensions, enable Developer mode, and load the dist/ directory.

Development

Requires Node.js 22 LTS or later. Install dependencies with npm ci, then run:

npm run lint
npm run typecheck
npm run build

Support

If you enjoy this project, you can buy me a cup of milk tea ヾ(´∀`)ノ

Buy Me a Coffee

bilingual-subtitles
brwoser-extension
captions
chrome-extension
danmaku
danmaku-player
picture-in-picture
screenshot
subtitles
subtitle-translation
video-controls
video-player

kir4che/pip-companion

Enhanced PiP for web videos with playback controls, bilingual subtitles, danmaku, screenshots, and floating comments. 讓網頁影片在子母畫面中播放,支援播放控制、雙語字幕、彈幕、截圖與浮動留言區。

See the code

See what people are saying

SourceMessageScoreDate

I use AI to make a Picture-in-Picture Chrome extension (r/SideProject)

[PiP Companion](https://chromewebstore.google.com/detail/gnfofimkbdmkbjejmkdmihdpemlgejlm?utm_source=item-share-cb) ( ÒㅅÓ) In PiP you can play/pause, seek, change volume (max 300%) and speed (max 5x), go to next video, take screenshots, works on YouTube, Bilibili, Twitch, Netflix, and most sites…

1

Oct 15, 2026

README

幕伴 PiP · PiP Companion

Chrome Web Store version English | 简体中文 | 繁體中文

A browser extension that brings web videos into Picture-in-Picture, with subtitles, danmaku, screenshots, and floating comments panels.

PiP Companion social preview

For problems or feature requests, please report them in Issues.

Features

  • Picture-in-Picture controls: play/pause, scrub the timeline, volume, playback speed, frame stepping, play next video, and more.
    • Volume boost: same-origin videos can be boosted up to 300%; cross-origin videos may be limited to 100%.
    • Playback speed: adjust from 0.25× to 5×; automatically hidden during live streams to preserve sync, and some websites may impose limits.
    • Progress bar & previews: keeps the mini progress bar visible at the bottom when controls are hidden, and hovering over the seek bar previews thumbnails (thumbnail previews are supported only on YouTube, Bilibili, and Bahamut Anime Crazy).
    • Jump to a timestamp: enter a video time to jump directly to that point.
    • Bilingual subtitles: display subtitles that can be read from the video in PiP, with switchable tracks by the languages the video provides.
      • Customizable styles.
      • The second subtitle can use the video's native subtitle track, or live translation via Microsoft Translator, Google Cloud Translation, or DeepL (bring your own API key).
    • Playlists: supported on YouTube, Bilibili, and Bahamut Anime Crazy.
  • Danmaku:
    • Display native danmaku from Bilibili and Bahamut Anime Crazy.
    • Render chat messages from YouTube and Twitch as danmaku.
    • Send danmaku from PiP on Bahamut Anime Crazy, YouTube Live, and Bilibili.
    • Customize danmaku appearance.
    • Additional danmaku: overlay danmaku/chat from Bilibili, Bahamut Anime Crazy, or Twitch onto other videos.
  • Floating comments: open the comments panel on YouTube and Bilibili video pages while watching.
  • Screenshots: save the video frame as a PNG file.
  • Follow playback: when enabled and the PiP source pauses while another page (or the same page) has a playing video, PiP hands off to it. Due to browser restrictions, cross-tab handoff requires a click on that tab.
  • Feature toggles and keyboard shortcuts: toggle danmaku, screenshots, floating comments, and follow playback individually; customize shortcuts for PiP, comments, screenshots, and danmaku.
  • Localized interface: Available in Traditional Chinese, Simplified Chinese, and English. Change the language in Settings.
  • Embedded videos: detect videos in matching iframes. Cross-origin compatibility depends on the website and browser permissions, so not every player is guaranteed to work.

See Platform Support and Limitations for the platform compatibility matrix.

Screenshots

YouTubeBilibili
YouTube Picture-in-Picture demoBilibili Picture-in-Picture demo

Bilingual subtitles across platforms

CourseraYouTube
Coursera Picture-in-Picture bilingual subtitlesYouTube Picture-in-Picture bilingual subtitles
iQIYINetflix
iQIYI Picture-in-Picture bilingual subtitlesNetflix Picture-in-Picture bilingual subtitles; video is black due to DRM

Controls and Shortcuts

  • Open PiP: on a page with a playable video, click Open PiP in the extension popup, or press Shift + Alt/Opt + P on the page to toggle PiP on or off.
  • Customize shortcuts: open the extension’s All settings page, select a shortcut in Shortcuts, then press a new combination.
ActionDefault shortcut
Open PiPShift + Alt/Opt + P
Play or pauseSpace
Seek (5s by default)← / →
Adjust volume↓ / ↑
MuteM
SubtitlesC
FanmakuD
Danmaku inputEnter
Ffloating commentsAlt/Opt + C
Take screenshotAlt/Opt + P
Adjust playback speedShift + , / Shift + .
Step one frame, / .
Auto-adjust aspect ratioR
Resize PiPCtrl/Cmd + scroll wheel

Installation

Requires Chrome 116 or later. From the project directory, run npm ci and npm run build. Then open chrome://extensions, enable Developer mode, and load the dist/ directory.

Development

Requires Node.js 22 LTS or later. Install dependencies with npm ci, then run:

npm run lint
npm run typecheck
npm run build

Support

If you enjoy this project, you can buy me a cup of milk tea ヾ(´∀`)ノ

Buy Me a Coffee

bilingual-subtitles
brwoser-extension
captions
chrome-extension
danmaku
danmaku-player
picture-in-picture
screenshot
subtitles
subtitle-translation
video-controls
video-player