当一个独立开发者在业余时间写了个小工具,本来只是想“帮大家省点事”,却突然收到来自美国公司的律师函——这听起来像极了开源圈常见的剧情模板。
但这一次,故事的结局有点不一样。
主角是一位 ID 为 funyflyer 的无人机爱好者兼独立开发者。他开发了一个免费、开源、可自托管的无人机日志管理替代方案 —— OpenDroneLog(www.opendronelog.com)。项目初衷很简单:给使用无人机飞行日志分析平台的用户,提供一种更加自由、可控的选择。
没想到,这个“副业项目”却引来了行业巨头的注意。
一切的起点:被锁住的飞行数据?
funyflyer 平时维护着几个小型开源项目。几周前,他上线了一个名为 OpenDroneLog 的工具——一个免费、可自托管、Local-first 的无人机飞行日志管理仪表盘。
它的理念很简单:
●数据存在本地
●用户完全掌控
●可视化分析和地图展示
之所以会做这个工具,是因为当前市场上最大的无人机日志分析平台之一——后来被确认是 AirData UAV——采用了一种颇具争议的商业模式。
这意味着什么?从技术上看,数据属于用户;从体验上看,数据却被牢牢锁在平台生态里——数据量一大,这种方式几乎是折磨式操作。
对 funyflyer 来说,这就是典型的“数据锁定(data lock-in)”。他甚至怀疑,这种做法在欧盟是否完全符合 GDPR 关于数据可携带性的要求。
一封措辞强硬的律师函
funyflyer 认为,既然用户可以手动下载,那么写一个自动化脚本帮助批量下载自己的数据,本质上只是“自动化点击”,不应构成违规。
于是,他写了一个简单的网页脚本:用户登录自己的 AirData 账户,脚本会自动批量下载属于用户的飞行日志——没有绕过权限,没有破解系统,只是把原本“手动点击 100 次”的操作自动化。
在技术圈,这种工具并不罕见,但在商业公司眼里,它触碰了核心利益。
OpenDroneLog 发布后不久,funyflyer 就收到了一封长达 4 页、措辞强硬的 Cease and Desist(停止侵权通知),而发件方正是 AirData UAV。
对方提出了三项要求:
(1)立即删除自动下载工具;
(2)移除项目中涉及 AirData 名称的内容
(3)删除功能对比图
其中一个争议点是,funyflyer 的项目曾使用过这样的标语:“The Free Open-Source AirData Alternative”,AirData 认为这在借商标导流。此外,funyflyer 在功能对比图中只对比了 AirData 的付费版本,没有明确标注其“受限免费版本”,这被认为具有误导性。
不仅如此,AirData 还在律师函中引用了他过往的 Reddit 发帖内容——也就是说,他们的法务团队在持续监控。
对一个业余时间开发开源项目的独立开发者来说,这种法律威胁的压力可想而知。
开源社区站了出来,CEO 也亲自联系
面对 AirData UAV 的多项指控,funyflyer 承认,在商标和比较营销的法律细节上,自己确实经验不足。但他更在意的是另一个问题:“我只是让用户下载自己的数据,这也算不正当竞争吗?”
因此,funyflyer 没有沉默,他把事情发在 Reddit 上。帖子迅速在 r/drones、r/selfhosted、r/opensource 等社区扩散,社区的力量开始显现。
其中,一名用户 u/Archiver_test4 主动提出无偿担任 funyflyer 的法律代表,并拒绝任何捐赠。他帮助起草回应文件,还创建了一个名为 r/Opensource_legalAid 的新板块,专门帮助遭遇类似问题的独立开发者——这件事,从“个人对抗公司”,逐渐变成了“社区关注的数据权利讨论”。
令人意外的是,这个帖子发布 6 小时后,AirData CEO Eran Steiner 就通过邮件主动联系了 funyflyer,希望进行一次面对面沟通。
Eran Steiner 承认,一开始直接发送律师函,而不是先沟通,方式欠妥。而据funyflyer 透露,其实在双方正式沟通前,AirData 就已经做出了实质改变:
(1)推出官方数据导出解决方案(Data Takeout)
这其实是整件事情的核心诉求。funyflyer 的核心观点其实很简单:用户应该拥有真正的数据可迁移性(Data Portability)。
此前,如果你想从 AirData 导出数据,只能一条一条点击下载日志文件——操作繁琐、效率低下,非常折磨人;而现在,AirData 上线了一个集中式的数据导出方案,用户可以一次性下载全部原始格式数据。因此,用户不再需要第三方自动化脚本。在合规层面,这也更贴近 GDPR 对数据可携带性的要求。
(2)商标问题达成共识
双方一致同意:合理说明 + 清晰的免责声明 才是正确做法。目前,funyflyer 已经在项目中添加了相关免责声明,在合理事实陈述下他也可以提及公司名称。
(3)账户恢复
在 funyflyer 还没提出要求之前,AirData 就已经恢复了他的账户和全部日志。
基于以上,funyflyer 和 AirData 均同意撤回所有指控——未来如果出现任何问题,将优先通过直接沟通解决,而不是第一时间交由律师处理。
没有输赢,而是“改进”
这一事情尘埃落定后,funyflyer 总结道:他只是一个利用业余时间开发的独立开发者,并没有要和一家成熟公司竞争的打算。他真正关心的,只是社区能否拥有真正的数据自由。
而现在,用户可以继续使用 AirData 的完整工具体系,或迁移到本地开源方案,至少数据不再被“锁死”。同时 funyflyer 也客观承认,AirData 的工具本身功能丰富,数据能力强,很多用户(包括他自己)仍然在使用。
说到这里,他特地强调了一句:“我没有收钱,他们也没有赞助,我只是客观评价。”
因此这场风波,最终没有赢家或输家——如果非要说的话,那就是开源社区赢了。有时候,开源社区的存在本身,就是一种监督力量。它并不意味着对抗商业,但它确实能让规则更透明。
而这一次,开源赢了一小步,让无人机飞行员们拥有了真正的一键数据导出。
参考链接:https://www.reddit.com/r/selfhosted/comments/1rfroov/update_large_us_company_came_after_me_for/