1.7 KiB

YouTube Subscriptions to OPML

This repo contains a small collection of scripts that I used to turn my YouTube subscriptions into an OPML file for import in to Feedbin. I also wrote a blog post that goes into detail on how each bit works:


The scripts have only been run on a Linux system using GNU coreutils. They will probably need some tweaking to run on other UNIX-like systems.

  • Scraper
  • jaq
  • curl
  • Python
  • awk
  • GNU make (I haven't tested non-GNU make)


  1. Visit your subscriptions page

  2. Repeatedly scroll to the end of the page to make them all load

  3. Run the following in the JavaScript console to copy the list of subscriptions to you clipboard as JSON array:

    copy(JSON.stringify(Array.from(new Set(''), (link) => link.href))).filter((x) => !x.includes('/channel/')), null, 2))

    Note: I only tested the above on Firefox.

    Also why do this instead of processing the subscriptions.csv from Google Takeout?

    1. Takeout generates multiple gigabytes of archives I have to download to get the CSV file.
    2. It's slow to generate. This process can be done whenever you want.
  4. Paste the list of subscriptions into subscriptions.json.

  5. Run make fetch to fetch the channel pages of all the subscriptions. This only needs to be run once.

  6. Run make channel-json to extract info from each channel page.

  7. Run make subscriptions.opml to generate the OPML file.