eerimoq / moblin

Moblin, a free iOS app for IRL streaming.
MIT License
107 stars 15 forks source link

Moblin - IRL Streaming

A free iOS app for IRL streaming. Mainly targeting Twitch, but can stream to YouTube, Kick, Facebook and OBS Studio as well (and probably more).

Discord: https://discord.gg/nt3UwHqbMM

Github: https://github.com/eerimoq/moblin

TestFlight: https://testflight.apple.com/join/PDpxEaGh

Features

Main app

Apple Watch companion app

Ideas/plan

Import settings using moblin:// (custom URL)

Examples

New stream

An example creating a new stream is

moblin://?{"streams":[{"name":"BELABOX%20UK","url":"srtla://uk.srt.belabox.net:5000?streamid=9812098rh9hf8942hid","video":{"codec":"H.265/HEVC"},"obs":{"webSocketUrl":"ws://123.22.32.112:5465","webSocketPassword":"foobar"}}]}

where the URL decoded pretty printed JSON blob is

{
  "streams": [
    {
      "name": "BELABOX UK",
      "url": "srtla://uk.srt.belabox.net:5000?streamid=9812098rh9hf8942hid",
      "video": {
        "codec": "H.265/HEVC"
      },
      "obs": {
        "webSocketUrl": "ws://123.22.32.112:5465",
        "webSocketPassword": "foobar"
      }
    }
  ]
}

Quick button settings

An example with only two quick buttons enabled is

moblin://?{"quickButtons":{"twoColumns":false,"showName":true,"enableScroll":true,"disableAllButtons":true,"buttons":[{"type":"Mute","enabled":true},{"type":"Draw","enabled":true}]}}

where the URL decoded pretty printed JSON blob is

{
  "quickButtons": {
    "twoColumns": false,
    "showName": true,
    "enableScroll": true,
    "disableAllButtons": true,
    "buttons": [
      {
        "type": "Mute",
        "enabled": true
      },
      {
        "type": "Draw",
        "enabled": true
      }
    ]
  }
}

Specification

Format: moblin://?<URL encoded JSON blob>

The MoblinSettingsUrl class in MoblinSettingsUrl.swift defines the JSON blob format. Class members are JSON object keys. Members with ? after the type are optional. Some types are defined in Settings.swift.

Similar software

Development environment setup

Roughly the steps to setup Moblin's developement environment.

  1. Install Xcode with iOS and MacOS simulators on your Mac.

  2. Open a terminal.

  3. Clone Moblin.

    git clone https://github.com/eerimoq/moblin.git

  4. Enter Moblins repository.

    cd moblin

  5. Create an empty configuration file.

    touch Config.xcconfig

  6. Open the Moblin project in Xcode. Wait for the dependencies to load.

    open Moblin.xcodeproj

  7. Press Command + B to build Moblin.

  8. Click on the code signing error and add your account. No Apple developer account is needed.

  9. Change the Bundle Identifier to anything you want (i.e. com.whoami.Moblin).

  10. Remove In-App Purchase and Access Wi-Fi Information by clicking their trash cans.

  11. Build again. Hopefully successfully.

  12. Enable developer mode in your iPhone/iPad.

  13. Select you iPhone/iPad as Run Destination in Xcode (at the top in the middle).

  14. Build and run by pressing Command + R.

  15. Done!