开发者群体的巨大胜利:YouTube-dl荣耀回归,GitHub借以成立百万美元基金会

2020 年 11 月 19 日

开发者群体的巨大胜利:YouTube-dl荣耀回归,GitHub借以成立百万美元基金会

一波多折的YouTube-dl下架事件最终是开发者群体们获得了胜利,该项目在封25天之后重新回归,这是开发者的专属视频下载器吗?


YouTube-dl 荣耀回归


YouTube-dl 是一个开源的 Python 库,用户通过该库可以从七百多个视频平台下载付费源文件,包括 YouTube、优酷、爱奇艺、B 站等国内外主流平台,这种特质让该项目受到了开发者的热烈欢迎,在 GitHub 平台拥有 7.2 万多 star。



然而,美国唱片协会(RIAA)却在 10 月份向 GitHub 发出诉讼通知,称该项目违反了《数字千年版权法案》(DMCA)第 1201 条款为由要求将其下架。随后,GitHub 被迫下架了该项目,但这引起了开发者们的强烈抗议,他们复制了大量的代码副本疯狂传播,短短几天时间,平台上已经可以搜索出 4000 多个副本,并且很多开发者将矛头直指 GitHub,认为其“随意封禁,有违开源精神”。(参考 GitHub 在对待伊朗籍开发者参与和创立的开源项目时的态度)


面对开发者群体的反击,RIAA 一再向 GitHub 施压要求其立即阻止开发者的报复行动,被夹在中间的 GitHub 迫于压力向开发者发出警告:如再次创建 YouTube-dl 副本,可能面临封号的危险。


11 月初,TypeScript 开发者 Resynth 发文称,代码托管服务 GitHub 的全部源代码被泄露。他表示,在向官方 GitHub DMCA 提交的可疑文件中,一个身份不明的人利用 GitHub 应用程序中的一个漏洞冒充 GitHub CEO Nat Friedman 上传了机密源代码。随后,Nat Friedman 迅速在 Hackernews 的帖子上做了回复。他表示 GitHub 没有被黑客入侵,一切都很正常。


有开发者指出,此次泄露事件与 GitHub 下架youtube-dl和后续一系列动作有关,开发者是在用这种方式进行抗争。


就在 GitHub 左右为难之际,其代理律师公司电子前沿基金会 EFF(Electronic Frontier Foundation)发出审理通知并指出,YouTube-dl 未违反 DMCA 第 1201 条款。随后,GitHub 官方发布博客宣称该项目荣耀回归:


在GitHub,我们的核心任务在于支持开源与开发者社区,同时也为开发者的成果遭到打击而感到痛心(特别是考虑到youtube-dl项目有着重要的合法用途)。我们的行动始终遵循DMCA等法律所提出的流程,这也是我们此前被迫下架youtube-dl项目的原因所在。但根据目前的情况来看,该项目并未规避对受版权保护作品进行有效控制的技术措施(TPM),因此我们决定将其恢复上线、强调GitHub一直以来所秉持的开发者至上价值观。


NatFriedman 也转发并评论了该事件:


Wearetaking a stand for developers and havereinstatedthe youtube-dl repo. Section 1201 of the DMCA is brokenand needs to be fixed. Developers should have the freedom to tinker. That's how you get great tools like .


我们站在开发者的立场上,恢复了youtube-dl 库。DMCA的1201章节已经过时,需要重新修订。开发人员可以自由进行修补。这就是为什么你能获得像youtube-dl这样优秀的工具的原因。



DMCA 到底规定了什么?


根据 GitHub 的官方回应,大多数下架通报指控该项目存在版权侵犯行为,即某人以侵犯权利的方式使用受到版权保护的作品(通常为软件代码)。但很多开发者已经注意到,youtube-dl 的下架通报不止于此——其中提到项目代码存在规避版权素材访问或复制的技术措施,因此有违 DMCA 第 1201 条的要求。


第 1201 条诞生于上世纪九十年代末,但刚刚出现时人们并未意识到它会给后来的软件使用造成严重影响。第 1201 条规定,对于一切能够绕过版权作品访问或复制控制机制的技术(包括其源代码),无论是否导致版权侵犯,相关使用或分发行为皆为非法。也正是这一条,导致了之前 youtube-dl 的暂时下架。


但通过 GitHub 的研究了解,单纯由于代码可被用于访问受版权保护的作品,并不代表项目无法被用于非侵权用途。我们还了解到,该项目的代码具有多种合法使用方式,包括调整访问内容的播放速度、在保障人权的斗争行动中保留证据、协助记者进行事实核查以及下载符合知识共享许可或公开发布的视频等等。另外,我们发现通告中提到项目所有者可以删除涉嫌侵权的部分,因此我们决定采取这种处理方式。项目所有者可以随时做出更改,或者结合自身理由发出反下架通告。


Youtube-dl 采取的正是这种方法,在一位分叉所有者根据通告做出更改并应用补丁之后,即可恢复上架。


在此之后,我们又获得了新的信息,证明 youtube-dl 项目实际上并未违反 DMCA 的反规避条款,因此相关指控并不具备法律效力。再有,维护者还通过引用受版权保护视频的单元测试对项目进行了补丁修复,借此解决侵权指控。以此为基础,我们最终全面恢复了 youtube-dl 项目,包括面向各个分叉的恢复选项。


GitHub 成立百万美元基金会


GitHub 方面认为自己在处理 DMCA 指控的过程中一直努力保护开发人员,并在下架政策方面充分考虑到开发者的感受。为了解决这类问题,GitHub 设计出以下开发者保护方法:


考虑到非必要下架会给开发者带来额外成本,因此我们会确保在下架之前发布完整通知。我们将可能被以侵权方式使用代码的情形,同在设计上要求以特定方式使用代码的情形明确区分开来。我们还意识到,代码完全可以在不违反法律的前提下(例如合理使用)提供对版权保护内容的访问。综合考虑实际情况,如果确定下架通告中强调的部分并不实际构成对版权保护作品的反规避条款,我们将继续保持项目的正常运营。


我们为1201条设置了较常规侵权指控更高的执行标准。面对基于1201条的投诉,我们要求投诉人提供与反规避条款相关的更多描述信息,包括说明所投诉项目具体以哪些技术方式或设计思路规避版权保护。在后文中,我们将详细介绍GitHub计划如何进一步加强这一流程。


在完成内容下架之后,我们会向所有受到影响的repo所有者发出下架通知,并为他们提供申诉选项。我们允许repo所有者通过调整解决通告中的投诉观点,并在问题解决之后将项目重新上架。


我们以透明方式向整个开发者社区公开DMCA下架通告。在处理DMCA下架通告或反下架通告时,我们都会将文本内容发布至DMCA repo当中,同时明确标注处理日期(而非收到侵权投诉的日期),确保每一位GitHub用户都可看到通知内容以及我们的处理依据。


此外,如果坚持认为项目不应下架,则开发者可能需要承担个人责任并支付法律诉讼费用。为了帮助他们, GitHub 将建立开发者保护基金并捐赠 100 万美元,借此保护 GitHub 上的开源开发者免受基于《美国数字千年版权法案》(DMCA)第 1201 条提出的下架影响。我们将立即与社区中其他成员共同建立此基基金,并采取相应措施共同保护开发者权益、维护开发者协作能力。


若有其他各方希望为开发者提供法律方面的支持,亦可参与软件自由法律中心与电子前沿基金会的贡献阵营。


与此同时,GitHub 特别强调对 DMCA 反规避条款做出修改,借此鼓励开发者构建出更多以 youtube-dl 为代表的、对社会有益的工具。目前,美国版权局正在对 1201 反规避条款进行第八轮三年一度的例外审查。GitHub 将关注相关进度并及时发布最新消息。如果大家也认为 DMCA 的限制过于严苛,并希望能在反规避条款中做出修改,也可直接与版权局联系。


参考链接:


https://github.blog/2020-11-16-standing-up-for-developers-youtube-dl-is-back/


2020 年 11 月 19 日 14:011049

评论

发布
暂无评论
发现更多内容

架构师训练营 1 期第 7 周:性能优化(一)- 作业

piercebn

架构师训练营第 1 期

穿越时空的回响:华为欧洲创新日的蝴蝶振翅

脑极体

区块链将颠覆和改变传统金融业底层逻辑

CECBC区块链专委会

区块链 数字经济

wee3 代码重构 学习总结

杨斌

查漏补缺:166个最常用的Linux命令,哪些你还不知道?

小Q

Java Linux 程序员 操作系统 开发

架构师训练营第 1 期 - 第七周作业

Todd-Lee

架构师训练营第 1 期

交易所跟单系统开发,合约交易所搭建服务商

135深圳3055源中瑞8032

数字货币交易所系统定制,场外币币撮合交易平台开发

135深圳3055源中瑞8032

week3 代码重构 -作业一

杨斌

LeetCode题解:231. 2的幂,位运算取二进制中最右边的1,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

Spring+多线程+集合+MVC+数据结构算法 +MyBatis源码学习笔记分享

Geek_71bb95

Java 程序员 架构 面试 编程语言

科学家联合提出基于区块链的追溯框架

CECBC区块链专委会

区块链 农业

架构师训练营第 1 期 - 第七周总结

Todd-Lee

架构师训练营第 1 期

OTC支付系统开发,区块链支付系统方案

135深圳3055源中瑞8032

Fedora32安装和卸载openjdk11

ilovealt

Linux Openjdk

在Idea中使用JUnit单元测试

jiangling500

单元测试 IDEA JUnit

架構師訓練營第 1 期 - 第 07 周總結

Panda

架構師訓練營第 1 期

架构师训练营 - 第 7 周课后作业(1 期)

阿甘

架构师训练营 - 第三周课后练习

joshuamai

Week 7 性能优化总结

黄立

GitHub上最火的SpringCloud微服务商城系统项目,附全套教程

Geek_71bb95

Java 程序员 架构 面试 编程语言

区块链usdt承兑商支付系统开发,usdt跑分系统搭建

WX13823153201

极客大学 - 架构师训练营 第七周作业

9527

一定要偷偷学,偷偷进步!腾讯内部首发Java多线程、高并发、设计模式“满级”笔记

Java架构追梦

Java 架构 面试 设计模式 多线程与高并发

目标检测之YOLOv2

Dreamer

区块链USDT钱包开发方案,数字资产理财钱包开发

135深圳3055源中瑞8032

Week 7 作业一

黄立

区块链追溯系统迎来新突破

CECBC区块链专委会

区块链 溯源 产品溯源

三、设计模式

Geek_28b526

爆火!阿里P9用500多页手册搞定双十一高并发秒杀系统,绝了

996小迁

Java 架构 面试 高并发 秒杀系统

蚂蚁金服面试3+2次,最终有惊无险通过!(已拿offer)

周老师

Java 编程 程序员 架构 面试

AI如何在普惠金融的探索中发挥作用?

AI如何在普惠金融的探索中发挥作用?

开发者群体的巨大胜利:YouTube-dl荣耀回归,GitHub借以成立百万美元基金会-InfoQ