Skip to content

Instantly share code, notes, and snippets.

@TheBITLINK
Created February 18, 2019 16:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TheBITLINK/cfe264c5edf7bfee86fea90f8271fa42 to your computer and use it in GitHub Desktop.
Save TheBITLINK/cfe264c5edf7bfee86fea90f8271fa42 to your computer and use it in GitHub Desktop.
FocaBot in strange places

I spent a whole morning trying to setup FocaBot on different (uncommon) platforms, just because.

I decided to document this in case someone needs it in the future, be aware that neither of those platforms are officially supported, so if you find any issues, you're mostly on your own.

Raspberry PI

Installing FocaBot on a Raspberry PI should be pretty straightforward, following the official install instructions for Linux should work for the most part.

However, additional steps must be performed to allow audio playback, since the built-in ffmpeg binary has problems on ARM platforms:

  • Install FFMPEG using your distro's package manager (sudo apt install ffmpeg on Raspbian 8+)
  • Launch focabot config
  • Select the Change ffmpeg path > option
  • Select Use system provided ffmpeg binaries.
  • Go back to the main menu and select Save changes and exit.

Launch the bot again, audio playback should be working now.

Be aware that some older versions of ffmpeg have issues with YouTube livestream playback. If the version your distro ships has those issues and you need YouTube livestream support, you'll have to either update to a version of your distro that ships a newer version or compile it yourself.

This same process might apply to other ARM boards.

FreeBSD

Surprisingly enough, FocaBot works almost out of the box on FreeBSD, however, some dependencies must be installed using the package manager on a clean installation. This guide assumes you have sudo installed and are running as a normal user account.

  • Install node, npm, python and ffmpeg sudo pkg install node www/npm python ffmpeg
  • Setup npm to run without sudo
  • Install FocaBot with npm i -g focabot
  • Run focabot and perform the initial setup.

Everything should be working as expected, including audio playback.

OpenBSD

Mostly the same as FreeBSD, but using pkg_add instead of pkg install, npm comes bundled with the node package.

sudo pkg_add node python-2.7

Audio will not work however, and installing ffmpeg using the package manager will not work since the version provided by OpenBSD is too old. You'll have to compile ffmpeg yourself if you want audio support on OpenBSD.

Android 5+

You can run FocaBot on any Android device running Android Lollipop or higher, thanks to Termux. No root required.

The setup is a bit complicated however:

  • Install Termux from the Google Play Store or F-Droid
  • Open the app, once you're presented with the shell, install the required packages:
pkg install proot nodejs python
  • Launch a virtual chroot:
termux-chroot
  • Install FocaBot:
npm i -g focabot
  • Perform initial setup (you can navigate through the menus by pressing W and S on your phone's keyboard while holding the physical VOLUME_UP button)
focabot
  • You now have a portable FocaBot instance on your phone/tablet! (not sure why would anyone want this but whatever)
  • Remember to run termux-chroot before starting the bot, as it would otherwise crash!
  • To exit, press Ctrl+C (VOLUME_DOWN + C)

For audio support:

Since most Android devices are ARM based, and the built-in ffmpeg binary has issues on ARM, you'll need to install ffmpeg from the Termux repositories.

If you have an x86 device you can ignore this section.

  • Install ffmpeg
pkg install ffmpeg
  • Launch focabot config
  • Select the Change ffmpeg path > option. Use the W and S keys while holding VOLUME_UP to navigate.
  • Select Use system provided ffmpeg binaries.
  • Go back to the main menu and select Save changes and exit.

Audio should now be fully working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment