"That's not source code."
It's the code that gets executed in your browser, and again, for the
average-joe website that just opens a dropdown menu or sends an ajax request
to fetch, let's say, some posts from the database, this IS exactly what the
author of the code wrote.
I talked about uglification later in my post.
"When you process source code, it's no longer source code."
Again, not every javascript code on websites is uglified or processed. Mostly
the big common libraries are, like jquery, but they are all free software
anyway.
"JavaScript also prevents users from doing basic tings on their
computers, like highlighting text with their cursor while reading an
article. A message popped up and told me "You can't do that!" "
You could open the console and delete the event handler. Again, it's
annoying, and I never claimed that website owners can't do annoying things
with javascript. But why then even use their website?
The crucial thing to understand is that modern websites are not like normal
programs. They consist of html/css markup, client side javascript and
server-side api services.
All those things together form the experience of the website. Or you could
say: it's composed of displaying/layout functionality, data processing
functionality and the data itself.
We don't own the data, it's not ours. We can also not controll the server
side processes nor own we the copyright for the layout/markup. Javascript is
one way of how websites can annoy us or make the service a miserable
experience.
Why was your website able to prevent you from marking the text? Because the
browser is allowing this feature, and this may be indeed controversal.
"What do you think youtube-dl does all the time?"
Clearly not providing a modified version of youtubes javascript that I can
run as a replacement. Otherwise I could load it in my browser and run youtube
with the modified version. I can't.
Imagine all of youtubes javascript code - all the bits and pieces scattered
throughout the dom - was free and you want to write a modification and share
it with others. Good luck!
It's their right to change their DOM and Backend API every single day, it's
not even unethical.
Then all you would go to waste (not that it was feasable to do in the first
place).