shivasiddharth / Stremio-RaspberryPi

Installer for Stremio on Raspberry Pi
GNU General Public License v3.0
151 stars 15 forks source link

Unmet dependencies for Bookworm: libmpv1 #47

Open menegop opened 7 months ago

menegop commented 7 months ago

Trying to install Stremio over a fresh install of Raspberry Pi OS with desktop and recommended software (Bookworm).

I get an unmet dependencies for libmpv1: I think it is no more available in bookworm as it has been replaced by libmpv2.

I tried the following instruction: echo "deb http://deb.debian.org/debian/ oldstable main" | sudo tee -a /etc/apt/sources.list sudo apt-get update sudo apt-get install libmpv1

Then I installed Stremio

It seems to work correctly

shivasiddharth commented 7 months ago

Thanks. I will add support for bookworm soon.

shivasiddharth commented 7 months ago

Can you confirm that it works ? All i see is a black screen.

SilverGreen93 commented 7 months ago

I have the same issue when trying to install on Ubuntu on Raspberry Pi 5. unmet dependencies for libmpv1 So installing Streamio does not work.

reh06 commented 7 months ago

Hi Sid, love your work. signed up to Github just to respond to this. I have the Raspberry Pi 3B with Bookworm and have been struggling to install stremio. Could you please help with an updated instruction list?

reh06 commented 7 months ago

Hi @shivasiddharth , as a followup to my previous question. Here's everything i've tried and some more details. I have the Raspberry Pi 3B, Raspbian (64-bit installations)

  1. Raspbian Bookworm - used the comment from @menegop then installed stremio and Stremio worked. Could get into stremio from my ipad at https://192.168.1.124:12470. Video playback would not work. always received a timeout error. One episode streamed once on my pc.
  2. Raspbian Bullseye - used your process to install stremio. Could get into stremio from my ipad at https://192.168.1.124:12470. Video playback would not work and by raspberry pi (GUI) would pop up an error with Stremio opened.

Questions

  1. Would i need to update my pi?
  2. Would signing up to Real-Debrid help?

Goal - I understand it's been 2 years since you've worked on this but would really like you're help here

  1. Install the latest version of Stremio (4.4 as of writing this) on Raspbian Bookworm
  2. Stream to ipad / pc from the local network
  3. Advanced - stream to ipad / pc from anywhere. (outside network) 3a. My ISP only offers CGNAT so I have tried to use cloudflare's free tunneling to direct my domain to my stremio 3b. For others who can still access port forwarding from their router, i believe this is easier and possible
  4. Install other apps and access from anywhere using my ipad - HomeAssistant, Pi's GUI itself, Pi's browser etc.

Reference - https://pimylifeup.com/raspberry-pi-cloudflare-tunnel/ https://www.youtube.com/watch?v=qSqUR1rqfuA

Would love a new tutorial video from you! I'm just a beginner dabbling in the Pi so this was only a mini project to access my pi and some of its apps from anywhere in the world.

shivasiddharth commented 7 months ago

Hi @shivasiddharth , as a followup to my previous question. Here's everything i've tried and some more details. I have the Raspberry Pi 3B, Raspbian (64-bit installations)

  1. Raspbian Bookworm - used the comment from @menegop then installed stremio and Stremio worked. Could get into stremio from my ipad at https://192.168.1.124:12470. Video playback would not work. always received a timeout error. One episode streamed once on my pc.
  2. Raspbian Bullseye - used your process to install stremio. Could get into stremio from my ipad at https://192.168.1.124:12470. Video playback would not work and by raspberry pi (GUI) would pop up an error with Stremio opened.

Questions

  1. Would i need to update my pi?
  2. Would signing up to Real-Debrid help?

Goal - I understand it's been 2 years since you've worked on this but would really like you're help here

  1. Install the latest version of Stremio (4.4 as of writing this) on Raspbian Bookworm
  2. Stream to ipad / pc from the local network
  3. Advanced - stream to ipad / pc from anywhere. (outside network) 3a. My ISP only offers CGNAT so I have tried to use cloudflare's free tunneling to direct my domain to my stremio 3b. For others who can still access port forwarding from their router, i believe this is easier and possible
  4. Install other apps and access from anywhere using my ipad - HomeAssistant, Pi's GUI itself, Pi's browser etc.

Reference - https://pimylifeup.com/raspberry-pi-cloudflare-tunnel/ https://www.youtube.com/watch?v=qSqUR1rqfuA

Would love a new tutorial video from you! I'm just a beginner dabbling in the Pi so this was only a mini project to access my pi and some of its apps from anywhere in the world.

Please go through the Notes in the README. The Server URL is different from HTTPS URL. And then there is a secure endpoint URL as well. You need not go through all these tunnelling hassles. Moreover, all these free tunnelling apps do not permit free media tunnelling, they have a cap.

reh06 commented 6 months ago

Thanks. i've checked the server URL, https URL and the endpoint URL. All match your description. Streaming still doesn't work.

Noted re tunneling. guess i'll give up that part of the project.

shivasiddharth commented 6 months ago

@reh06 I will take a look sometime this week.

bendschs commented 6 months ago

same problem here on the pi5 with bookworm installed.

LiamRiddell commented 5 months ago

Raspberry Pi 5 - Bookworm Guide

When looking to setup Stremio on Raspberry Pi 5 I found this thread. I failed to get the Stremio UI running. However, I have found an alternative approach that worked for what I needed. A streaming server using Stremio which is accessible on my local network and the pi itself. I've tested the below steps on iPhone, iPad and Windows computer and it works for me. If this is of interest to you then you can use the below steps to get it working.

Realistically this should be universal and work on anything that can run docker.

1. Install Docker

You will need docker for this as it allows us to host stremio-server https://docs.docker.com/engine/install/debian/#install-using-the-repository

## Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

## Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Now install the required docker-engine packages:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Now test the installation with hello world example:

sudo docker run hello-world

If the output shows "Hello World" then you're good to continue.

2. Install Docker Compose

Upon installing docker engine and testing it works with the "Hello World" project you can now install docker-compose

sudo apt-get install docker-compose

3. Creating docker-compose.yaml

You may want to modify the below definition to not use reverse proxy.

version: '3.8'
services:
  stremio-server:
    image: stremio/server:latest
    ports:
      - "11470:11470" # http
      # - "12470:12470" # https UNCOMMENT IF NOT USING NGINX
    environment:
      - NO_CORS=1
      - APP_PATH=/app/config
    volumes:
      - ./stremio:/app/config
    restart: unless-stopped

  ## You can ignore this if you don't need clients with HTTPS support unlike apple devices
  nginx:
    image: nginx:latest
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/certs:/etc/nginx/certs:ro # Map your SSL certificate directory
    ports:
      - "12470:443"
    depends_on:
      - stremio-server
    restart: unless-stopped

4. Setting up stremio-server

You will want to create a new folder relative to your docker-compose.yaml file called stremio. In this folder we will create a new file called server-settings.json. You can modify this configuration as required.

{
    "serverVersion": "4.20.5",
    "appPath": "/app/config",
    "cacheRoot": "/app/config",
    "cacheSize": 2147483648,
    "btMaxConnections": 400,
    "btHandshakeTimeout": 25000,
    "btRequestTimeout": 6000,
    "btDownloadSpeedSoftLimit": 8388608,
    "btDownloadSpeedHardLimit": 78643200,
    "btMinPeersForStable": 10,
    "remoteHttps": "{IF NO NGINX HOSTNAME OR IP OTHERWISE LEAVE IT BLANK}", 
    "localAddonEnabled": false,
    "transcodeHorsepower": 0.75,
    "transcodeMaxBitRate": 0,
    "transcodeConcurrency": 1,
    "transcodeTrackConcurrency": 1,
    "transcodeHardwareAccel": true,
    "transcodeProfile": true,
    "transcodeMaxWidth": 1920,
    "btProfile": "ultra_fast"
}

5. Setting up nginx

This part is optional and is only required if you are going to use stremio-server on devices that require a HTTPS connection for example Apple devices. You will need to update the sever_name field.

events {}

http {
    server {
        listen 443 ssl;
        server_name {HOSTNAME OR IP};

        ssl_certificate /etc/nginx/certs/server.crt;
        ssl_certificate_key /etc/nginx/certs/server.key;

        location / {
            proxy_pass http://stremio-server:11470;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}

The next part of this step is to generate the certificates in the nginx/certs folder relative to your docker-compose.yaml file. You can generate a self-signed certificate using the openssl command:

openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt

IMPORANT: It's important that you set the Common Name (FQDN) to * otherwise you may run into issues.

6. Pre-flight Checks

Before we go ahead and run our compose file, validate your directory looks like this:

stremio-server
    docker-compose.yaml
    stremio/
        server-settings.json
    nginx/
        nginx.conf
        certs/
            server.crt
            server.key          

7. Up the docker compose

Now we're ready to bring the compose stack up:

sudo docker-compose up -d

IMPORTANT: If you're having any issues remove the -d of the command to get the output from both stremio-server and nginx.

8. Validate it's working

You can now navigate to your https://{HOSTNAME OR IP}:12470/ and you will be redirected to the stremio app.

IMPORTANT: When the redirect happens it will set the streaming server to http you will need to edit the URL and change it to https://{HOSTNAME OR IP}:12470/. Don't forget to re-enter the port. You can then bookmark this link for ease of use later.

Everything should now work, apart from casting.

Further improvements:

  1. Implement Let's Encrypt so the self-signed certificate errors are not annoying.
  2. Support for hardware encoding
  3. Host stremio-web inside of the stack

For longevity I've put the guide in a separate repository https://github.com/LiamRiddell/Stremio-Server-Raspberry-PI/.

bendschs commented 4 months ago

will there be a native build for bookworm?

TommySilver3461 commented 3 weeks ago

Yes please.

I need this so bad. I can't watch stremio on my TV. It's useless. (and I am broke :D )

GwenTheKween commented 1 week ago

+1 is there a plan for a bookworm standalone release? I don`t want to stream from my pi to another device, i just want to connect my pi to a TV and watch stuff

bendschs commented 1 week ago

+1 (i prefer native install over docker so much)