Git Product home page Git Product logo

docker-kodi's Introduction

docker-kodi

Preinstallation

Assure that a keyboard and mouse is connected to your Kodi device so that you have a way to configure Kodi.

Note that adding a keyboard/mouse when Kodi container is already running won't wor. In that case you have to stop and start Kodi.

Installation

  1. Logon (ssh) to the machine where you want to run kodi
  2. pull my latest kodi version from docker hub
docker pull janvda/kodi:2.1.0
  1. launch kodi using x11docker. E.g.
x11docker --backend=docker   --xorg  -xc  -I       \
            --pulseaudio                           \
            --gpu                                  \
            --wm=none                              \
            --user=jan                             \
            --home=/home/jan/kodi-jan/home2         \
            -- -v kodi-jan-media2:/media:ro -v /run/user/1001/pulse/native:/x11docker/pulseaudio.socket -p 8090:8080 --      \
            janvda/kodi:2.1.0 &
  1. Exit the shell (command exit) - this will assure that kodi keeps on running.

Kodi-remote app

Using the Official Kodi Remote app from App Store you can control Kodi.

To use this you first need to enable "remote" control in Kodi

  1. via Settings >Services > Control:
    1. web server > Allow remote control via HTTP
    2. Application Control > Allow remote control from applications on other systems.

TED add-on installation

  1. install the zip version you find in the /add-ons/ folder

VRT MAX add-on installation

  1. Install the zip version you find in the /add-ons folder
  2. Configure it with your VRT max username and password
  3. Try playing a file this should install widevine
  4. It is normal that playing won't work - you have to stop and start kodi to get it working !!

Troubeshooting

The log file can be found in folder ~/.kodi/temp/kodi.log

Enter following command in attached shell

more ~/.kodi/temp/kodi.log

Change History

  • 2.1.0 (2023-06-12): added latest version of vrt nu add-on in /add-ons folder
  • 2.0.0 (2023-06-12): Kodi version 20.0 on ubuntu release lunar, TED add-on in /add-ons folder
  • 1.1.0 (2022-06-28): Kodi version 19.4 - having problems with TED, VRT max.
  • 1.0.0 (2022-06-25): First version

Original Readme from erichough/kodi

Here below the original README.md from erichough/kodi

Dockerized Kodi with audio and video.

Kodi screenshot

Features

Host Prerequisites

The host system will need the following:

  1. Linux and Docker

    This image should work on any Linux distribution with a functional Docker installation.

  2. A connected display and speaker(s)

    If you're looking for a headless Kodi installation, look elsewhere!

  3. X or Wayland

    Ensure that the packages for an X or Wayland server are present on the Docker host. Please consult your distribution's documentation if you're not sure what to install. A display server does not need to be running ahead of time.

  4. x11docker

    x11docker allows Docker-based applications to utilize X and/or Wayland on the host. Please follow the x11docker installation instructions and ensure that you have a working setup on the Docker host.

Usage

Starting Kodi

Use x11docker to start the erichough/kodi Docker image. Detailing the myriad of x11docker options is beyond the scope of this document; please consult the x11docker documentation to find the set of options that work for your setup.

Below is an example command (split into multiple lines for clarity) that starts Kodi with a fresh X.Org X server with PulseAudio sound, hardware video acceleration, a persistent Kodi home directory, and a shared read-only Docker mount for media files:

$ x11docker --xorg                                 \
            --pulseaudio                           \
            --gpu                                  \
            --homedir /host/path/to/kodi/home      \
            -- -v /host/path/to/media:/media:ro -- \
            erichough/kodi

Note that the optional argument passed between a pair of -- defines additional arguments to be passed to docker run.

Stopping Kodi

You can shut down Kodi just as you normally would; i.e. by using the power menu from the Kodi home screen. Behind the scenes, the Docker container and x11docker processes will terminate cleanly.

You can also terminate the container from the command line.

Example systemd Service Unit

[Unit]
Description=Dockerized Kodi
Requires=docker.service
After=network.target docker.service

[Service]
ExecStartPre=/usr/bin/docker pull erichough/kodi
ExecStart=/usr/bin/x11docker ... erichough/kodi
Restart=always
KillMode=process

[Install]
WantedBy=multi-user.target

Advanced

The advanced topics documentation describes a few more useful features and functionality:

Help!

Something not working quite right? Are you stuck? Please ask your questions in the discussion group, where we exchange help and share ideas.

Contributing

Constructive criticism and contributions are welcome! Please submit an issue or pull request.

docker-kodi's People

Contributors

ehough avatar janvda avatar jfk22 avatar rdnetto avatar

docker-kodi's Issues

error when opening TED talk plugin

The following is seen in the log file:

2023-06-11 22:35:27.192 T:343      INFO <general>: CAddonMgr::FindAddon: plugin.video.ted.talks v5.0.0 installed
2023-06-11 22:35:27.294 T:148   WARNING <general>: CGUIMediaWindow::OnMessage - updating in progress
2023-06-11 22:35:39.121 T:148      INFO <general>: Skipped 2 duplicate messages..
2023-06-11 22:35:39.121 T:148      INFO <general>: Loading skin file: DialogAddonSettings.xml, load type: KEEP_IN_MEMORY
2023-06-11 22:35:56.329 T:148     ERROR <general>: Control 55 in window 10025 has been asked to focus, but it can't
2023-06-11 22:35:56.392 T:366      INFO <general>: initializing python engine.
2023-06-11 22:35:56.898 T:366      INFO <general>: [ADDON] Initialized TED Talks v5.0.0 using Python: 3.9.7 (default, Sep 10 2021, 14:59:43) 
                                                   [GCC 11.2.0]'
2023-06-11 22:35:58.703 T:366      INFO <general>: CPythonInvoker(12, /home/jan/.kodi/addons/plugin.video.ted.talks/default.py): script successfully run
2023-06-11 22:35:58.790 T:366      INFO <general>: Python interpreter stopped
2023-06-11 22:36:01.192 T:369      INFO <general>: initializing python engine.
2023-06-11 22:36:01.565 T:369      INFO <general>: [ADDON] Initialized TED Talks v5.0.0 using Python: 3.9.7 (default, Sep 10 2021, 14:59:43) 
                                                   [GCC 11.2.0]'
2023-06-11 22:36:03.696 T:369      INFO <general>: CPythonInvoker(13, /home/jan/.kodi/addons/plugin.video.ted.talks/default.py): script successfully run
2023-06-11 22:36:03.778 T:369      INFO <general>: Python interpreter stopped
2023-06-11 22:37:03.992 T:374      INFO <general>: initializing python engine.
2023-06-11 22:37:04.307 T:374      INFO <general>: [ADDON] Initialized TED Talks v5.0.0 using Python: 3.9.7 (default, Sep 10 2021, 14:59:43) 
                                                   [GCC 11.2.0]'
2023-06-11 22:37:06.276 T:374      INFO <general>: [ADDON] TED Talks v5.0.0 - GET https://www.ted.com/talks/alona_fyshe_does_ai_actually_understand_us?rss=172BB350-0205
2023-06-11 22:37:07.237 T:374     ERROR <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'AttributeError'>
                                                   Error Contents: 'Exception' object has no attribute 'message'
                                                   Traceback (most recent call last):
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/resources/lib/ted_talks_scraper.py", line 17, in get_video_details
                                                       m3u8_url, title, speaker, plot, talk_json = talk_scraper.get_talk(talk_html, self.logger)
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/resources/lib/model/talk_scraper.py", line 14, in get_talk
                                                       raise Exception('Could not parse HTML.')
                                                   Exception: Could not parse HTML.
                                                   
                                                   During handling of the above exception, another exception occurred:
                                                   
                                                   Traceback (most recent call last):
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/default.py", line 14, in <module>
                                                       ted_talks.Main(args_map=args_map).run()
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/resources/lib/ted_talks.py", line 336, in run
                                                       modes[mode].run(self.args_map)
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/resources/lib/ted_talks.py", line 148, in run
                                                       self.run_internal(args)
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/resources/lib/ted_talks.py", line 166, in run_internal
                                                       self.ui.playVideo(args['url'], args['icon'] if 'icon' in args else None)
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/resources/lib/ted_talks.py", line 71, in playVideo
                                                       playlist, title, subs, info_labels = self.ted_talks.get_video_details(url=url, subs_language=subs_language)
                                                     File "/home/jan/.kodi/addons/plugin.video.ted.talks/resources/lib/ted_talks_scraper.py", line 19, in get_video_details
                                                       raise type(e)(e.message + "\nfor url '%s'" % (url))
                                                   AttributeError: 'Exception' object has no attribute 'message'
                                                   -->End of Python script error report<--
                                                   
2023-06-11 22:37:07.320 T:374      INFO <general>: Python interpreter stopped
2023-06-11 22:37:07.344 T:148     ERROR <general>: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.ted.talks/?mode=playVideo&url=https%3A%2F%2Fwww.ted.com%2Ftalks%2Falona_fyshe_does_ai_ac
tually_understand_us%3Frss%3D172BB350-0205]
2023-06-11 22:37:07.378 T:148      INFO <general>: CVideoPlayer::CloseFile()
2023-06-11 22:37:07.386 T:252      INFO <general>: CVideoPlayer::OnExit()
2023-06-11 22:37:07.386 T:252      INFO <general>: Closing stream player 1
2023-06-11 22:37:07.386 T:252      INFO <general>: Waiting for audio thread to exit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.