Skip to content
ordinaryets2addictPublic

About

A clean YouTube embed/search player with local playlists, favorites, subscriptions, and Google OAuth-powered YouTube subscription viewing.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

embednest-logo

EmbedNest

EmbedNest is an open-source YouTube embed/search player for opening videos in a clean embedded view, saving local playlists and favorites, and browsing YouTube/EmbedNest subscriptions.

Repository: https://github.com/ordinaryets2addict/EmbedNest

Features

  • Search YouTube videos through the server-side YouTube Data API.
  • Show channel matches, video stats, descriptions, and publisher info.
  • Open videos in a direct youtube.com/embed player.
  • Save watch history, favorites, watch later, playlists, and EmbedNest subscriptions locally in the browser.
  • Sign in with Google OAuth to view YouTube subscriptions with youtube.readonly.
  • Copy embed code, use theater mode, and share video pages.

Deploy your own EmbedNest

Some things to know:

Do not double-click worker.js or _worker.js. They are backend code for a hosted environment, so Windows Script Host will show a syntax error if it tries to run them directly.

For a quick visual preview, open open-website-preview.bat.

For the fully working local app, use the separate launcher:

  • ../embedtube/open-embedtube.bat

It keeps the local launcher version separate:

  • ../embedtube/index.html
  • ../embedtube/open-embedtube.bat
  • ../embedtube/start-local-server.ps1

Required Secret

Set this server-side environment variable before deploying:

YOUTUBE_API_KEY=your_youtube_data_api_key
GOOGLE_CLIENT_ID=your_google_oauth_client_id
GOOGLE_CLIENT_SECRET=your_google_oauth_client_secret
SESSION_SECRET=make_this_a_long_random_secret

The Google OAuth consent screen also needs this scope so the Subscriptions page can read the signed-in user's YouTube subscriptions:

https://www.googleapis.com/auth/youtube.readonly

After adding that scope, sign out and sign in again so Google grants the new permission. The YouTube source on the Subscriptions page uses Google's subscriptions.list with mine=true, so it shows the channels the signed-in Google account is actually subscribed to. The EmbedNest source is a separate local list created by the in-page Subscribe button.

Optional if your redirect URL is exactly /api/auth/callback on the deployed site:

GOOGLE_REDIRECT_URI=https://your-pages-domain.pages.dev/api/auth/callback

The browser should never receive this key. The _worker.js backend calls the official YouTube Data API through these routes:

  • /api/search?q=...&media=everything
  • /api/channels?q=...
  • /api/suggest?q=...
  • /api/video?id=...
  • /api/trending
  • /api/subscriptions
  • /api/log
  • /api/auth/login
  • /api/auth/callback
  • /api/auth/me
  • /api/auth/logout

Dislikes were removed. The site uses YouTube's official public fields for search results, video details, views, likes, publish date, description, channel links, and subscriber counts when available. Autocomplete suggestions use YouTube's public search suggestion endpoint through the server-side worker. Search can filter media with everything, live, videos, shorts, topic, and music. Shorts are classified by duration, topic videos by topic-channel signals, and music videos by YouTube's music category because YouTube's public Data API does not provide direct toggles for every YouTube UI category.

Cloudflare Pages Upload

Upload the files inside this folder, including:

  • index.html
  • embednest-logo.png
  • embednest-logo-transparent.png
  • github.png
  • icons/
  • _worker.js
  • .env.example
  • LICENSE

Cloudflare Pages uses _worker.js for the API routes. worker.js is kept as an editable source copy, but _worker.js is the file Cloudflare needs for the live site. The app title is EmbedNest - YouTube Embed Player for search-friendly wording while keeping the product name distinct.

License

MIT License. See LICENSE.

About

A clean YouTube embed/search player with local playlists, favorites, subscriptions, and Google OAuth-powered YouTube subscription viewing.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages