3

I'd like to migrate all my various google accounts into one so I don't have to remember five different ones (and also, some of these are kind of tasteless names that I made when I was a 14). The problem is that I don't want to risk losing my precious subscriptions by having to migrate them all manually. I have some basic python knowledge if there is an API i'll have to use to get this done.

8 Answers 8

2

There are multiple options available for transferring subscriptions from one YouTube account to another. Here are two free solutions, both of which use JavaScript:

- youtube-subscriptions-importer on GitHub

This program can be used online to transfer subscriptions. The GitHub page has step-by-step instructions, as well as a link to video instructions.

- JavaScript solution from ILikeToMakeStuff.com

This program can also be used online. Instructions are included on the web page, as well as a link to JSFiddle where the code is hosted.

The first option was last updated 3 years ago, and the second option was last updated almost 6 years ago, but both are free and worth a shot.

If you want to try to code your own solution, here's a link to the Subscriptions section of the YouTube API:

https://developers.google.com/youtube/v3/docs/subscriptions

2
  • "...risk losing my precious subscriptions...". Could you please clarify whether the above scripts will transfer subscriptions as well? Sep 29, 2019 at 10:33
  • @marikamitsos Yes, that's what both of those scripts were designed to do.
    – freginold
    Sep 30, 2019 at 9:06
8

I tried several of the options here, and they all seem to be outdated (i.e. not working) or overly complex. The only reason you'd want an automated solution, in my opinion, is if you have a huge list of subscriptions (hundreds or thousands) that you want to import in batch.

What I ended up doing was the following:

  1. Go to https://www.youtube.com/feed/channels with your "old" account logged in.
  2. Open up a new tab, go to youtube.com and switch to your "new account".
  3. In the tab from #1, open every subscription in a new tab (scroll-click on your mouse): this will open a new tab, but since you changed to your "new" account, you can click "subscribe" to subscribe to it.
    • Use CTRL+W to close a tab, CTRL+TAB to switch between tabs.

While this is manual, it had the added benefit (in my case) of allowing me to inspect what channels I actually did want to transfer: many of them hadn't uploaded in years, and some I wasn't interested in anymore.

1
  • 1
    Simple yet effective!
    – Matt Sims
    Jul 6, 2022 at 21:32
2

So I finally figured this out, and I turned out it didn't need a tech solution. I was unable to make much progress with the scripts because Google limits you to 80ish new subscriptions per day and I kept hitting that.

It turns out that the actual YouTube account that has subscriptions and playlists is a "brand account" which is owned by a Google account.

Basically to move your brand account, you can add another Google account as a co-owner of your brand account, in the advanced account settings, after clicking "manage permissions". Add the Google account that you want to move subscriptions to. After 24 hours you can use the destination account to change that setting again to make it the primary owner. Then you can remove access from the first account, and your subscriptions are now moved.

Comments and watch history don't seem to have been moved but that wasn't a problem for my case.

1

To piggy back on @Lambda Delta's answer, you can also move an account to another (either brand or personal). Beware that you will most likely lose your history/comments but all your subscriptions will be moved.

I'm a bit sad I lost my watch history, but everything else is there (purchases, playlists, watch later, liked videos, etc.) Also, the recommandations seems to be unchanged (which is good to me).

I can now let go of my original youtube account from 2007 and use my google account!

Here's how to do it.

0

For all these type of tasks I would suggest automation tools like Chromium Browser Automations (CBA).

However before effectively using that you first will need to gather all channel IDs you want to subscribe to. This can be done with a webscraper, via the API and via Google TakeOut.

After retrieving the channel IDs you should generate an import script for CBA. I used the following script...

function run() {
  const input = document.getElementById('in').value;
  const subs = input.split(/\r?\n/);

  const redirect = {
    "msgType": "userEvent",
    "data": "https://www.youtube.com/channel/",
    "evType": "redirect",
    "newValue": ""
  };

  const timer = {
    "data": "",
    "evType": "timer",
    "msgType": "userEvent",
    // Time in micro seconds before clicking the subscribe button
    "newValue": "5000"
  };

  const click = {
    "msgType": "userEvent",
    // Element selector for the subscribe button on the channel page
    "data": "#subscribe-button paper-button",
    "evType": "click",
    "newValue": ""
  };

  const actions = subs.map(sub => {
    const data = redirect.data + sub;
    return [{
        ...redirect,
        data
      },
      timer,
      click
    ];
  })

  const root = {
    "action": [].concat.apply([], actions),
    "name": "yt-subs",
    "level": "1",
    "isLeaf": true,
    "expanded": false,
    "loaded": true
  }

  console.log(root)
  document.getElementById('out').innerHTML = JSON.stringify(root);
}

Here you can use it on JSfiddle.

Run the script and copy the output into the import textbox of the CBA plugin (at the options page). Then open YouTube, assure that you're on the new account and play the imported script called "yt-subs".

0

Replying to the old post as I didn't find any suitable answer for this issue. I created a small python script to achieve this. These are the steps you need to follow:

  1. Login to your account and go to takeout.google.com
  2. Under 'Select data to include' select only youtube and then click on 'All YouTube data included' and select only 'Subscriptions'.
  3. Once your takeout is ready, download the data and you will find Subscriptions.csv file.
  4. Open your defaul browser and login to your new account.
  5. Run below python script, make sure your subscription.csv file is in the same directory.

import time

import pyautogui

import webbrowser

import pandas as pd

from screeninfo import get_monitors

data = pd.read_csv('subscriptions.csv')

url_list = data['Channel URL'].to_list()

if (len(get_monitors()) > 0 and get_monitors()[0].height == 1080 and get_monitors()[0].width == 1920):

for _url in url_list:

    webbrowser.open(_url)

    time.sleep(3)



    pyautogui.moveTo(1653,531,0)

    pyautogui.click()

    time.sleep(2)

    pyautogui.moveTo(886,56,0)

    pyautogui.click()

    time.sleep(2)
  1. Make sure you change the moveTo() parameter according to your screen dimension. These are coordinates on your screen where mouse click action will take place. On ubuntu you can use xdotool's 'xdotool getmouselocation' command.

Thats all. Python will keep opening the web browser, click on the given position and close the window untill all subscriptions url are handled.

0

You can achieve this functionality with a little scripting, and much less button pressing than is done in previous solutions. As stated, the chrome extensions don't work anymore and I don't use CBA. I do however use bash and replay attacks, which can be used to move YouTube subscriptions from one account to another.

I've annotated the process in a gist: https://gist.github.com/jackellenberger/eddcf1111732df97f84734fbf929fcfd

But the short version is that you can use chrome to capture a single subscription add request then pack a replay with n channel ids retrieved from a google takeout of your source-account. It's pretty straightforward if you're not afraid of using the chrome inspector and running a shell command. No install necessary!

-1

Use Google Takeout

By default it will export all the data from all the google services and the file might be quite large.

For your case in the Products part scroll to the bottom and choose "Youtube and Youtube Music",export it to your email(or other if you prefer). It would provide you with a link to your "Takeout.zip" file.

Extract the file and go to Takeout > Youtube and Youtube Music > subscriptions > subscriptions.json which would have the list of all the channels you are subscribed to.

3
  • And what to do wit it?
    – monstro
    Jan 15, 2021 at 9:47
  • when any app asks you to import your youtube subscriptions you can provide the .json file and it will read all the data from there. Similar to how you import/export phonebook contacts using .csv file. Feb 4, 2021 at 13:00
  • Any app asks me? Why would any app ask me anything? Like notepad? The question is - how to import .json to youtube?
    – monstro
    Feb 5, 2021 at 14:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.