Skip to main content

IPFS Video Network

Every investigation on this site includes video evidence. Those videos are stored on IPFS — the InterPlanetary File System — a decentralized network where files are identified by their content, not by a server address. That means no single company can take them down.

When you run the script below, you download all the videos and pin them to your local IPFS node. Pinning makes your machine a host for that content — anyone else who wants the videos can fetch them from you, just like BitTorrent. The more people who run this, the harder the videos become to censor or lose.

Why this matters: YouTube, Twitter, and other platforms regularly remove videos that challenge official narratives. Once a video is pinned on IPFS by enough people, no platform can delete it. Running this script makes you part of the preservation network.

Run it

Paste this command in your terminal. It installs IPFS if needed, starts the daemon, and downloads + pins all videos. Works on Mac (requires Homebrew) and Linux. Windows users: run in WSL or Git Bash.

curl -fsSL https://holonhq.com/get_videos.sh | sh⎘ Copy
View get_videos.sh ↗← Back to Investigations

What the script does

  1. Checks if IPFS (kubo) is installed — installs it via Homebrew if not
  2. Initializes your local IPFS repository if this is your first run
  3. Starts the IPFS daemon in the background if it isn't already running
  4. Downloads each video by its content hash (CID) from the IPFS network
  5. Pins each video to your node so you become a host for it

After running it, keep ipfs daemon running (or set it to start automatically with brew services start kubo) so your node stays connected and serves the videos to others.

Script contents

Review what will run before you run it:

#!/bin/sh
# get_videos.sh — Download and pin all Holon investigation videos via IPFS
#
# Usage: curl -fsSL https://holonhq.com/get_videos.sh | sh
# Works on Mac (Homebrew) and Linux. Windows users: run in WSL or Git Bash.

set -e

# Install IPFS (kubo) if not present
if ! command -v ipfs >/dev/null 2>&1; then
  echo "Installing IPFS (kubo)..."
  if command -v brew >/dev/null 2>&1; then
    brew install kubo
  else
    echo "Homebrew not found. Install IPFS manually: https://docs.ipfs.tech/install/"
    exit 1
  fi
fi

# Initialize IPFS repo if needed
if [ ! -d "$HOME/.ipfs" ]; then
  ipfs init
fi

# Start daemon in background if not running
if ! ipfs swarm peers >/dev/null 2>&1; then
  echo "Starting IPFS daemon..."
  ipfs daemon &
  sleep 5
fi

echo "========================================"
echo "  Fetching and pinning Holon videos"
echo "========================================"

# Videos are fetched by CID and pinned locally.
# Each line downloads the video and pins it to your node,
# making you a host for that content on the IPFS network.

ipfs get --output=2041508913443479664.mp4 QmXK9vksooGumXKkBLtSfp8irYVBSUB7hzMZH7dFAuSurM && ipfs pin add QmXK9vksooGumXKkBLtSfp8irYVBSUB7hzMZH7dFAuSurM
ipfs get --output=2039372269462421755.mp4 QmWepcaxBWCo1jvbX1xz1RzWCcZWV5TWhSycgnJK3eo5Sr && ipfs pin add QmWepcaxBWCo1jvbX1xz1RzWCcZWV5TWhSycgnJK3eo5Sr
ipfs get --output=2039976250429640891.mp4 QmdVcMT1o1YzXMKx829xPcRAzdxWRoLPUBpMabky2kA4b8 && ipfs pin add QmdVcMT1o1YzXMKx829xPcRAzdxWRoLPUBpMabky2kA4b8
ipfs get --output=2039971796527579248_second_shooter_butler.mp4 QmWGcbLJUTgP6R18r5hqbtKjTYSE7pjoZSFScwEnrnbSyz && ipfs pin add QmWGcbLJUTgP6R18r5hqbtKjTYSE7pjoZSFScwEnrnbSyz
ipfs get --output=2039999097210290370.mp4 QmUPbCfRAYphmiXcmqipQHueLj13ZjXDTVmvwKJxC6QrnP && ipfs pin add QmUPbCfRAYphmiXcmqipQHueLj13ZjXDTVmvwKJxC6QrnP
ipfs get --output=2039847897630491058.mp4 QmfLTHw5FbTQCrHqPKiAyTiZdVgoz4jpbpzLzGbAnC4Xvb && ipfs pin add QmfLTHw5FbTQCrHqPKiAyTiZdVgoz4jpbpzLzGbAnC4Xvb
ipfs get --output=2039911431974347162.mp4 QmcGdubZwSgGCoqTwZXGqio8tixnVxdWmp2PRHEYjqn14Q && ipfs pin add QmcGdubZwSgGCoqTwZXGqio8tixnVxdWmp2PRHEYjqn14Q
ipfs get --output=2039832382476546267.mp4 QmQvuSmnLCn5yTrRqTTjrepLbSMgc1kDAqrTzxQkjP8MCG && ipfs pin add QmQvuSmnLCn5yTrRqTTjrepLbSMgc1kDAqrTzxQkjP8MCG
ipfs get --output=2039951951996064245.mp4 QmZpFdqBiDi8qZ28dWo3xddNd6praftdHw1dx4f957Xj3j && ipfs pin add QmZpFdqBiDi8qZ28dWo3xddNd6praftdHw1dx4f957Xj3j
ipfs get --output=2039999097210290370.mp4 QmUPbCfRAYphmiXcmqipQHueLj13ZjXDTVmvwKJxC6QrnP && ipfs pin add QmUPbCfRAYphmiXcmqipQHueLj13ZjXDTVmvwKJxC6QrnP
ipfs get --output=2040021557376864763.mp4 QmSQWA6yvFfz5otuz84bYnuJyPtzyC2A3u3QfHXYR55gsN && ipfs pin add QmSQWA6yvFfz5otuz84bYnuJyPtzyC2A3u3QfHXYR55gsN
ipfs get --output=2040037479877620047.mp4 QmUNtkrVEoNg9zyp9vMPP8C7zv8fkYVyc961k6ETjarMA5 && ipfs pin add QmUNtkrVEoNg9zyp9vMPP8C7zv8fkYVyc961k6ETjarMA5
ipfs get --output=2040081363416518874.mp4 QmPaA4srRfnYu8pCFvNn1mJKKEoMLvS8gAY6yFToYQKFVW && ipfs pin add QmPaA4srRfnYu8pCFvNn1mJKKEoMLvS8gAY6yFToYQKFVW
ipfs get --output=2040135310101672250_nuno_loureiro_fusion_murder.mp4 QmPUTSoChvkH1XVcbpGoPR6Y2yKwcxUcxs6QPcE4FRHKEZ && ipfs pin add QmPUTSoChvkH1XVcbpGoPR6Y2yKwcxUcxs6QPcE4FRHKEZ
ipfs get --output=2040194503383138691.mp4 Qmes8EWtdJ7YtxZLWJWfM3UjJG3FGpSh32TZ23SfY4wwPN && ipfs pin add Qmes8EWtdJ7YtxZLWJWfM3UjJG3FGpSh32TZ23SfY4wwPN
ipfs get --output=2040200794298011686.mp4 QmeD27jzuXT55gYy5MAPPZQN4wBLHgTkvBpTUVK6M1L2E6 && ipfs pin add QmeD27jzuXT55gYy5MAPPZQN4wBLHgTkvBpTUVK6M1L2E6
ipfs get --output=2040235206041620548.mp4 QmV22xvnGScYa67tEs63NnipbSL4NKM7N5eKzGGZ5zXakG && ipfs pin add QmV22xvnGScYa67tEs63NnipbSL4NKM7N5eKzGGZ5zXakG
ipfs get --output=2040376555990335769.mp4 QmSvkKP1YDa6kuAmncr9qBH7i3GFS7eTkKVns4cYJReV9L && ipfs pin add QmSvkKP1YDa6kuAmncr9qBH7i3GFS7eTkKVns4cYJReV9L
ipfs get --output=2040776478326202402.mp4 QmaZ1zUuAdSrEniwtHMrqp9UEUAj9M4E8hDFmj3ynFNXPE && ipfs pin add QmaZ1zUuAdSrEniwtHMrqp9UEUAj9M4E8hDFmj3ynFNXPE
ipfs get --output=2040997371577029082.mp4 QmV3dgqpCxum6GUtJVDu6MdXHSv2sdXt3ythNTkZWZerfX && ipfs pin add QmV3dgqpCxum6GUtJVDu6MdXHSv2sdXt3ythNTkZWZerfX
ipfs get --output=2040997244380557574.mp4 QmUR8atmbKfjdxd35Ue5yus2BctPdaVTG3uEg7GJJM7TBX && ipfs pin add QmUR8atmbKfjdxd35Ue5yus2BctPdaVTG3uEg7GJJM7TBX
ipfs get --output=2041070980773093640.mp4 QmRU1GPaqWqWoDrVXc4nG9yhEbxcgxyZfyc9cGdMxnxyBL && ipfs pin add QmRU1GPaqWqWoDrVXc4nG9yhEbxcgxyZfyc9cGdMxnxyBL
ipfs get --output=2041082205028651379.mp4 QmdFnPWF6BbetZiuph4NDMf9eTPSGToNGXojdBEMF5dX5e && ipfs pin add QmdFnPWF6BbetZiuph4NDMf9eTPSGToNGXojdBEMF5dX5e
ipfs get --output=2041130084334235904.mp4 QmYuGZJTHoAzkwV6wtE1WXRXHkJpfTGbK91MDMVEvDPzyM && ipfs pin add QmYuGZJTHoAzkwV6wtE1WXRXHkJpfTGbK91MDMVEvDPzyM
ipfs get --output=2041538735699853469.mp4 QmPwxqT4sy6apqWybbgm3tmEVNx4ZJquPq4mmBhmJZVvBR && ipfs pin add QmPwxqT4sy6apqWybbgm3tmEVNx4ZJquPq4mmBhmJZVvBR
ipfs get --output=2041564514613600337.mp4 QmTgkv47kg94emAw1yiKmGTdsj5NFQpFuuXwTicuzFSxay && ipfs pin add QmTgkv47kg94emAw1yiKmGTdsj5NFQpFuuXwTicuzFSxay
ipfs get --output=2041568873615360204.mp4 Qmc4HDWBHQ2W9Pjwzam5wtWUAoixqzBQBodzirzNTkugz3 && ipfs pin add Qmc4HDWBHQ2W9Pjwzam5wtWUAoixqzBQBodzirzNTkugz3
ipfs get --output=2041573003490947572.mp4 QmWCLamtry4r4nqwgsKPna3D8yMmbJotvRwyAUWc1rofYE && ipfs pin add QmWCLamtry4r4nqwgsKPna3D8yMmbJotvRwyAUWc1rofYE
ipfs get --output=2041576306949665128.mp4 QmYqAoocdkjg2m9H91JCsKf5uQjc76xhgz5Q873NEXZLr8 && ipfs pin add QmYqAoocdkjg2m9H91JCsKf5uQjc76xhgz5Q873NEXZLr8
ipfs get --output=2041577921727623529.mp4 QmZom9GaEQs4SNeNvDfK633zA5TJc9Aq2V9Q8PuNW7TVy4 && ipfs pin add QmZom9GaEQs4SNeNvDfK633zA5TJc9Aq2V9Q8PuNW7TVy4
ipfs get --output=2041595152200835226.mp4 QmNdvxH9uqBSRKdUc3DSaJZPgxVKxWeipN1sF1Z2gs96Uy && ipfs pin add QmNdvxH9uqBSRKdUc3DSaJZPgxVKxWeipN1sF1Z2gs96Uy
ipfs get --output=2041687221644783667.mp4 QmVont7ijR7seJXHcRQCxG179a4G33QGecf6PtHZYbnWmt && ipfs pin add QmVont7ijR7seJXHcRQCxG179a4G33QGecf6PtHZYbnWmt
ipfs get --output=2041709446888353865.mp4 QmS33QmSV8jKapacJcE48N7JzfGRJJ9sGnzyrgBoQCyizx && ipfs pin add QmS33QmSV8jKapacJcE48N7JzfGRJJ9sGnzyrgBoQCyizx
ipfs get --output=2041737043126948334.mp4 QmTBexbmAPGLwfP7bKrUGwVvd2Dqih3BLQFw5NAe2a4m9s && ipfs pin add QmTBexbmAPGLwfP7bKrUGwVvd2Dqih3BLQFw5NAe2a4m9s
ipfs get --output=2041801872239939946.mp4 QmbGBFz3VbFvM7mvbeWpaAqPkAxUJM12hS2syA9K9LTYcL && ipfs pin add QmbGBFz3VbFvM7mvbeWpaAqPkAxUJM12hS2syA9K9LTYcL
ipfs get --output=2041857424349401430.mp4 QmZhun3f8rDmB5j2HZq43RPQ5pzJp9qqtXLg4T3Kde2bSM && ipfs pin add QmZhun3f8rDmB5j2HZq43RPQ5pzJp9qqtXLg4T3Kde2bSM
ipfs get --output=2041928314139635896.mp4 QmQCH2yMBAp8mrkkRAXRsmB5BnEct8DqyWkQmunjmFe18B && ipfs pin add QmQCH2yMBAp8mrkkRAXRsmB5BnEct8DqyWkQmunjmFe18B
ipfs get --output=2041933552196186243.mp4 QmYaGn3NzeD2Eaf69rUK7FK3CLvEfke3cd36Utg6FPvGUK && ipfs pin add QmYaGn3NzeD2Eaf69rUK7FK3CLvEfke3cd36Utg6FPvGUK
ipfs get --output=2041971477151367614.mp4 QmYcxRLgqkxqqNoYpwoKyuruzUwi3D6Hgpk9J8KD8s6gaC && ipfs pin add QmYcxRLgqkxqqNoYpwoKyuruzUwi3D6Hgpk9J8KD8s6gaC
ipfs get --output=2041989808881287671.mp4 QmZbC9xx83zkmx1yzTiVdpyKheBPnJqnCVLVmePAA2Cpqg && ipfs pin add QmZbC9xx83zkmx1yzTiVdpyKheBPnJqnCVLVmePAA2Cpqg
ipfs get --output=2042007217231294505_1.mp4 QmR3Bu3kPRvoiegVxV1WYG2Dv6CVhr3oSN82NAWDCnKQf1 && ipfs pin add QmR3Bu3kPRvoiegVxV1WYG2Dv6CVhr3oSN82NAWDCnKQf1
ipfs get --output=2042007217231294505_2.mp4 QmVs7YejnQSB4ffhwD4PXCMtQS4Y9HhHjL4nPt2XDD6qJv && ipfs pin add QmVs7YejnQSB4ffhwD4PXCMtQS4Y9HhHjL4nPt2XDD6qJv
ipfs get --output=2042051160706838689.mp4 QmNT2qkNs48JZ43LSq12ax7cBeVd8CKazBaEoGMsjP76bu && ipfs pin add QmNT2qkNs48JZ43LSq12ax7cBeVd8CKazBaEoGMsjP76bu
ipfs get --output=2042052955944157228.mp4 QmRaTLTPPugLm6szumpjgjCC5PMqZpTM9njkPk7veAwSKy && ipfs pin add QmRaTLTPPugLm6szumpjgjCC5PMqZpTM9njkPk7veAwSKy
ipfs get --output=2042056059540394122.mp4 QmYCvMowxe1HFwrrjA4y7hj3FpSeuzVRfB9Z8Fr8vuw2BE && ipfs pin add QmYCvMowxe1HFwrrjA4y7hj3FpSeuzVRfB9Z8Fr8vuw2BE
ipfs get --output=2042134197037301852.mp4 QmZBt548FWgKdjQxnXAyJF1jfeRusnCBdBWHfRdf6hrVKb && ipfs pin add QmZBt548FWgKdjQxnXAyJF1jfeRusnCBdBWHfRdf6hrVKb
ipfs get --output=2042150135195394509.mp4 QmbpzeLbib1bzwppJkyK8dbarxi3nNcE8U7LZnXqqmYKPY && ipfs pin add QmbpzeLbib1bzwppJkyK8dbarxi3nNcE8U7LZnXqqmYKPY
ipfs get --output=2042200852815843775.mp4 QmewoVL3saXndcHDN2rkbRDoai1KDZPhXEZxZ8gm15vUVS && ipfs pin add QmewoVL3saXndcHDN2rkbRDoai1KDZPhXEZxZ8gm15vUVS
ipfs get --output=2042219239847965081.mp4 QmbCtcDudhyP7WaBu4ho5Z7azyobDSfEH6wZQPwtMnBoNu && ipfs pin add QmbCtcDudhyP7WaBu4ho5Z7azyobDSfEH6wZQPwtMnBoNu
ipfs get --output=2042272072492347533.mp4 QmTQwrnQudRXazhSFn2t6r19QoYcuGz2nZaZkJgNHjpC7C && ipfs pin add QmTQwrnQudRXazhSFn2t6r19QoYcuGz2nZaZkJgNHjpC7C
ipfs get --output=2042292798909505923.mp4 QmXHMqqM6H7wEmN486ZqBECVNHqY4GSat57d67rjVpyAEv && ipfs pin add QmXHMqqM6H7wEmN486ZqBECVNHqY4GSat57d67rjVpyAEv
ipfs get --output=2042298431402627403.mp4 QmbysKf4nafvb1eQ2qfvTkaLWBbvojiz2AAxfAmTSuz2BE && ipfs pin add QmbysKf4nafvb1eQ2qfvTkaLWBbvojiz2AAxfAmTSuz2BE
ipfs get --output=2042353694289596789.mp4 QmPFHfRgHzYrFCyUP72EGeiFWKqD2hnBJBAWPVMHSAtE6G && ipfs pin add QmPFHfRgHzYrFCyUP72EGeiFWKqD2hnBJBAWPVMHSAtE6G
ipfs get --output=2042640715696738341.mp4 QmeawLBax5y9TFEM1jctd8zKHeiqtijT3wzy1YaruzBwsV && ipfs pin add QmeawLBax5y9TFEM1jctd8zKHeiqtijT3wzy1YaruzBwsV
ipfs get --output=2042646332599357868.mp4 QmSJKjcxavNvtL3DVxRCfABouFaPQZyDjZbZ4Zz4yeRhqa && ipfs pin add QmSJKjcxavNvtL3DVxRCfABouFaPQZyDjZbZ4Zz4yeRhqa
ipfs get --output=2042707534289535456.mp4 QmQ2Z8QXnW5nwe1Sdhd6Bu95gv8Rqbr9YkeL7CwjSqeEHa && ipfs pin add QmQ2Z8QXnW5nwe1Sdhd6Bu95gv8Rqbr9YkeL7CwjSqeEHa
ipfs get --output=2042814883939426482.mp4 QmTo6s4Genv3vH9QEo9SBnrCwpzNak6sYK9XrrV5Ts6CVd && ipfs pin add QmTo6s4Genv3vH9QEo9SBnrCwpzNak6sYK9XrrV5Ts6CVd

echo "========================================"
echo "  Done. All videos downloaded and pinned."
echo "========================================"