Plex: Difference between revisions

From Hurlster Wiki
Jump to navigation Jump to search
Line 1: Line 1:
= Plex DVR =
= Plex DVR =
Install Comskip, PlexComkip, and Dependencies:<br>
Update DVR from command line<br>
As pointed out by Vincent in the comments, the following should be run inside the Plex Docker container. (Thank You)
To find your Plex Update URL navigate to your plex server in chrome (eg, 192.168.1.1:32400/web/), <br>
and open chrome developer tools (press F12). Once developer tools is open, press (Ctrl/Cmd)+Shift+P, <br>
type "network" and press enter. Then, find and click the "Refresh Guide" link in Plex. Over in the <br>
developer tools window/pane, the first request listed should start with "reloadGuide?". Right click <br>
the line and go to copy -> Copy link address. Paste the result below as plexUpdateURL. <br>
<pre>
#!/bin/bash
plexUpdateURL='http://192.168.0.254:32400/livetv/dvrs/xx/reloadGuide?X-Plex-Product=Plex%20Web&X-Plex-Version=4.69.1&X-Plex-Client-Identifier=123456789&X-Plex-Platform=Chrome&X-Plex-Platform-Version=97.0&X-Plex-Sync-Version=2&X-Plex-Features=external-media%2Cindirect-media&X-Plex-Model=bundled&X-Plex-Device=Windows&X-Plex-Device-Name=Chrome&X-Plex-Device-Screen-Resolution=1491x1324%2C2560x1440&X-Plex-Language=en'
plexHostPort='192.168.0.254:32400'


Install dependencies
curl --location --request POST "$plexUpdateURL" -H "authority: $plexHostPort" -H "content-length: 0" -H "pragma: no-cache" -H "cache-control: no-cache" -H "sec-ch-ua: 'Google Chrome';v='95', 'Chromium';v='95', ';Not A Brand';v='99'" -H "accept: text/plain, */*; q=0.01" -H "x-requested-with: XMLHttpRequest" -H "accept-language: en" -H "sec-ch-ua-mobile: ?0" -H "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" -H "sec-ch-ua-platform: 'macOS'" -H "origin: http://$plexHostPort" -H "sec-fetch-site: same-origin" -H "sec-fetch-mode: cors" -H "sec-fetch-dest: empty" -H "referer: http://$plexHostPort/web/index.html"
apt-get install -y git build-essential libargtable2-dev libsdl1.2-dev autoconf automake libtool libavutil-dev libavformat-dev vim ffmpeg mkvtoolnix
</pre>
 
Install Comskip
cd /tmp
git clone git://github.com/erikkaashoek/Comskip
cd Comskip
./autogen.sh
./configure
make
make install
cd /tmp
rm -rf /tmp/Comskip
Get PlexComskip
cd /opt
git clone https://github.com/ekim1337/PlexComskip.git
cd PlexComskip
cp PlexComskip.conf.example PlexComskip.conf
 
Edit PlexComskip.conf and change ffmpeg-path
ffmpeg-path: /usr/bin/ffmpeg
 
Create comskip.sh with the following content
#!/bin/sh
/usr/bin/mkvpropedit "$1" --edit track:a1 --set language=eng --edit track:v1 --set language=eng
sleep 10
/usr/bin/python /opt/PlexComskip/PlexComskip.py "$1"
 
Save file and set permissions
chmod 777 comskip.sh
 
Configure Plex to use script:<br>
Login to Plex Media Server<br>
Click Settings<br>
Select Server and then DVR (Beta)<br>
Choose DVR Settings and entry  /opt/PlexComskip/comskip.sh into the Post Processing Script section.<br>


= RasPlex =
= RasPlex =

Revision as of 03:15, 15 January 2022

Plex DVR

Update DVR from command line
To find your Plex Update URL navigate to your plex server in chrome (eg, 192.168.1.1:32400/web/),
and open chrome developer tools (press F12). Once developer tools is open, press (Ctrl/Cmd)+Shift+P,
type "network" and press enter. Then, find and click the "Refresh Guide" link in Plex. Over in the
developer tools window/pane, the first request listed should start with "reloadGuide?". Right click
the line and go to copy -> Copy link address. Paste the result below as plexUpdateURL.

#!/bin/bash
plexUpdateURL='http://192.168.0.254:32400/livetv/dvrs/xx/reloadGuide?X-Plex-Product=Plex%20Web&X-Plex-Version=4.69.1&X-Plex-Client-Identifier=123456789&X-Plex-Platform=Chrome&X-Plex-Platform-Version=97.0&X-Plex-Sync-Version=2&X-Plex-Features=external-media%2Cindirect-media&X-Plex-Model=bundled&X-Plex-Device=Windows&X-Plex-Device-Name=Chrome&X-Plex-Device-Screen-Resolution=1491x1324%2C2560x1440&X-Plex-Language=en'
plexHostPort='192.168.0.254:32400'

curl --location --request POST "$plexUpdateURL" -H "authority: $plexHostPort" -H "content-length: 0" -H "pragma: no-cache" -H "cache-control: no-cache" -H "sec-ch-ua: 'Google Chrome';v='95', 'Chromium';v='95', ';Not A Brand';v='99'" -H "accept: text/plain, */*; q=0.01" -H "x-requested-with: XMLHttpRequest" -H "accept-language: en" -H "sec-ch-ua-mobile: ?0" -H "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" -H "sec-ch-ua-platform: 'macOS'" -H "origin: http://$plexHostPort" -H "sec-fetch-site: same-origin" -H "sec-fetch-mode: cors" -H "sec-fetch-dest: empty" -H "referer: http://$plexHostPort/web/index.html"

RasPlex

Installation on RaspberryPi 2 Get and install Rasbian Lite

https://downloads.raspberrypi.org/raspbian_lite_latest.torrent
  • Burn with Win32DiskImager

Prepare wireless network (/etc/wpa_supplicant/wpa_supplicant.conf)

network={
ssid="SSID"
psk="SSIDPASSWD"
}

Install updated tools

$ sudo wget -q -O - https://www.bunkus.org/gpg-pub-moritzbunkus.txt | sudo apt-key add -
$ sudo apt-get update && sudo apt-get upgrade -y
$ sudo nano /etc/apt/sources.list.d/bunkus.list

add these lines......

deb http://www.bunkus.org/debian/jessie/ ./
deb-src http://www.bunkus.org/debian/jessie/ ./

Then install plexmediaserver on raspberrypi 2

$ sudo wget https://dev2day.de/plex-latest
$ sudo dpkg -i plex-latest
$ sudo apt-get install mkvtoolnix libexpat1 libav-tools ntfs-3g samba samba-common exfat-utils -y
$ sudo wget -q -O - http://dev2day.de/pms/dev2day-pms.gpg.key | sudo apt-key add -
$ sudo su
# echo "deb http://dev2day.de/pms/ jessie main" >> /etc/apt/sources.list.d/pms.list
# apt-get update
# apt-get install plexmediaserver
  • left out ffmpeg

Mount external(USB/HDD) disk:

$ sudo nano /etc/fstab
/dev/sda1 /media/usbhdd1 ntfs-3g gid=pi,uid=pi,noatime 0 0
$ sudo mkdir -p /media/usbhdd1
$ sudo reboot
  • Option
Follow these simple steps to install PMS on your armv7 device running Debian or a deriviate :
# become root
sudo su
# add my public key
wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | apt-key add -
# add my PMS repo
echo "deb https://dev2day.de/pms/ jessie main" >> /etc/apt/sources.list.d/pms.list
# activate https
apt-get install apt-transport-https
# update the repos
apt-get update
# install PMS
apt-get install plexmediaserver-installer
For ARM64 please use the following steps:
# become root
sudo su
# add my public key
wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | apt-key add -
# add my PMS repo
echo "deb [arch=armhf] https://dev2day.de/pms/ jessie main" >> /etc/apt/sources.list.d/pms.list
# activate https
apt-get install apt-transport-https
#enable armhf support
dpkg --add-architecture armhf 
# update the repos
apt-get update
# install PMS
apt-get install plexmediaserver-installer:armhf

OpenPHT

  • Ubuntu 14.04 Trusty install
apt-get build-dep kodi
https://github.com/RasPlex/OpenPHT/releases
https://github.com/RasPlex/OpenPHT/releases/download/v1.6.2.123-e23a7eef/openpht_1.6.2.123-e23a7eef-trusty_amd64.deb
  • /etc/init.d/plexhometheater
#!/bin/sh

### BEGIN INIT INFO
# Provides:          plexhometheater
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts instance of Plex Home Theater
# Description:       starts instance of Plex Home Theater using start-stop-daemon and xinit
### END INIT INFO

############### EDIT ME ##################

# Read configuration variable file if it is present
[ -r /etc/default/plexhometheater ] && . /etc/default/plexhometheater

# path to xinit exec
DAEMON=/usr/bin/xinit

# startup args
DAEMON_OPTS="/usr/bin/openpht"

# script name
NAME=plexhometheater

# app name
DESC="Plex Home Theater"

# user
RUN_AS=root

# Path of the PID file
PID_FILE=/var/run/plexhometheater.pid

############### END EDIT ME ##################

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
        echo "Starting $DESC"
        start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
        ;;
  stop)
        echo "Stopping $DESC"
        start-stop-daemon --stop --pidfile $PID_FILE
        ;;

  restart|force-reload)
        echo "Restarting $DESC"
        start-stop-daemon --stop --pidfile $PID_FILE
        sleep 5
        start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

OpenPHT Debian

Installation for Jessie/Sid

  • Enable all extras.ubuntu.com packages in sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
  • Add repos
apt-get install software-properties-common
add-apt-repository ppa:team-xbmc/ppa
apt-get update
  • Install key
gpg --keyserver pgp.mit.edu --recv-keys 0x860CDC13 && gpg --armor --export 0x860CDC13 | apt-key add -
  • Add /etc/sources.list.d/openpht.list
deb http://www.preining.info/debian/ openpht-sid main
deb-src http://www.preining.info/debian/ openpht-sid main
  • Install libssl
wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.0.2_1.0.2h-1_i386.deb
dpkg -i libssl1.0.2_1.0.2h-1_i386.deb
apt-get update
apt-get install libjpeg62-dev openpht

OpenPHT Minimal (ION)

The following guide/information assume you have decent linux knowledge adn can create a bootable usb pen
Get the ubuntu minial iso from ubuntu, extract it to a usb pen. Use plex as your username in the setup
When the initial setup completes and you've logged in, run the following commands

sudo apt-get install software-properties-common pkg-config
sudo apt-add-repository ppa:plexapp/plexht
sudo apt-add-repository ppa:pulse-eight/libcec
  • Install plexmediaserver (if dual setup system)
wget https://downloads.plex.tv/plex-media-server/1.0.3.2461-35f0caa/plexmediaserver_1.0.3.2461-35f0caa_i386.deb
dpkg -i plexmediaserver_1.0.3.2461-35f0caa_i386.deb
  • Add /etc/sources.list.d/openpht.list
deb http://www.preining.info/debian/ openpht-sid main
deb-src http://www.preining.info/debian/ openpht-sid main
  • Install preining.info key
gpg --keyserver pgp.mit.edu --recv-keys 0x860CDC13 && gpg --armor --export 0x860CDC13 | apt-key add -
  • Update
apt-get update
  • Get libshair requirement
wget https://www.preining.info/debian/pool/main/s/shairplay/libshairplay0_0.9.0.20160527-1_i386.deb
dpkg -i libshairplay0_0.9.0.20160527-1_i386.deb
  • Install SSL
wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.0.2_1.0.2h-1_i386.deb
dpkg -i libssl1.0.2_1.0.2h-1_i386.deb
  • Install deps
sudo apt-get install openpht xorg alsa-utils lirc libsdl1.2-dev libjpeg-dev liblzo2-dev libyajl-dev \
libmicrohttpd-dev libtinyxml-dev libglew-dev libavahi-client-dev libflac++-dev libsdl-image1.2-dev \
libboost-thread1.58-dev libva-dev libtiff5-dev libjpeg-turbo8-dev libjpeg62-dev -y
  • NVidia only install
wget http://us.download.nvidia.com/XFree86/Linux-x86/340.96/NVIDIA-Linux-x86-340.96.run
chmod 755 NVIDIA-Linux-x86-340.96.run
sudo ./NVIDIA-Linux-x86-340.96.run -a -q --opengl-headers -X --dkms

sudo nvidia-xconfig -s --no-logo --force-generate --output-xconfig=/etc/X11/xorg.conf

Set X to be accessed by everyone?

sudo dpkg-reconfigure x11-common

Setup OpenPHT to boot at startup by editing openpht

sudo nano /etc/init.d/openpht

Paste this:

#!/bin/sh

### BEGIN INIT INFO
# Provides:          openpht
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts instance of Plex Home Theater
# Description:       starts instance of Plex Home Theater using start-stop-daemon and xinit
### END INIT INFO

############### EDIT ME ##################

# Read configuration variable file if it is present
[ -r /etc/default/plexhometheater ] && . /etc/default/plexhometheater

# path to xinit exec
DAEMON=/usr/bin/xinit

# startup args
DAEMON_OPTS="/usr/bin/openpht"

# script name
NAME=openpht

# app name
DESC="Plex Home Theater"

# user
RUN_AS=root

# Path of the PID file
PID_FILE=/var/run/openpht.pid

############### END EDIT ME ##################

test -x $DAEMON || exit 0

set -e

case "$1" in
 start)
       echo "Starting $DESC"
       start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
       ;;
 stop)
       echo "Stopping $DESC"
       start-stop-daemon --stop --pidfile $PID_FILE
       ;;

 restart|force-reload)
       echo "Restarting $DESC"
       start-stop-daemon --stop --pidfile $PID_FILE
       sleep 5
       start-stop-daemon --start -c $RUN_AS --background --pidfile $PID_FILE  --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
       ;;
 *)
       N=/etc/init.d/$NAME
       echo "Usage: $N {start|stop|restart|force-reload}" >&2
       exit 1
       ;;
esac

exit 0
  • Make executable
update-rc.d openpht defaults

And finally run

sudo reboot