ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
131.17k stars 9.93k forks source link

Add support for MrDeepfakes #30764

Closed afterdelight closed 1 year ago

afterdelight commented 2 years ago

Checklist

Example URLs

https://mrdeepfakes.com/video/20/jessica-alba-dildo-masturbate-deep-fakes

Description

I tried the extractor from this PR https://github.com/ytdl-org/youtube-dl/pull/22390 but i got error: Traceback (most recent call last): File "c:\python\python39\lib\runpy.py", line 197, in _run_module_as_main return run_code(code, main_globals, None, File "c:\python\python39\lib\runpy.py", line 87, in run_code exec(code, run_globals) File "C:\Python\Python39\Scripts\youtube-dl.exe_main.py", line 7, in File "c:\python\python39\lib\site-packages\youtube_dl_init.py", line 475, in main real_main(argv) File "c:\python\python39\lib\site-packages\youtube_dl_init.py", line 465, in _real_main retcode = ydl.download(all_urls) File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2068, in download res = self.extract_info( File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 808, in extract_info return self.extract_info(url, ie, download, extra_info, process) File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 815, in wrapper return func(self, *args, **kwargs) File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 836, in extract_info ie_result = ie.extract(url) File "c:\python\python39\lib\site-packages\youtube_dl\extractor\common.py", line 534, in extract ie_result = self._real_extract(url) File "c:\python\python39\lib\site-packages\youtube_dl\extractor\mrdeepfakes.py", line 114, in _real_extract license_code = self._license_code_decrypt(license_code) File "c:\python\python39\lib\site-packages\youtube_dl\extractor\mrdeepfakes.py", line 59, in _license_code_decrypt k = int(f[:j + 1]) TypeError: slice indices must be integers or None or have an index method

gamer191 commented 2 years ago

imo Youtube-dl should adopt yt-dlp's policy about this https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#is-the-website-primarily-used-for-piracy

pukkandan commented 2 years ago

Thats a slippery slope. I can understand Copyright and DRM, but excluding deep fake seems to be an arbitrary decision. What if YT-DLP next decides, that any videos with the color red are banned. How far do you want to take this?

What if other packages start doing this, like cURL? and web browsers? Do you really want your software deciding what you can and cannot use it for? Are you an adult? Do you have agency? If so, I would strongly recommend that you rethink your position.

The comparison with curl and browsers is not appropriate. They allow you to use this site just by not intentionally blocking them. On the other hand ytdl/p needs to specifically add support for it. If the generic extractor happens to work for such a site, nobody is preventing you from using it. The question here is whether such sites should be explicitly supported.

one could argue that the videos in question are original works, or at least works covered under the parody exemption. The site in the original post is not reproducing copyrighted works, its creating new content inspired by existing media.

In fact, if all the site was doing was just reproducing existing works, it wouldn't need to exist the in the first place. The whole point of the site, is that its content that differs from the original work in a significant way. Please don't try to use the term piracy as an umbrella to remove anything you disagree with.

It may not violate copyright laws, but their legality is at best questionable: https://www.eff.org/deeplinks/2018/02/we-dont-need-new-laws-faked-videos-we-already-have-them

While youtube-dl's readme only excludes piracy sites from being supported, previous maintainers have also refused to add DRM-encumbered videos to the project. This anti-piracy/DRM policy is (most likely) not born out of any moral standing, but due to legal considerations of only wanting to allow download of "legally distributed content". My refusal to add deepfake sites are an extension of this consideration.

PS: yt-dlp also has a plugin system. So anyone can write a plugin for it and distribute it themselves

Edit: I am not trying to defend my stance here, nor am I trying to say that youtube-dl should follow the same policy. I just thought I should explain why I made such a decision since the topic was brought up by @gamer191 and @89z

afterdelight commented 2 years ago

pls somebody maek a mod for mrdeepfakes

pukkandan commented 2 years ago

If the generic extractor happens to work for such a site, nobody is preventing you from using it.

❯ yt-dlp "https://mrdeepfakes.com/get_file/1/b6142928a2c6ce610a8e67ab383b9ed07dcd8f84d0/0/20/20_480p.mp4/?br=888&rnd=1651180301901" --referer https://mrdeepfakes.com/video/20/jessica-alba-dildo-masturbate-deep-fakes
[generic] ?br=888&rnd=1651180301901: Requesting header
[redirect] Following redirect to https://media13.mrdeepfakes.com/remote_control.php?file=B64YTo0OntzOjQ6InRpbWUiO2k6MTY1MTE4MDY5ODtzOjU6ImxpbWl0IjtpOjE0NDI1MDtzOjQ6ImZpbGUiO3M6MjQ6Ii92aWRlb3MvMC8yMC8yMF80ODBwLm1wNCI7czoyOiJjdiI7czozMjoiNzBkMDNiYTJjZjFiYjM1ZDE3OGRmYWRkMzg5MjZmOWUiO30%3D
[generic] remote_control: Requesting header
[info] remote_control: Downloading 1 format(s): fmp4
[download] Destination: remote_control [remote_control].php
 download] 100% of 4.12MiB in 00:04

My guess is the site is using TLS fingerprinting.

No, they just appear to be signing the URL. Anyway, this doesn't solve OP's issue. If they wanted to manually go into dev tools and get the URL, they wouldn't be requesting an extractor...

Edit: removed all the replies to "the guy who keeps deleting all his comments"

garoto commented 2 years ago

@89z, dude, you should really stop deleting your previous comments, specially in a live thread, it is getting awkward.

garoto commented 2 years ago

don't tell me what to do. Unlike you Ive provided something constructive [1]. These threads aren't for your entertainment.

The "constructive feedback" you provide is of dubious usefulness to most of the thread starters on this issue tracker that you enjoy replying to with "wErkS fOr mE"-esque replies.

pukkandan took it all and forked this project and made it into something that is very relevant.

Unlike you Ive provided something constructive [...]

And you provided nothing other than your niche, specialized code that serves no real world purpose other than satisfying your own ego.

pukkandan commented 2 years ago

You should definitely post more comments in other YouTube-DL threads, detailing YT-DLP policies.

Will do! That is, as long as dirkf does not disapprove of me elaborating on comments related to yt-dlp

Thanks for the encouragement @89z 😆

gamer191 commented 2 years ago

Thats a slippery slope. I can understand Copyright and DRM, but excluding deep fake seems to be an arbitrary decision. What if YT-DLP next decides, that any videos with the color red are banned. How far do you want to take this?

What if other packages start doing this, like cURL? and web browsers? Do you really want your software deciding what you can and cannot use it for? Are you an adult? Do you have agency? If so, I would strongly recommend that you rethink your position.

No, it's not like cURL and web browsers blocking websites, because yt-dlp isn't blocking deepfake websites, and people can still make yt-dlp plugins for deepfake websites. A better comparison would be Mozilla's web compatibility team refusing to fix bug reports involving piracy websites not working on Firefox. Also, adding support for deepfake pornography websites is a slippery slope in itself: what if next someone requests support for a child or unconsentual pornography website?

Ultimately yt-dlp and youtube-dl can not support every website (at least not with the current lack of moderators), and by design moderators will have to make executive decisions (such as whether to redirect onion sites to clearweb sites). There's no such thing as a slippery slope into censorship, because youtube-dl was never uncensored software. In fact, youtube-dl wouldn't even need to outright ban deepfake sites, it would just need to deprioritise merging PRs for them, until the other 903 pull requests being "censored" can be merged/rejected.

Why should MrDeepFakes support be added before all the legal websites that more than 5 people want?

gamer191 commented 2 years ago

I just remembered that I can check my emails to see deleted messages:

Its pretty easy to debunk this statement. All one has to do, is ask this question: If presented with a pristine Pull Request, in which no technical or stylistic problem are found with the patch, would said Pull Request be approved by YT-DLP?

Would you ask the same thing about the 903 pending yt-dlp PRs? The answer is no, because merging PRs takes time and effort, and right now there are more important PRs!

YT-DLP is blocking deep fakes on a moral standpoint, rather than a legal one, or a technical one

Can you back up the fact that it's wouldn't create legal issues?

gamer191 commented 2 years ago

Will do! That is, as long as dirkf does not disapprove of me elaborating on comments related to yt-dlp

Speaking of @dirkf, I wonder what their view is about whether youtube-dl should add support for porn sites that specialise in deep fake

dirkf commented 2 years ago

The EFF article linked above is a useful summary.

I don't see a reason to exclude deep fake material explicitly, if indeed it's possible to distinguish it (I mean, that's the whole point ...). If we did that, what about a TV show like Doubletake (essentially an analog equivalent)?

Regarding the specific site, it may be pointless, distasteful (etc, I'm guessing) but if the terms for a new extractor are met it's fine to propose one. yt-dl can't be responsible for whether content on some website is illegal in some jurisdiction or whether someone installs yt-dl and downloads content that the person then uses in a way that is illegal in some jurisdiction.

That is, as long as dirkf does not disapprove of me elaborating on comments related to yt-dlp

Goose and gander.

pukkandan commented 2 years ago

but if the terms for a new extractor are met it's fine to propose one.

@dirkf The document does not mention DRM protection. Assuming you are not willing to accept extractors for downloading DRM-protected videos, you may want to update the document to reflect that

while deep fake, as far as I know, is currently just morally objectionable [2]

  1. https://wikipedia.org/wiki/Deepfake

@89z From the provided link:

Assembly Bill No. 602 provides individuals targeted by sexually explicit deepfake content made without their consent with a cause of action against the content's creator.

In the United Kingdom, producers of deepfake material can be prosecuted for harassment, but there are calls to make deepfake a specific crime;

there are multiple ways for citizens in Canada to deal with deepfakes if they are targeted by them.[155]

So it is not "just morally objectionable" in the above-mentioned jurisdictions. The page also does not say whether or not there are laws covering this in other countries, making it contrary (or at least irrelevant) to the point you are trying to make

But you cant then point to the YT-DLP sentence and say "well YT-DLP doesn't support it, so we shouldn't support it either". Since YT-DLP never justified their reason for not supporting it, then that justification falls on YouTube-DL.

For once, we agree. Despite any reason I provide, the burden of justification for the decision falls on ytdl itself. After all, these are 2 separate projects - though related. Mine is just one opinion which the maintainers can disagree with - as dirkf already have. Not sure what your reason is in bringing this up now

In absence of any explanation, people are left to make their own assumptions, as I have done.

Or, you could reply to the explanations stating they are in denial, make your own assumptions anyway, keep repeating your assumptions as-if it were fact, and then delete the relevant comments - as you have done

dirkf commented 2 years ago

Regarding DRM, see https://github.com/ytdl-org/youtube-dl/issues/30886#issuecomment-1107353423.

We have already used a fund of goodwill from GitHub. While intelligent technical opinion holds the concept of DRM as nonsensical, this is not our problem at the moment.

Deepfake (or other questionable) content is a different matter. An extractor for such content may be a useful forensic tool. It does not inherently require yt-dl to make available for distribution code that might be held to be intended to defeat so-called effective technical measures (unless the Governor of Missouri is deciding the case).

I considered amending the site support terms with a requirement to play the proposed content in a browser with DRM disabled. In practice, a yt-dl developer is going to make a similar check, whether by using a browser or otherwise, and (given the dumbing down of browser UIs) a non-technical user could find that requirement difficult to meet.

pukkandan commented 2 years ago

So it is not "just morally objectionable" in the above-mentioned jurisdictions. The page also does not say whether or not there are laws covering this in other countries, making it contrary (or at least irrelevant) to the point you are trying to make

I think I have not clearly stated my position until this point, so allow me to do so now. I think that YouTube-DL should act as a tool. Similar to a hammer, in that you can use a hammer for good or bad purpose. So if a browser can access a certain website, I think YouTube-DL should be able to access that website as well. I don't think YouTube-DL should be making decisions for a user what they can and cannot use it for.

And how exactly is that is a reply to the quoted comment? Your stance on the matter does not change the fact that the link posted does not corroborate (and in fact partially contradicts) your earlier comments

Again, you don't have to justify your decisions in regards to YT-DLP. Which is good, because you haven't.

It is not my problem if you are incapable of understanding my above comments. Luckily, other people don't seem to have the same issue.


It does not inherently require yt-dl to make available for distribution code that might be held to be intended to defeat so-called effective technical measures

The same could be argued for piracy sites, but I get your point

I considered amending the site support terms with a requirement to play the proposed content in a browser with DRM disabled. ... and (given the dumbing down of browser UIs) a non-technical user could find that requirement difficult to meet.

Imo, it needs to be documented somewhere as an official policy. It's is not important if it can be enforced for a normal user. You could add it to the FAQ instead if you think it would be too confusing in the issue template.

On second thought, a lot of the confusion regarding yt-dlp's DRM policy was likely due to the addition of the --allow-unplayable-formats option. If you aren't getting issues of people asking to support DRM'd content (that they know is DRM), ignore this suggestion

PS: Sorry for off topic. Thought it should be addressed anyway since the topic came up

(unless the Governor of Missouri is deciding the case).

🤣

dirkf commented 2 years ago

The point was taken and another reason why I haven't actualised the suggestion.

afterdelight commented 2 years ago

is your pov connected to ukrainenian support incident lately?

dirkf commented 2 years ago

Not your suggestion, rather 89z's:

... This test ... Is a bad test, in my opinion

There could be a big demand for porn videos with the heads of the couple magically transformed into Vlad the Invader and his SoGay Lover. I'm happy to accept a PR, but I'm not personally putting a high priority on this site. (edit) But as we have a PR and a potential fix for it, the threshold is lowered.

gamer191 commented 2 years ago

I don't see a reason to exclude deep fake material explicitly, if indeed it's possible to distinguish it (I mean, that's the whole point ...). If we did that, what about a TV show like Doubletake (essentially an analog equivalent)?

Did Doubletake contain porn? We aren't talking about deep fakes in general, just deepfake porn.

Regarding DRM, see #30886 (comment).

In that case, can I suggest updating https://github.com/ytdl-org/youtube-dl/issues/30770#issuecomment-1078984501 to mention that?

An extractor for such content may be a useful forensic tool

I would be very surprised if any government in the world relies on Youtube-dl and doesn't have the capability to create an extractor themselves

On second thought, a lot of the confusion regarding yt-dlp's DRM policy was likely due to the addition of the --allow-unplayable-formats option

See https://github.com/ytdl-org/youtube-dl/issues/30770#issuecomment-1078984501

ukrainenian support incident

I don't know what you're talking about

gamer191-2 commented 2 years ago

@89z I agree, this discussion has gotten very off-topic. As such, I am going to delete all my off-topic* comments, but they can be found here

*off-topic referring to anything that's just plain arguing. Constructive discussion about whether this extractor gets added is not off-topic, in my opinion. On that note, I will happily respond to any further constructive discussion about whether to implement this extractor, or not.

EDIT: I have finished removing all my comments which I deem off-topic

pukkandan commented 2 years ago

Actually, we all missed that this issue is a duplicate of https://github.com/ytdl-org/youtube-dl/issues/23685

afterdelight commented 2 years ago

are those all the needed changes?

afterdelight commented 2 years ago

what about 1080p resolution which is need to log in?

afterdelight commented 2 years ago

ok

afterdelight commented 2 years ago

how many u want for a complete fork

dirkf commented 2 years ago

Regarding DRM, see #30886 (comment).

In that case, can I suggest updating #30770 (comment) to mention that?

This should go in the FAQ. I believe the statements are complementary.

github-userx commented 2 years ago

@89z @dirkf I tried to use your guys commits and added the new mrdeepfakes.py to my extractors directory as well as edited the extractors.py file but I’m getting HTTP error 402 forbidden.

https://github.com/yt-dlp/yt-dlp/commit/98459fbd1a6de15e3ccfe909c006241485a9dd60

Does it already work for you? In the past ive used Firefox VideoDownloadHelper to extract the MP4 link and exported my browsers cookies & referrer to then hand these information over to youtube-dl.

afterdelight commented 2 years ago

it should be discussed here https://github.com/ytdl-org/youtube-dl/pull/22390

github-userx commented 2 years ago

User 89z wanted to sell me an extractor for $99 lol

github-userx commented 2 years ago

Message ID: @.***>All fine. I just thought your offer was ridiculous (100$ for a small plugin) and I am not a fan of OpenSource projects being mixed with commercial things 

afterdelight commented 2 years ago

it should cost $5

gamer191 commented 2 years ago

it should cost $5

A little bird told me that if you create it yourself then it will be completely free

afterdelight commented 2 years ago

yes

afterdelight commented 2 years ago

then its $10 for two hours

gamer191 commented 2 years ago

then its $10 for two hours

Actually, it's about $92 for two hours, but I do like your enthusiasm

afterdelight commented 2 years ago

then how much is the minimum wage in the us. i live in the 3rd country. i got $10 for cleaning shoes for 2 hours everyday. then i dig for left over rice on McDonald garbage bin so i can save moiney. mmmmmm delicious

raffaem commented 1 year ago

Checklist

* [ x] I'm reporting a new site support request

* [ x] I've verified that I'm running youtube-dl version **2021.12.17**

* [x ] I've checked that all provided URLs are alive and playable in a browser

* [ x] I've checked that none of provided URLs violate any copyrights

* [ x] I've searched the bugtracker for similar site support requests including closed ones

Example URLs

https://mrdeepfakes.com/video/20/jessica-alba-dildo-masturbate-deep-fakes

Description

I tried the extractor from this PR #22390 but i got error: Traceback (most recent call last): File "c:\python\python39\lib\runpy.py", line 197, in _run_module_as_main return run_code(code, main_globals, None, File "c:\python\python39\lib\runpy.py", line 87, in run_code exec(code, run_globals) File "C:\Python\Python39\Scripts\youtube-dl.exe_main.py", line 7, in File "c:\python\python39\lib\site-packages\youtube_dl_init.py", line 475, in main real_main(argv) File "c:\python\python39\lib\site-packages\youtube_dl_init.py", line 465, in _real_main retcode = ydl.download(all_urls) File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 2068, in download res = self.extract_info( File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 808, in extract_info return self.extract_info(url, ie, download, extra_info, process) File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 815, in wrapper return func(self, *args, **kwargs) File "c:\python\python39\lib\site-packages\youtube_dl\YoutubeDL.py", line 836, in extract_info ie_result = ie.extract(url) File "c:\python\python39\lib\site-packages\youtube_dl\extractor\common.py", line 534, in extract ie_result = self._real_extract(url) File "c:\python\python39\lib\site-packages\youtube_dl\extractor\mrdeepfakes.py", line 114, in _real_extract license_code = self._license_code_decrypt(license_code) File "c:\python\python39\lib\site-packages\youtube_dl\extractor\mrdeepfakes.py", line 59, in _license_code_decrypt k = int(f[:j + 1]) TypeError: slice indices must be integers or None or have an index method

But is it normal that the link point to a porn video?

afterdelight commented 1 year ago

yes, it is a porn website mate

github-userx commented 1 year ago

To be fair, I don’t think @89z realized that asking for $100 compensation in an OpenSource and community driven project is not common.

dirkf commented 1 year ago

Completed in https://github.com/ytdl-org/youtube-dl/commit/1a4fbe8462f5e531a891aeac7db6c0bde49c5536.