算法决定了我们看到的新闻,助长了我们分裂的意识形态。我们能不能通过WiFi破坏过滤气泡来增加细微差别?
在这个项目中,我们设计了一个不显示或播放任何声音的设备,可以无休止地播放YouTube视频。目标是潜在地影响连接到相同Wi-Fi网络的用户的视频推荐算法。这个系统被巧妙地隐藏在一个瓶子里,在公共场所不被注意。
客观的
该项目的主要目标是:
流媒体YouTube视频在后台(没有显示或声音)。
循环播放一个或多个视频
自动化整个视频播放过程。
观察这些视图是否被YouTube识别和计数。
开发步骤
我们首先尝试使用ESP32来传输视频,但发现使用树莓派更好。我们同时开发了这个项目的三个不同部分:视频回放、用于分析的数据记录和房屋的3D建模。
Arduino (ESP32)
1. 数据记录-谷歌表API
为了跟踪播放的视频,并与同一Wi-Fi网络下不同账号的推荐视频进行对比,我们使用谷歌Sheets API建立了数据记录系统。
修改由K. Suwatchai (Mobizt)创建的代码,建立与谷歌Sheet的连接并开始记录数据。
这是一个学习如何隐藏API密钥和其他敏感信息的好机会,尽管转向Raspberry Pi发生在这方面取得很大进展之前。
2. 连接到ESP32 - YouTube API
在建立Wi-Fi连接后,努力将ESP32连接到视频播放。下面是HACK-WIFI-1中的代码。ino用于连接到YouTube API并访问搜索功能。
在初始设置结构并建立Wi-Fi连接之后,意图是连接到YouTube API以访问搜索功能,以便我们可以播放有关特定主题的视频,并以JSON格式返回结果链接和信息。虽然这是成功的,但我们很快意识到期望的播放在ESP32上不起作用,我们选择将注意力转移到使用树莓派5上。
树莓派5
1. 连接到树莓派5
第一个挑战是将树莓派连接到Wi-Fi。由于连接不稳定,这比预期要困难得多。在多次尝试重新连接和排除故障后,我们终于建立了稳定的连接。
2. 流媒体视频没有屏幕
连接上后,我们尝试在不使用屏幕的情况下播放YouTube视频。我们使用了两种工具:
yt-dlp:提取直接视频流URLffmpeg:播放视频流不显示视频或播放任何音频。
安装依赖关系:
单个视频流脚本(play_video.py):
运行脚本:
3. 用电池给树莓派供电
我们为树莓派5寻找了兼容的电池。经过一些试验和研究,我们找到了合适的产品,并按照产品数据表中的说明使其工作。
4. 连接屏幕
为了解决未计数视图的问题,我们在树莓派上连接了一个显示器。这使我们能够:
Flash一个具有GUI支持的新操作系统版本。
实时监控树莓派上发生的事情。
5. 流媒体YouTube视频显示
在连接屏幕后,我们使用mpv(视频播放器)全屏播放YouTube视频,模拟真实视图。
播放命令:
6. 自动循环播放
为了使整个过程自动化,我们创建了一个脚本来播放YouTube视频列表,每个视频之间有5秒的暂停。
播放脚本(auto_player.py):
7. 数据记录-谷歌表API
为了跟踪播放的视频,并与同一Wi-Fi网络下不同账号的推荐视频进行对比,我们使用谷歌Sheets API建立了数据记录系统。
随着使用树莓派的切换,ESP32在这方面所做的工作必须用python重新完成。使用Allan Schwartz创建的代码,经过修改,建立了一个谷歌Sheet的链接,用于数据记录。此外,在此步骤中,还使用了隐藏敏感信息(如API密钥)的方法。
8. 推荐- YouTube API
使用YouTube API中的示例,我们尝试访问推荐视频列表,这将允许我们监控我们的“感染”的影响。然而,由于API中实现的隐私保护,我们遇到了一些挑战。
本文编译自hackster.io