To download the movies I used wget, based on this article. The command itself is just a oneliner, executed in multiple shells to download in parallel:
wget -r -H -nc -np -nH --cut-dirs=1 -e robots=off -A .mp4,.m4v,.mov,.webm,.avi -l1 -i ./source.txt -B 'http://archive.org/download/'
the source.txt has about 20000 lines and looks something like this:
The_Smithsonians_Whale_195x 20170923084940 AguascalientesMexico 1986VermilionSailorMarchingBandFestival-VermilionHighSchoolMarching TMurphyNewsRehearsal32195 The_Lottery_By_Ken_Jacobson_1993 Bill_Collins_-_The_Prince_the_Pauper_Gasbags_TVQ-10_1990 backtoschoolident_incnews btq10 avjennings_23-11-1983 abnt2continuity ericbana Channel_Nine_Breezin_Through_Summer_ident_QTQ-9_4_12_88 after-video_2.img vhsvault_trailer_-_Live_from_the_Palladium UTileItYourselfFloorsLambProductions1987 abctv88 goodfooftonybarber hinch_8-7-90 FremontGeneralBenefitsBasicsShow salepromo88 segaMSII_1991 …
I let the download run for about 30 hours and that gave me 320 videos. Thats 120 GB or 24 hours playtime in total. The complete VHS Vault is much larger.
The Raspberry Pi is a model 3B and uses a small 2GB microSD card with Raspbian Buster Lite. I installed some dependecies with
sudo apt install omxplayer mediainfo timelimit
I use omxplayer as the mediaplayer, because it is hardware accelerated on the Pi. mediainfo is for getting the length of a videofile and timelimit ends the omxplayer process after a specific time if the video is still playing.
The script to play the videos is just a small bash script that mounts an usb thumb drive, selects a random video from the drive, gets its length, selects a random position between 0 and the video length and generates a random clip length. It then uses omxplayer to play the videofile. The Pi 3B is fast enough to play the videos from archive.org without the need to convert them to a more suitable format. The Pi is set to „Autologin (Console)“ and starts the bash script on log in. I also set the „Overlay FS“ option in raspi-config and mount the usb-drive as read only to reduce data loss when unplugging the Pi. Because I use an old tube television with a scart connector I use the Pis composite output.
Long live the new flesh!