Giter Club home page Giter Club logo

chris102994 / docker-plutotv Goto Github PK

View Code? Open in Web Editor NEW
9.0 3.0 3.0 32 KB

This is a simple project that scrapes the website and generates an M3U playlist every 8 hours along with a XMLTV object that is hosted over NGINX. The XMLTV and M3U playlist can be directly imported to Emby or Plex. Or if you'd like a buffer you can also import them into xteve or tvheadend.

License: GNU Lesser General Public License v3.0

Python 95.72% Shell 1.99% HTML 2.29%
pluto-tv docker emby scrapes unraid m3u-playlist xmltv plex xsdata

docker-plutotv's Introduction

https://www.pluto.tv/

Build Status Microbadger Size & Layers Image Pulls Alpine

PlutoTV s an American internet television service owned by ViacomCBS. Pluto is a free, advertiser-supported video on demand (AVOD) service that primarily offers a selection of programming content through digital linear channels designed to emulate the experience of traditional broadcast programming. The service's revenue is generated from video advertisements seen during programming within ad breaks structured similarly to those found on conventional television.

Pluto TV licenses its content directly from providers, and as of March 2020 has deals with 170 content partners providing more than 250 channels and 100,000 unique hours worth of programming. Its content is available via its website and supported apps.

This is a simple project that scrapes the website and generates an M3U playlist every 8 hours along with a XMLTV object that is hosted over NGINX.

The XMLTV and M3U playlist can be directly imported to Emby or Plex. Or if you'd like a buffer you can also import them into xteve or tvheadend.

Docker

docker run \
	--name=docker-plutotv \
	-p 8000:8000 \
	-v </path/to/appdata/config>:/config \
	--restart unless-stopped \
	christopher102994/docker-plutotv:ubuntu-18-latest

Parameters

Container specific parameters passed at runtime. The format is <external>:<internal> (e.g. -p 443:22 maps the container's port 22 to the host's port 443).

Parameter Function
-p 8000 This is the port inside the container by default however, you can map the outside port to be the same as the inner port. (Default 8000)
-v /config The directory where the application will store configuration information.
-e USERNAME The Username you wish to run as. (Optional)
-e GROUPNAME The Groupname you wish to run as. (Optional)
-e PUID The UID you wish to run and save files as. (Optional)
-e PGID The GID you wish to run and save files as. (Optional)
-e LOG_LEVEL The Python Logging log level for the PTV Scraper. (Default: ERROR)
-e PLUTO_USER_ID Your Pluto User ID. (Default: None)

Application Setup

The basic index is available at http://<ip>:<port>/

This will build and allow you to point your M3U Tuner to http://<ip>:<port>/PlutoTV.m3u and your XEPG tuner to http://<ip>:port/PlutoTVGuide.xml

docker-plutotv's People

Contributors

chris102994 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

docker-plutotv's Issues

Container starts, but links dont work -> 404 nginx

Error From container log.

[cont-init.d] 10-display-container-info: exited 0.

[cont-init.d] 40-fix-plutotv-attrs: executing...

[cont-init.d] 40-fix-plutotv-attrs: exited 0.

[cont-init.d] 50-first-run: executing...

Traceback (most recent call last):

File "/app/PlutoTV/PlutoTV/pluto_tv.py", line 322, in

main()

File "/app/PlutoTV/PlutoTV/pluto_tv.py", line 318, in main

ptv.main()

File "/app/PlutoTV/PlutoTV/pluto_tv.py", line 103, in main

ptvChannels.Root

File "/usr/local/lib/python3.6/dist-packages/xsdata/formats/bindings.py", line 29, in from_bytes

return self.parse(io.BytesIO(source), clazz)

File "/usr/local/lib/python3.6/dist-packages/xsdata/formats/dataclass/parsers/nodes.py", line 446, in parse

result = handler.parse(source)

File "/usr/local/lib/python3.6/dist-packages/xsdata/formats/dataclass/parsers/handlers/native.py", line 47, in parse

return self.process_context(iterparse(source, EVENTS))  # nosec

File "/usr/local/lib/python3.6/dist-packages/xsdata/formats/dataclass/parsers/handlers/native.py", line 61, in process_context

self.start_ns_bulk(self.ns_map),

File "/usr/local/lib/python3.6/dist-packages/xsdata/formats/dataclass/parsers/xml.py", line 57, in start

super().start(clazz, queue, objects, qname, attrs, ns_map)

File "/usr/local/lib/python3.6/dist-packages/xsdata/formats/dataclass/parsers/nodes.py", line 478, in start

child = item.child(qname, attrs, ns_map, len(objects))

File "/usr/local/lib/python3.6/dist-packages/xsdata/formats/dataclass/parsers/nodes.py", line 109, in child

raise ParserError(f"Unknown property {self.meta.qname}:{qname}")

xsdata.exceptions.ParserError: Unknown property element:tileGrayScale

[cont-init.d] 50-first-run: exited 1.

[cont-init.d] 60-fix-nginx-config: executing...

Ensuring proper NGINX configuration.

[cont-init.d] 60-fix-nginx-config: exited 0.

[cont-init.d] done.

[services.d] starting services

[run]: The Package Manager is apt-get

[services.d] done.

[nginx]: Starting . . .

Program Images Wrong

I've noticed that the program images are displaying something unrelated to the actual content. Generally it's a generic pluto tv image.

Channel Stability seems to be lacking sometimes

After m3u generation the file can be played properly without many hickups on VLC but on Emby (FFMpeg) it seems to be spotty/laggy + stops at times which requires a restart of the stream.

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.