Git Product home page Git Product logo

hypnotix's Introduction

Hypnotix

build

Hypnotix is an IPTV streaming application with support for live TV, movies and series.

shadow

It can support multiple IPTV providers of the following types:

  • M3U URL
  • Xtream API
  • Local M3U playlist

License

Requirements

TV Channels and media content

Hypnotix does not provide content or TV channels, it is a player application which streams from IPTV providers.

By default, Hypnotix is configured with one IPTV provider called Free-TV: https://github.com/Free-TV/IPTV.

This provider was chosen because it satisfied the following criterias:

  • It only includes free, legal, publicly available content
  • It groups TV channels by countries
  • It doesn't include adult content

Issues relating to TV channels and media content should be addressed directly to the relevant provider.

Note: Feel free to remove Free-TV from Hypnotix if you don't use it, or add any other provider you may have access to or local M3U playlists.

Wayland compatibility

If you're using Wayland go the Hypnotix preferences and add the following to the list of MPV options:

vo=x11

Run Hypnotix with:

GDK_BACKEND=x11 hypnotix

hypnotix's People

Contributors

abobier avatar atzlinux avatar azureit avatar brccabral avatar brenders avatar carmina16 avatar clefebvre avatar dyefremov avatar fire-hawk-86 avatar freddii avatar hcombination avatar itzswirlz avatar jonathonf avatar josephmcc avatar lulol avatar mtwebster avatar nikokrause avatar peterdavehello avatar qarkai avatar superolmo avatar thall avatar tvkaista avatar woxcab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hypnotix's Issues

Feature request: VDR support

It would be great if Hypnotix could work as VDR streamdev client: VDR (video disk recorder) is very popular Linux PVR application for DVB devices (not sure if any ATSC or ISDB standard is supported) that also allows streaming and remote control.
The stream is an MPEG-2 transport stream via http as received (so just standard codecs) , that's the easy part, but great would be EPG, manage timers, etc. I would really like that as an application (scroll lists, context menus etc.) and not as video overlay.

Feature: adaptive playback of network streams

To avoid the Classic spinner and an annoying buffering %, please do:

  • two different threads and a ring buffer: One thread downloads into the ring, the other plays from It.
  • ring filling should be monitored by a third thread, which can act on the other two via runtime config, slowing down the download when the player Is back, and/or lowerinng the playback bitrate when the download Is late.

Add support for local file as m3u provider

Currently there's no way to add a local file as m3u provider, e.g. DVB-C devices can create those files.

Tried using
gsettings set org.x.hypnotix providers "['Provider_Name:::file:///home/user/tv.m3u']"
but it doesn't work:

No connection adapters were found for 'file:///home/user/tv.m3u'
Traceback (most recent call last):
  File "/usr/lib/hypnotix/hypnotix.py", line 50, in activate
    window = MainWindow(self)
  File "/usr/lib/hypnotix/hypnotix.py", line 152, in __init__
    self.reload()
  File "/usr/lib/hypnotix/hypnotix.py", line 283, in reload
    self.manager.load_channels(provider)
  File "/usr/lib/hypnotix/common.py", line 102, in load_channels
    with open(provider.path, "r") as file:
FileNotFoundError: [Errno 2] File or directory not found: '/home/user/.hypnotix/providers/providername'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 153, in apport_excepthook
    with os.fdopen(os.open(pr_filename,
FileNotFoundError: [Errno 2] File or directory not found: '/var/crash/_usr_lib_hypnotix_hypnotix.py.1000.crash'

Original exception was:
Traceback (most recent call last):
  File "/usr/lib/hypnotix/hypnotix.py", line 50, in activate
    window = MainWindow(self)
  File "/usr/lib/hypnotix/hypnotix.py", line 152, in __init__
    self.reload()
  File "/usr/lib/hypnotix/hypnotix.py", line 283, in reload
    self.manager.load_channels(provider)
  File "/usr/lib/hypnotix/common.py", line 102, in load_channels
    with open(provider.path, "r") as file:
FileNotFoundError: [Errno 2] File or directory not found: '/home/user/.hypnotix/providers/providername'

Exchanging the freeiptv file with a custom one doesn't work as it gets overwritten.

Streams in Wayland Session not working

Hi together,

i can't open streams if Hypnotix is started in a Wayland session like sway.
A workaround for now is to force Hypnotix to use XWayland: env GDK_BACKEND=x11 hypnotix

Here is the error output:

  File "/usr/lib/hypnotix/hypnotix.py", line 1018, in on_mpv_drawing_area_realize
    self.reinit_mpv()
  File "/usr/lib/hypnotix/hypnotix.py", line 1039, in reinit_mpv
    input_vo_keyboard=True,osc=True, ytdl=True, wid=str(self.mpv_drawing_area.get_window().get_xid()))
AttributeError: 'GdkWaylandWindow' object has no attribute 'get_xid'
CHANNEL: 'Das Erste HD' (https://mcdn.daserste.de/daserste/de/master_3744.m3u8)
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/hypnotix/hypnotix.py", line 591, in play_async
    self.reinit_mpv()
  File "/usr/lib/hypnotix/hypnotix.py", line 1039, in reinit_mpv
    input_vo_keyboard=True,osc=True, ytdl=True, wid=str(self.mpv_drawing_area.get_window().get_xid()))
AttributeError: 'GdkWaylandWindow' object has no attribute 'get_xid'

Add support for MPV options

Streams served via rtsp:// aren't played: Nothing happens on selection (stdout mentions the channel when selected)

Example m3u file from a Fritz!Box DVB-C device:

#EXTM3U
#EXTINF:0,Das Erste
#EXTVLCOPT:network-caching=1000
rtsp://fritz.box:554/?avm=1&freq=120&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=0&pids=0,15,17,20,6615
#EXTINF:0,ZDF
#EXTVLCOPT:network-caching=1000
rtsp://fritz.box:554/?avm=1&freq=128&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=0&pids=0,15,17,20,6615,6160
#EXTINF:0,3sat
#EXTVLCOPT:network-caching=1000
rtsp://fritz.box:554/?avm=1&freq=132&bw=8&msys=dvbc&mtype=256qam&sr=6900&specinv=0&pids=0,15,17,20,6615,1632

it doesn't start in Debian 10.6 Cinnamon

Hello. I have tried Hypnotix from .deb arcchive and it is supossed to be install but in terminal I have got this answTraceback (most recent call last):
File "/usr/lib/hypnotix/hypnotix.py", line 64, in activate
window = MainWindow(self)
File "/usr/lib/hypnotix/hypnotix.py", line 92, in init
self.builder.add_from_file(gladefile)
gi.repository.GLib.Error: gtk-builder-error-quark: /usr/share/hypnotix/hypnotix.ui:846:1 Invalid object type 'XAppStackSidebar' (6)
Any solution? Thank you very much.

Unable to run hypnotix

I installed the deb package provide with dpkg. First it was missing the requests module. So I installed it using pip. But after that, having this error running it through terminal.

Traceback (most recent call last):                                                                          
  File "/usr/lib/hypnotix/hypnotix.py", line 64, in activate
    window = MainWindow(self)
  File "/usr/lib/hypnotix/hypnotix.py", line 92, in __init__
    self.builder.add_from_file(gladefile)
gi.repository.GLib.Error: gtk-builder-error-quark: /usr/share/hypnotix/hypnotix.ui:846:1 Invalid object type 'XAppStackSidebar' (6)

And nothing is happening after that.

No movies?

Hypnotix does not recognize movies and drops them under TV channels. Series are working fine.

afbeelding

Kubuntu/KDE neon problem with hypnotix 1.1

I have test this program with Kubuntu 20.04.1 LTS and KDE neon 20.04 LTS always based on ubuntu.
I installed the deb file via qapt-deb-installer to simplify the dependency search operation, the installation was done without any problem.
The program once opened shows the main screen as in the photos in the main page of github, but once chosen a country "freezes" as in the following screen, I can go back without any problem only that I can't play any video stream.
Screenshot_20201205_193042
I can't understand what it depends also because I don't receive any crash or block the application.

How to proplerly add MPV Options

Hello, I am very happy so far with performance. I am wondering how does one correctly add mpv options? I've added my settings into the mpv options spot separated by commas and space ", " but they didn't take affect. I've tried with the settings separated by a comma setting,setting" but that didn't work either.

Here are the options I'm trying to add.

MOUSE_BTN3 ignore
MOUSE_BTN4 ignore

These options disable seeking of playing media with the mouse scroll wheel.

I have these in use in my current mpv install located in /etc/mpv I wonder if there's a way to select the files or link the conf files to the mpv when in use with the app.

If not known these specific settings go into a document called input.conf in /etc/mpv

Unable to add Xtream playlist or remove the free playlist

If I open hypnotix from the menu, I have no idea what is going on. I just see that nothing happens when I click on all the necessary buttons. When opened from the console however, I do see some logging:

Trying to remove the free playlist:
~$ Loading providers...
Free-IPTV: Getting playlist...
Free-IPTV: Checking playlist...
Free-IPTV: Loading channels...
Traceback (most recent call last):
File "/usr/lib/hypnotix/hypnotix.py", line 774, in on_delete_button_clicked
self.navigate_to("delete_page", name=provider.name)
TypeError: wrapper() got an unexpected keyword argument 'name'
Traceback (most recent call last):
File "/usr/lib/hypnotix/hypnotix.py", line 774, in on_delete_button_clicked
self.navigate_to("delete_page", name=provider.name)
TypeError: wrapper() got an unexpected keyword argument 'name'

Trying to add my own Xtream playlist:
~$ Loading providers...
Free-IPTV: Downloading playlist...
Free-IPTV: Checking playlist...
Free-IPTV: Loading channels...
Shenzen: Downloading playlist...
Shenzen: Checking playlist...
Loading providers...
Free-IPTV: Downloading playlist...
Free-IPTV: Checking playlist...
Free-IPTV: Loading channels...
Shenzen: Downloading playlist...
Shenzen: Checking playlist...

There is however no Shenzen playlist to select after I added it. The only one remains the free list.
I'm running it on Ubuntu 20.04, updated today, downloaded the .deb from github and installed it with apt.

I have multiple paid Xtream subscriptions, none of them work on hypnotix but they do on IPTV Smarters on my Android TV box.

Feature request: Channel history

Remember viewed channels and allow easy navigation back and forth between the last few viewed channels. E.g. my IPTV box at home allows to switch the current and the last channel and if you long press back you get the channel view history and can select from the whole list ordered by last time viewed.

Great app. Thanks a lot for your work.

Back Arrow isn't exactly drawn to theme

I am using the Yaru-Dark theme on my GNOME right now-and I'm pretty sure themes have support for images with arrows... and although the color is orange too, I don't think this is correct.

It should pull this out of the theme.

See image
Screenshot from 2020-11-23 11-08-43

[feature resquest] Hdmi-Cec support

Please add Hdmi-Cec support, only compatible with some HDMI cables.

Example
on a Raspberry pi 3 I have LibreELEC with Kodi 18 I know it has CEC support.
So I can use the IR remote control on my TV to control the Kodi, just using an HDMI cable. Without having any other IR receiver plugged into the Raspberry pi

I don't know if Hdmi-Cec is supported by all graphics cards

note: see too: cec-utils and cec-client

note: libreelec [kodi] use Pulse-Eight/libcec
https://github.com/Pulse-Eight/libcec

Error in make install

I am trying to install Hypnotix from source.
I downloaded it, extracted it, went to the hypnotix-master directory and typed:
make
It gave a warning about languages with a hyphon in it. As it was just a warning I typed:
sudo make install
And this gave me the following error:
make: *** No rule to make target 'install'. Stop.
This often happens when you forget to do a ./configure, but there is no configure in hypnotix-master.
I tried it on mint mate 20 and lmde4 both with the same result.

What am I doing wrong?

Feature request: Fullscreen mode

It would be useful to have a fullscreen mode.
I'd imagine it could be enabled by keyboard shortcut or button in the bottom bar.

[Feature Request] Option to Hide Side Bar in Windowed Mode

This isn't a major necessity but just a casual request. I do things in windowed mode a lot and would find it convenient to be able to hide the left content selection sidebar and maybe even getting the video to go to the resolution with resize options if needed.

Edit: the resize and resolution addition is due to the black border bars I see top and bottom in windowed mode.

Not working at all

image
It just doesn't work. There are no context menus or anything otherwise to help with that.

Doesn't start on Debian Buster

I've tried the released .deb file as well as compiling from source by myself.
It builds ok, just when I try to run it, I get the following.

Traceback (most recent call last): File "/usr/lib/hypnotix/hypnotix.py", line 64, in activate window = MainWindow(self) File "/usr/lib/hypnotix/hypnotix.py", line 92, in __init__ self.builder.add_from_file(gladefile) gi.repository.GLib.Error: gtk-builder-error-quark: /usr/share/hypnotix/hypnotix.ui:846:1 Invalid object type 'XAppStackSidebar' (6)

I'm guessing there is some dependency that's missing on debian?

Ubuntu BIONIC Dependency is not satisfiable: python3-imdbpy

Unable to attempt to correct this deficiency ...
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"

$ sudo apt search python3 | grep -i imdb
<>

https://lists.archive.carbon60.com/mythtv/commits/629355 << echos the issue below with 18.04 BIONIC >>
** although on another entity others attempting to use mythtv are also experiencing the same ... **

<>
python3-imdbpy is not available for *ubuntu 18.04 (Bionic) as a result
mythtv-frontend from ppa:mythbuntu/31 will not install.
<>

Doubt: M3U config for Series ?

Doubt:

could give an example of how the m3u file should be to be included correctly in the Movies and Series categories and can be interpreted by the imdb api.

And how to include image in the channel categories. For example, using the standard 'Free-IPTV / Countries' channel list, the hypnotix already inserts the countries flag.

Would it be possible to insert another custom image, how to do?

Build for Fedora?

Is it possible to build for Fedora? If so, would you be kind enough to share the necessary steps?
Thank you.

Video resolution

How can I configure video resolution for slow bandwidth internet?
Thx

Chromecast

Can you make this app Chromecast enabled?

Feature Request: Quality Control

In developing countries like India, internet coverage is not great in many areas. Playing videos in HD, is highly impossible, it would be nice to have a quality control, for better experience.

Recover original settings

First thanks for the work on this!! Something I have been needing as I travel off shore. That said this command -
gsettings set org.x.hypnotix providers "['Provider_Name:::https://m3u_url.m3u']"
that lets you add your own provider works, until the provider stops.
Then you are left with a total non function app. I was able to recover, not by a removal or re-install, not all the files get cleaned up.
I had another pc I was able to use gsettings list-recursively org.x.hypnotix to find how to recover the initial set up.
Maybe in the ReadMe info?
Again thanks for the hard work, if you pm me directly I would like to contribute some $'s.

Feature request: Plugin or Addon in python to be able to use web scraping

Feature request: Plugin or Addon in python to be able to use web scraping [html request, beautifulsoup, regex, etc ...] and thus create the links at run time with the content that was extracted from html pages.

Because it is very common for live video links to have tokens that expire daily.
And using web scraping makes it easy to capture that link with token at run time

In a similar way as with Kodi addons.

For example, a fixed list would be created with
name, logo, group and a 'URL for Scraping'

Then this 'URL for Scraping' would be manipulated by a Python script and would return the link of the media file to be played.


URL for Scraping:
https://redecanaistv.com/assistir-sbt-online-24-horas-ao-vivo_8a0548907.html

Video link after web scraping:
https://streaming.belugacdn.link/a/hls1/sbt.m3u8?expires=1606600451&token=a1a5f40f1926bcd0a444f079caaae5e6

Keyboard Shortcuts Need Update

The Keyboard Shortcuts Menu could use some update, or point to where to edit them, starting with themself ctrl + k for keyboard shortcuts. Many thanks for the great work.

Hypnotix is viewed as 'hypnotix.py'

It says Hypnotix as the main window title-but in GNOME, Dash and the top says it's "Hypnotix.py"

While it may be for Cinnamon mostly, other GTK distros for people using it shouldn't experience this.

Doesn't start on Mint 19.3

Doesn't start from menu. When started from terminal have some errors. Any help :-)

`~$ Traceback (most recent call last):
File "/usr/lib/hypnotix/hypnotix.py", line 24, in import mpv
File "/usr/lib/hypnotix/mpv.py", line 567, in _handle_func('mpv_render_context_create', [MpvRenderCtxHandle, MpvHandle, POINTER(MpvRenderParam)], c_int, ec_errcheck, ctx=None)
File "/usr/lib/hypnotix/mpv.py", line 478, in _handle_func func = getattr(backend, name)
File "/usr/lib/python3.6/ctypes/init.py", line 361, in getattr func = self.getitem(name)
File "/usr/lib/python3.6/ctypes/init.py", line 366, in getitem func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/x86_64-linux-gnu/libmpv.so.1: undefined symbol: mpv_render_context_create
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 154, in apport_excepthook
os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'wb') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/var/crash/_usr_lib_hypnotix_hypnotix.py.1000.crash'

Original exception was:
Traceback (most recent call last):
File "/usr/lib/hypnotix/hypnotix.py", line 24, in import mpv
File "/usr/lib/hypnotix/mpv.py", line 567, in _handle_func('mpv_render_context_create', [MpvRenderCtxHandle, MpvHandle, POINTER(MpvRenderParam)], c_int, ec_errcheck, ctx=None)
File "/usr/lib/hypnotix/mpv.py", line 478, in _handle_func func = getattr(backend, name)
File "/usr/lib/python3.6/ctypes/init.py", line 361, in getattr func = self.getitem(name)
File "/usr/lib/python3.6/ctypes/init.py", line 366, in getitem func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/x86_64-linux-gnu/libmpv.so.1: undefined symbol: mpv_render_context_create
`

Could you add url support with "User-Agent" and "Referer" ?

Hi, could you add url support with "User-Agent" and "Referer", as in Kodi?

an example of a minimal add-on for kodi that plays a video with a url that requires "User-Agent" and "Referer"
http://www.mediafire.com/file/90mj1g38sgxg6sk/plugin.video.test-referer.zip/file

url that opens in Kodi:
https://geralorigin.eu-central-1.edge.mycdn.live/live/cultura/video.m3u8|Referer=https://topcanais.com/assistir-tv-cultura-ao-vivo-24-horas-online/&User-Agent=Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36

my m3u list-test:
gsettings set org.x.hypnotix providers "['Provider_Name:::https://raw.githubusercontent.com/kodi-rc/redecanais/master/teste.m3u']"

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.