SubFeed

Your algorithm

Every video gets a score. Move a slider and the feed re-ranks straight away.

Low favors brand-new videos. High keeps older ones in the mix.
Boost videos beating that channel's typical views.
Lift channels with fewer subscribers.
Push down repeat videos from the same channel.

More videos per channel uses a little more of your daily YouTube allowance. It takes effect on the next Refresh.

Accent color

These are made-up sample videos so you can try the sliders. Open Setup to connect your real subscriptions.

Channels

Connect your YouTube account

SubFeed reads your subscriptions straight from Google, so it needs a free key called a client ID. You create it once in Google Cloud Console, which takes about five minutes. Nothing here costs money.

Step 1. Open SubFeed at a web address

Use this to run SubFeed on your own computer. Google sign-in does not work when you double-click the file, so serve the folder first.

  1. Put index.html in its own folder.
  2. Open a terminal in that folder and run this command. On Windows, use python instead of python3.
python3 -m http.server 8000
  1. Open http://localhost:8000 in your browser and leave the terminal window running while you use SubFeed.

Use the same port every time. If you change it, add the new address in Google as well.

This page is not open from a web address (it looks like a file or a preview). Close it and open the localhost address from the steps above.

Use this to put SubFeed online so you can open it on any device. Upload index.html to any static host. The address it gives you must start with https://.

  • Netlify: drag the folder holding index.html onto Netlify Drop. You get an address like https://name.netlify.app.
  • Cloudflare Pages: in the Cloudflare dashboard, go to Workers & Pages, create an application and choose drag and drop (guide). You get https://name.pages.dev.
  • GitHub Pages: put index.html in a repository and turn on Pages in its settings (guide). You get https://username.github.io/repo.

Open your site at that address, then continue below. When you give Google the address, leave off everything after the host name. For GitHub Pages that means https://username.github.io without /repo.

Step 2. Create the client ID in Google Cloud Console

  1. Create a Google Cloud project. Any name works, and make sure it is the project selected at the top of the page afterwards.
  2. Open YouTube Data API v3 and press Enable.
  3. Open Google Auth Platform and press Get started. Enter an app name such as SubFeed and your email, choose External as the audience, then create it.
  4. Open Audience, find Test users, press Add users and add your own Google address. Without this, Google blocks your sign-in.
  5. Open Clients, press Create client and pick Web application as the type. Under Authorized JavaScript origins, press Add URI and paste this address:
  6. Press Create, then copy the Client ID it shows. It ends in .apps.googleusercontent.com.

Step 3. Paste your client ID

The client ID is stored in this browser only. SubFeed asks for read-only access, so it can see your subscriptions and public video details and cannot change anything on your account.

If Google shows an error

  • Access blocked or access_denied: your Google address is missing from Test users. Add it on the Audience page.
  • origin_mismatch: the address in Authorized JavaScript origins must match your browser's address bar exactly, including https, the port and no trailing slash.
  • Google hasn't verified this app: expected for a personal app. Press Continue, or Advanced and then Go to SubFeed.