Repository: youtube-dl
Issue: Possibility of changing the project license
Labels: request,bug

_So I know this is going to be a controversial suggestion, and please take the filing of this issue as just that, a suggestion._

tl;dr - The current public domain license causes licensing issues as well as contributing issues that could be fixed with something like Apache.  Adopting another license is a trivial amount of effort, involves no operational changes to the project, and has some non-zero possibility of providing legal or contributory advantages.
## Problems with Current License

The current license [Unlicense](http://unlicense.org) has a variety of issues:
1. **It's not a comprehensive public domain license in the first place.** Because of it's wording, it may not be applicable in some countries due to the legal differences in the definition of public domain. IANAL, so I cannot claim expertise, but I know the community has wrestled with this issue before, and is why CC0 is generally considered a better alternative, since in cases where public domain does not really exist, CC0 falls back and becomes a normal, lax copyright license that gives almost the same effects.
2. **It prevents the inclusion of most third-party code or libraries.** Pretty much any Python library (many of which are MIT, BSD, or Apache licensed), any StackOverflow code, or even code copied from other libraries indirectly (see #10557) cannot be included unless explicitly authorized by _all_ copyright holders of such software. That's because the licenses are incompatible. Getting authors' permissions for every included snippet of code is cumbersome, and creates a lot of extra work.
3. **It prevents many corporate contributors from contributing.** Speaking from personal experience as a Google employee, it is significantly more difficult (albeit not impossible) for me to submit code to this project during work hours because of the license. Many large companies have policies allowing employees to contribute to open source projects, but if the license is not one reviewed or approved by the company (usually Apache, GPL, etc.) then you have to jump through more hoops. (This is because all contributions made during work hours or with work equipment is property of the company, so you need company permission to actually release it under the given license.) To be more concrete with my anecdote, for me, if this project was under the Apache or GPL license, I could contribute indefinitely and without approval. But as it stands, I need to submit every patch I plan on uploading along with the project's information to a compliance committee who has to review my change and ensure it's OK.
### Counterpoints
1. This is a small project, so there's really no need to care about whether public domain applies in certain countries. Nobody is going to sue the youtube-dl contributors.
2. This project uses very little third-party code, so the issues I mentioned regarding licensing really don't apply often.
3. I don't have any non-anecdotal evidence on what the actual impact of these issues are on the project, or whether it actually affects the number of contributors.
### Counter-counterpoints
1. Better safe than sorry.
2. Changing the license takes less effort than asking permission for even a single inclusion of third-party code.
3. There is the possibility there is an impact, and the current license is holding back people from contributing that we don't know about.
## Why Public Domain Isn't Necessary

This is a more personal opinion, but I believe public domain is unnecessary. In other words, presuming the current authors already don't care about copyright or its enforcement for this project, there is _no advantage_ that the public domain gives over a standard relaxed license like the Apache license.

The differences between Unlicense and Apache are (roughly):
- The copyright notice and license must be distributed along with the project. [Trivial]
- Modified copies must contain notices of the files changed. [Doesn't matter if copyright isn't being enforced by the authors.]
- Apache provides protections to the other contributors and users against patent and copyright claims from malicious contributors of code. [Like above, probably not an issue, but better safe than sorry.]

My general position is that **adopting another license is a trivial amount of effort, involves no operational changes to the project, and has some non-zero possibility of providing legal or contributory advantages**. The contributors don't have to do anything special. The project can be packaged and distributed as it has always been done. The only effort is the changing of a single text file. And the result will be additional legal protection (if it ever becomes needed) as well as the possibility of easier development and more contributors.
## Possible Replacement Licenses

If by now you are at least convinced of choosing a new license, I three recommendations:
- **[CC0](https://creativecommons.org/publicdomain/zero/1.0/)**: fixes _some_ of the issues I mentioned, but not all. A good compromise if people are really insistent on sticking with public domain.
- **[Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)**: the license I've mentioned many times, and will solve all the problems I mentioned with no operational changes
- **[GPL 3.0](https://www.gnu.org/licenses/gpl-3.0.en.html)**: a stronger license, and the one used by MPV, that requires the license propagate into modified copies. If the authors don't plan on enforcing copyright, it doesn't really make a difference since the whole point of the GPL is to allow authors to sue if it's not followed. Nonetheless, I like it personally because I'm a free software advocate, but that's a separate concern from the other stuff I've mentioned.

There are, of course, many other choices, but I don't recommend licenses like MIT or BSD. They don't provide the same patent protections as the Apache license, and otherwise have zero advantage over Apache. I know the Apache license is longer and has more legalese, but that's just because it's an actual, modern software license.
## Summary

I know I've said a lot, and this is pretty much an essay, but it would be really cool if it was easier for me, and I presume others, to contribute code to and include third-party code in this project freely. I don't presume to be a core contributor to this project, so I hope this essay does not sound too prescriptive. If you all decide just to close this, then obviously that's your decision. But I hope I could get at least your consideration, because the amount of effort that would be saved for me alone would outweigh even the amount of effort I put into writing this bug report.