Copy YouTube Annotations

Easily copy annotations between your videos

What is this website?

This page describes how to copy YouTube annotations across videos. It essentially helps you liberate your annotations data, modify it at will, and upload it again to multiple videos. Everything is done with client-side JavaScript.

I have only tested this script in Firefox and Chrome.

This website is free to use. If you find it useful, please make a donation. I greatly appreciate any support!


Show other donation options: Bitcoin, Square Cash.

Other donation options:

Contact me at stefaNStefansundinCom if none of the above work.

Step 1: Get annotation data

Once you see the XML, right click, view page source, and copy everything.

Note: All this input box does is redirect you to YouTube. You don't need to use this box if you have hundreds of videos, you can simply go directly to the youtube.com url.

Step 2: Paste the XML

Put the XML into this box.

Note: If you have ampersands (&) in a text or if you use urls, make sure the ampersands are escaped! This means all & should be escaped like &. If you copy using view page source, then this should happen automatically!

Warning: Your XML code contains unescaped ampersands!

Step 3: Modify the XML (Optional)

This is your chance to do things the YouTube developers did not think of. A few examples:

Step 4: Get an auth_token

You need to get an auth_token to give this script the ability to update your videos, and put it in the auth_token box below. The auth_token is time dependent and will eventually stop working (I am not sure how long).

To get the auth_token, you can either search for it in the source code in the YouTube annotations editor, or you can install a userscript I made that simplifies getting the auth_token. To use it in Firefox, you need Greasemonkey, for Chrome you need Tampermonkey.

Once you have the userscript, a text field will appear in the lower right of the YouTube annotations editor with an auth_token.

Put the auth_token in this text field:

Step 5: Delete! (Optional)

At this stage, you can delete the annotation if you want. This will only delete them from the video you fetched them from. The deletion will be published automatically.

Step 6: Destination videos

Put a list of destination video ids or urls in this box.

Step 7: Copy!

When you click the button below, the annotations will be copied. They are not published automatically.

You should first verify that the annotations were copied correctly by looking at the draft version with the YouTube annotation editor.

If it didn't work and the annotations weren't copied, use Firebug and check the Network tab and see if the result was anything other than "200 Ok".

Note that "InVideo Programming" annotations are automatically removed since they otherwise will cause the copy to fail. You can try to remove them manually if you encounter problems (they have ids that start with channel:).


The actions you perform above will be printed here.


Made by Stefan Sundin.

You can browse my other projects, or visit my personal website.