开发者群体的巨大胜利: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:011317

评论

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

10.3微服务网关的技术架构

张荣召

【Java基础】-- isAssignableFrom的用法详细解析

秦怀杂货店

Java 关键字

JDBC【4】-- SPI底层原理解析

秦怀杂货店

Java 源码 spi

三年Java开发经验,裸辞之后筹备半年时间,四面阿里终于如愿拿到P7级offer【Java岗】。

Java成神之路

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

食堂就餐卡系统 UML 设计

心晴雨亦晴(~o~)

极客大学架构师训练营

两年Java开发经验,面试字节跳动惨遭滑铁卢,努力复习54天二战字节跳动终获offer定级2-2【面试答案+复习资源】

Java成神之路

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

架构师Week6作业

lggl

作业

阿里P8架构师呕心沥血整理的【Docker实战】文档带你玩转Docker。

Java成神之路

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

阿里P8Java架构师呕心沥血整理出来的[史上最全Java面试题精选集锦]!

Java成神之路

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

第十周总结

睁眼看世界

极客大学架构师训练营

接口测试--接口文档规范

测试人生路

接口文档

一次有效的产品需求头脑风暴

Bruce Talk

敏捷开发 Agile Product Owner

10.7作业

张荣召

10.1微服务:服务本身的设计,维护及治理

张荣召

Mybatis【4】-- 关于Mybatis别名定义

秦怀杂货店

Java mybatis

作为一个Java开发者连Spring三剑客都没吃透,你拿什么和老板谈涨薪?

Java成神之路

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

Java程序员怎么写简历?你这样介绍项目经验面试官会对你刮目相看

Java成神之路

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

Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息

秦怀杂货店

Java 数据库 mybatis

架构师训练营-week10

睁眼看世界

极客大学架构师训练营

架构师训练营第十周学习总结

Gosling

极客大学架构师训练营

最佳的思维导图生成工具——markmap 使用教程

白色蜗牛

Java 程序员 职场 实用工具

码了2000多行代码就是为了讲清楚TLS握手流程

新世界杂货铺

golang https 后端

10.2微服务:落地实践的策略与思路

张荣召

10.4领域驱动设计DDD

张荣召

10.5软件组件设计原则

张荣召

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取

Java成神之路

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

内推阿里,朋友说让我学会这46道面试题,我不信,现在我后悔了

小Q

Java 学习 编程 架构 面试

学习总结--week10

张荣召

该怎样才能成为高薪架构师?阿里P8大牛给迷茫的程序员一些中肯建议“请不要再虚度光阴了”。

Java成神之路

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

架构师训练营 1 期第 10 周:模块分解 - 作业

piercebn

极客大学架构师训练营

架构师训练营第10周课后练习

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