Hopefully, it wouldn't require as much effort as when a lot of the UNIX utilities were rewritten to get properly licensed versions back in the 80s - I remember a description of how they were rewritten from being cpu-optimized to being memory-optimized to avoid any code similarities.
The trick, I guess, would be to restructure the code so that the new "dl-webvideos" project would be hard to construe as a continuation of the original project.
The other trick would be, that the new solution has to be started fast to avoid losing momentum.
Youtube-dl was great and it's huge loss but it seems any efforts in improving or maintaining it will just be harder now. Instead if we could focus that energy on building something robust and resistant to such actions we might actually have solved this.
There are plenty of alternatives to Youtube, a bunch of them defunct. Youtube is irrelevant to this conversation; the DMCA takedown would have been equally effective had the copyrighted URLs been from Vimeo or Dailymotion or any other project that dies in a year because its creators don’t understand what makes a video site (and `youtube-dl`) is the community, not the tech behind it.
I think a better choice would be to fork/branch wget or curl and maintain a "supercurl" or "curl2" whose superset of curl functions just happens to be the merged functions of youtube-dl.
e.g. pip install wvdl-plugin-youtube
The name is good, there's a lot of really legal use cases -- downloading properly licensed videos for offline usage, archiving your own creations, etc.
The fundamental problem was that in the README and elsewhere, there were examples of ripping copyrighted content.
It would've been better to use examples of libre/public domain content, but I'm not sure how they can un-sail that ship.
The real solution is that we use the decentralized version control system as intended, and make this impossible to DMCA-away.
The only options are to move development to a server located somewhere beyond the reach of the DMCA and similarly take it off all repositories or to give up on making it possible to download every (or even most) videos from youtube.
- I'm not familiar with the ytdl codebase, but I believe its already structured as a general framework, with separate per-site extraction functions. The central framework should be stored in a "webvideo-dl" repo, and the separate extraction functions should be contained under separate repos - e.g. "wvdl-plugin-youtube".
This solves two problems:
1. If "wvdl-plugin-youtube" is DMCA'ed, the rest of the project continues to function.
2. Separate "plugins" can be maintained by separate teams. It sounds like the original youtube-dl was already running behind on responding to issues and PRs, prompting the creation of the youtube-dlc fork.