I did a brief search of Firefox extensions, but couldn't find anything. Most of the ad-related YouTube extensions seemed devoted to blocking ads, rather than archiving and cataloguing them.
My current workflow is as follows:
Right-click on the video player, select "Copy debug info"
Alt+Tab to a text editor
Ctrl+V the debug info into text editor
Ctrl+F for "addocid"
Ctrl+C the advertisment video id
Alt+Tab back to browser
Ctrl+N to open new browser window
Type "youtu.be/"
Ctrl+V the video id
Wait a fraction of a second for the URL to redirect from youtu.be/[video_id] to https://www.youtube.com/watch?v=[video_id]&feature=youtu.be to https://www.youtube.com/watch?v=[video_id]
Ctrl+D to bookmark the video
Ctrl+W to close the browser window
I can usually do this in under 15 seconds, but I would like to find a faster (or completely automatic) method. Does anyone have any recommendations?
P.S. As for why I want to do this, I like to have the option of rewatching or referencing an interesting or funny ad at a later date. Most ads are unlisted videos, which makes them nigh impossible to look up.
Are you building a collection of ads that you feel will be lost media?
Yeah, more or less. Every YouTube pre-roll advertisement is also just a regular video on the platform, but often the video is often unlisted. I've had a couple cases where I thought "I remember a funny ad about that" or "I remember a unique cut of this movie trailer" once the ad is no longer running, and I haven't been able to find them. A way to autosave every pre-roll ad would give me the option of looking them up later.
No matter how you extract the code, this will be hacky. The problem with this approach is that you are entirely dependent on the YouTube backend. They will not notify you when they change their code/API. They will not comment their code.
In the past, this has led to a considerable development investment of projects like NewPipe where they have to fix somethong every few months as there is a backend change.
I am still thinking about your problem, but I am unsure whether the approach of extracting from JS works (mid term).
Why not do the steps you outlined above as a macro on your keyboard? This eliminates the need for JS. To extract the video URL, you could use some RegEx automatically or Ctrl+F. Just some thoughts. I am still invested into this weird request :)