A Chrome extension that pins YouTube videos to the top of your homepage for quick access. Think of it as a lightweight alternative to Watch Later playlists.
I built this because I wanted a simpler way to keep track of videos I actually plan to watch. Watch Later playlists get cluttered fast, and I just needed something straightforward - pin a few videos, they stay at the top of my homepage, done.
- Pin videos from the video page or by hovering over thumbnails
- Pinned videos appear at the top of your YouTube homepage
- Maximum of 9 pinned videos (keeps things manageable)
- Pin and unpin without page reloads
- Designed to match YouTube's interface
- Works on desktop, tablet, and mobile layouts
- Your pins are saved locally in Chrome
- Clone or download this repository
bash
git clone https://github.com/yourusername/youtube-pin.git- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" in the top-right corner
- Click "Load unpacked" and select the
youtube-pinfolder - Go to YouTube and start pinning videos
There are two ways to pin a video:
On a video page: Look for the Pin button next to the Subscribe button. Click it to pin.
On the homepage: Hover over any video thumbnail. A pin button appears in the top-right corner. Click it.
Click the Pinned button on a video page, or click the Unpin button below any pinned video in your pinned section, or hover over a pinned thumbnail and click the checkmark.
You can pin up to 9 videos. When you hit the limit, the extension will let you know. Just unpin something to make room.
Built with vanilla JavaScript, no frameworks. Uses Chrome's Manifest V3 and storage API. The extension watches for YouTube's page changes using MutationObserver to handle their single-page app navigation.
Files:
manifest.json- Extension configurationcontent.js- All the logicstyles.css- Styling to match YouTubeREADME.md- This file
Works in Chrome, Edge, Brave, and Opera. Firefox support is limited due to Manifest V3 differences.
Want more than 9 pins? Edit line 94 and 135 in content.js:
javascript
if (pinnedVideos.length >= 9) { // Change this numberWant a different grid layout? Edit styles.css:
css
.yt-pinned-grid {
grid-template-columns: repeat(3, 1fr); /* Change 3 to 4 or 5 */
}This extension doesn't collect or send any data anywhere. Everything stays local in your browser. No tracking, no analytics, nothing.
Found a bug? Have an idea? Open an issue or submit a pull request.
To contribute:
- Fork this repo
- Make your changes
- Test them in Chrome
- Submit a pull request
MIT License - do whatever you want with this code.
If something breaks or you have questions, open an issue on GitHub.
Built because Watch Later needed a simpler alternative.