設(shè)計(jì)一個(gè)不顯示或播放任何聲音的設(shè)備,可以無休止地播放視頻
算法決定了我們看到的新聞,助長(zhǎng)了我們分裂的意識(shí)形態(tài)。我們能不能通過WiFi破壞過濾氣泡來增加細(xì)微差別?
在這個(gè)項(xiàng)目中,我們?cè)O(shè)計(jì)了一個(gè)不顯示或播放任何聲音的設(shè)備,可以無休止地播放YouTube視頻。目標(biāo)是潛在地影響連接到相同Wi-Fi網(wǎng)絡(luò)的用戶的視頻推薦算法。這個(gè)系統(tǒng)被巧妙地隱藏在一個(gè)瓶子里,在公共場(chǎng)所不被注意。
客觀的
該項(xiàng)目的主要目標(biāo)是:
流媒體YouTube視頻在后臺(tái)(沒有顯示或聲音)。
循環(huán)播放一個(gè)或多個(gè)視頻
自動(dòng)化整個(gè)視頻播放過程。
觀察這些視圖是否被YouTube識(shí)別和計(jì)數(shù)。
開發(fā)步驟
我們首先嘗試使用ESP32來傳輸視頻,但發(fā)現(xiàn)使用樹莓派更好。我們同時(shí)開發(fā)了這個(gè)項(xiàng)目的三個(gè)不同部分:視頻回放、用于分析的數(shù)據(jù)記錄和房屋的3D建模。
Arduino (ESP32)
1. 數(shù)據(jù)記錄-谷歌表API
為了跟蹤播放的視頻,并與同一Wi-Fi網(wǎng)絡(luò)下不同賬號(hào)的推薦視頻進(jìn)行對(duì)比,我們使用谷歌Sheets API建立了數(shù)據(jù)記錄系統(tǒng)。
修改由K. Suwatchai (Mobizt)創(chuàng)建的代碼,建立與谷歌Sheet的連接并開始記錄數(shù)據(jù)。
這是一個(gè)學(xué)習(xí)如何隱藏API密鑰和其他敏感信息的好機(jī)會(huì),盡管轉(zhuǎn)向Raspberry Pi發(fā)生在這方面取得很大進(jìn)展之前。
2. 連接到ESP32 - YouTube API
在建立Wi-Fi連接后,努力將ESP32連接到視頻播放。下面是HACK-WIFI-1中的代碼。ino用于連接到Y(jié)ouTube API并訪問搜索功能。
在初始設(shè)置結(jié)構(gòu)并建立Wi-Fi連接之后,意圖是連接到Y(jié)ouTube API以訪問搜索功能,以便我們可以播放有關(guān)特定主題的視頻,并以JSON格式返回結(jié)果鏈接和信息。雖然這是成功的,但我們很快意識(shí)到期望的播放在ESP32上不起作用,我們選擇將注意力轉(zhuǎn)移到使用樹莓派5上。
樹莓派5
1. 連接到樹莓派5
第一個(gè)挑戰(zhàn)是將樹莓派連接到Wi-Fi。由于連接不穩(wěn)定,這比預(yù)期要困難得多。在多次嘗試重新連接和排除故障后,我們終于建立了穩(wěn)定的連接。
2. 流媒體視頻沒有屏幕
連接上后,我們嘗試在不使用屏幕的情況下播放YouTube視頻。我們使用了兩種工具:
yt-dlp:提取直接視頻流URLffmpeg:播放視頻流不顯示視頻或播放任何音頻。
安裝依賴關(guān)系:
單個(gè)視頻流腳本(play_video.py):
運(yùn)行腳本:
3. 用電池給樹莓派供電
我們?yōu)闃漭?尋找了兼容的電池。經(jīng)過一些試驗(yàn)和研究,我們找到了合適的產(chǎn)品,并按照產(chǎn)品數(shù)據(jù)表中的說明使其工作。
4. 連接屏幕
為了解決未計(jì)數(shù)視圖的問題,我們?cè)跇漭缮线B接了一個(gè)顯示器。這使我們能夠:
Flash一個(gè)具有GUI支持的新操作系統(tǒng)版本。
實(shí)時(shí)監(jiān)控樹莓派上發(fā)生的事情。
5. 流媒體YouTube視頻顯示
在連接屏幕后,我們使用mpv(視頻播放器)全屏播放YouTube視頻,模擬真實(shí)視圖。
播放命令:
6. 自動(dòng)循環(huán)播放
為了使整個(gè)過程自動(dòng)化,我們創(chuàng)建了一個(gè)腳本來播放YouTube視頻列表,每個(gè)視頻之間有5秒的暫停。
播放腳本(auto_player.py):
7. 數(shù)據(jù)記錄-谷歌表API
為了跟蹤播放的視頻,并與同一Wi-Fi網(wǎng)絡(luò)下不同賬號(hào)的推薦視頻進(jìn)行對(duì)比,我們使用谷歌Sheets API建立了數(shù)據(jù)記錄系統(tǒng)。
隨著使用樹莓派的切換,ESP32在這方面所做的工作必須用python重新完成。使用Allan Schwartz創(chuàng)建的代碼,經(jīng)過修改,建立了一個(gè)谷歌Sheet的鏈接,用于數(shù)據(jù)記錄。此外,在此步驟中,還使用了隱藏敏感信息(如API密鑰)的方法。
8. 推薦- YouTube API
使用YouTube API中的示例,我們嘗試訪問推薦視頻列表,這將允許我們監(jiān)控我們的“感染”的影響。然而,由于API中實(shí)現(xiàn)的隱私保護(hù),我們遇到了一些挑戰(zhàn)。
本文編譯自hackster.io