GithubHelp home page GithubHelp logo

tonycpsu / streamglob Goto Github PK

View Code? Open in Web Editor NEW
34.0 8.0 10.0 2.05 MB

A console media browser designed to facilitate live and time-shifted viewing of online content.

License: GNU General Public License v3.0

Python 99.99% CSS 0.01%

streamglob's Introduction

streamglob

Build Status

streamglob facilitates live and time-shifted viewing of online content.

The current focus of this project is to provide a consistent console-based user experience for browsing and watching live and on-demand streaming content from various providers. The project was originally released under the name mlbstreamer with support for watching MLB.tv streams, but has expanded to include modules for watching video from NHL.tv, YouTube, Instagram, and RSS feeds, among others.

Installation

Right now, the install process is a bit complicated due to some upstream dependencies that need to be updated. Furthermore, Python 3.6 is the minimum supported version at this time.

If you're running Python 3.6+ the following should work:

$ git clone https://github.com/tonycpsu/streamglob
$ cd streamglob
$ pip install .
$ mkdir -p ~/.config/streamglob
$ cp docs/config.yaml.sample ~/.config/streamglob/config.yaml
$ vim ~/.config/streamglob/config.yaml

You should then be able to edit ~/.config/streamglob/config.yaml with your MLB.tv/NHL.tv credentials, then run streamglob.

Example of playing a single MLB game from the command-line:

$ streamglob mlb/2019-03-25.phi

Run with -v if you run into issues.

Configuration

A sample configuration file is available in doc/config.yaml.sample. Copy it to ~/.config/streamglob/config.yaml and modify it as needed. A more novice-friendly configuration mechanism is under development.

Using streamglob

Usage documentation to follow.

Credits

Tony Cebzanov ([email protected]) is the primary author and maintainer of streamglob, but significant contributions have been made by others, as detailed here.

streamglob is a successor to mlbstreamer, which was in turn modeled after the mlbviewer project developed by Matthew (daftcat) of the LinuxQuestions forums.

If you like this application and wish to support its continued development, you can do so here:

streamglob uses icons from th studio via https://www.flaticon.com

streamglob's People

Contributors

tonycpsu avatar snipem avatar mattiasa avatar sdelafond avatar mkomko avatar

Stargazers

Christina Warren avatar  avatar  avatar Bryce Mintie avatar  avatar  avatar Dutch avatar Brandon Summers avatar Jimmy Briggs avatar tg-z avatar Røbert Digital avatar Rob avatar Austin Passy avatar  avatar C4 avatar  avatar  avatar Miles avatar Will Skora avatar An Nguyen avatar  avatar Aaron Guzman avatar Tyler Richey avatar  avatar Mark Vadeika avatar Matt Haffner avatar Lee Cherry avatar  avatar  avatar  avatar Kyle MacLeod avatar  avatar  avatar Jeff Scott avatar

Watchers

 avatar James Cloos avatar  avatar  avatar  avatar  avatar  avatar Røbert Digital avatar

streamglob's Issues

Games from previous seasons?

Does this program work for downloading games pre-2019? I just tried to get a 2017 game using the same command that has been working for games from last year but it gave a media.missing error.

Not and issue just a request on how to.

I asked this on the mlbstreamer, so not sure if this will work on stremglob. Is it possible to specify a tcp port for streamlink. Lets say I wanted to watch two streams at once, the issue of using the config.yaml to setup my port info, it would tell streamlink to use the same port. In mlbstreamer i updated play.py to accept -t and then add in the cmd "--player-external-http",
"--player-external-http-port", "%s" %(port),
Is that possible with streamglob ?

TypeError: startswith first arg must be str or a tuple of str, not NoneType

When running for example command streamglob download://nhl/2019-04-14.sjs -v I end up with following log:

2019-04-15 10:54:53 [ main:642 ] [ debug] streamglob starting
2019-04-15 10:54:53 [ bam:1745] [ debug] getting schedule: 1, None, 2019-04-14, 2019-04-14, None, None, None
2019-04-15 10:54:53 [ bam:1762] [ debug] https://statsapi.web.nhl.com/api/v1/schedule?sportId=1&startDate=2019-04-14&endDate=2019-04-14&gameType=&gamePk=&teamId=&hydrate=linescore,team,game(teams,content(summary,media(epg,milestones),editorial(preview,recap),highlights(gamecenter(items))))
2019-04-15 10:54:53 [ dropdown:822 ] [ debug] select: Video
2019-04-15 10:54:53 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Video')
2019-04-15 10:54:53 [ dropdown:822 ] [ debug] select: Video
2019-04-15 10:54:53 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Video')
2019-04-15 10:54:53 [ dropdown:822 ] [ debug] select: 720p
2019-04-15 10:54:53 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', '720p')
2019-04-15 10:54:53 [ dropdown:822 ] [ debug] select: Live
2019-04-15 10:54:53 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Live')
2019-04-15 10:54:53 [ columns:128 ] [ debug] column start, width: given, 6
2019-04-15 10:54:53 [ columns:128 ] [ debug] column away_team_box, width: given, 16
2019-04-15 10:54:53 [ columns:128 ] [ debug] column home_team_box, width: given, 16
2019-04-15 10:54:53 [ columns:128 ] [ debug] column line, width: weight, 1
2019-04-15 10:54:53 [ columns:128 ] [ debug] column media_available, width: given, 10
2019-04-15 10:54:53 [ columns:128 ] [ debug] column game_id, width: weight, 1
2019-04-15 10:54:53 [ datatable:1295] [ debug] refresh: False
2019-04-15 10:54:53 [ datatable:1245] [ debug] requery: None, 0
2019-04-15 10:54:53 [ columns:128 ] [ debug] column team, width: given, 10
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 1, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 2, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 3, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column goals, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column shotsOnGoal, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column index, width: weight, 1
2019-04-15 10:54:53 [ bam:955 ] [ debug] geting media for game 2018030113
2019-04-15 10:54:53 [ columns:128 ] [ debug] column team, width: given, 10
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 1, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 2, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 3, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column goals, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column shotsOnGoal, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column index, width: weight, 1
2019-04-15 10:54:53 [ bam:955 ] [ debug] geting media for game 2018030163
2019-04-15 10:54:53 [ columns:128 ] [ debug] column team, width: given, 10
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 1, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 2, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 3, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column goals, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column shotsOnGoal, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column index, width: weight, 1
2019-04-15 10:54:53 [ bam:955 ] [ debug] geting media for game 2018030183
2019-04-15 10:54:53 [ columns:128 ] [ debug] column team, width: given, 10
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 1, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 2, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column 3, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column goals, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column shotsOnGoal, width: given, 3
2019-04-15 10:54:53 [ columns:128 ] [ debug] column index, width: weight, 1
2019-04-15 10:54:53 [ bam:955 ] [ debug] geting media for game 2018030143
2019-04-15 10:54:53 [ session:153 ] [ debug] getting cached response for https://statsapi.web.nhl.com/api/v1/teams?2019
2019-04-15 10:54:53 [ session:165 ] [ debug] using cached response for https://statsapi.web.nhl.com/api/v1/teams?2019
2019-04-15 10:54:53 [ bam:1745] [ debug] getting schedule: 1, None, 2019-04-14, 2019-04-14, None, 28, None
2019-04-15 10:54:53 [ bam:1762] [ debug] https://statsapi.web.nhl.com/api/v1/schedule?sportId=1&startDate=2019-04-14&endDate=2019-04-14&gameType=&gamePk=&teamId=28&hydrate=linescore,team,game(teams,content(summary,media(epg,milestones),editorial(preview,recap),highlights(gamecenter(items))))
2019-04-15 10:54:53 [ selector_events:53 ] [ debug] Using selector: EpollSelector
Traceback (most recent call last):
File "/home/eithrial/.local/bin/streamglob", line 11, in
load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/main.py", line 655, in main
run_cli(action, provider, selection, **opts)
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/main.py", line 573, in run_cli
tdout=sys.stdout, stderr=sys.stderr, **kwargs
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/base.py", line 418, in download
sources, kwargs = self.play_args(selection, **kwargs)
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 2056, in play_args
source, kwargs = super().play_args(selection, **kwargs)
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/base.py", line 360, in play_args
source = self.get_source(selection, **kwargs)
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 2049, in get_source
feed_type = feed_type
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 1088, in select_media
m for m in self.media
File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 1089, in
if m.media_type.lower().startswith(media_type)
TypeError: startswith first arg must be str or a tuple of str, not NoneType

I have two computers with Arch Linux installed and configurations are almost identical. On one of these there are no errors. MLB works fine.

Any clues where there may be the root of the problem?

NHL schedule broken today

Today being the first day of NHL playoffs (yay!), it looks like the json data has changed slightly. I am getting a traceback on a missing json field:

  File "/home/macleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/providers/bam.py", line 1697, in <genexpr>
    for g in self.game_map.values()
  File "/home/macleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/providers/bam.py", line 646, in from_json
    venue = g["venue"]["name"]
KeyError: 'name'

I've patched it locally with this (starting in providers/bam.py, line 646):

        if "name" in ["venue"]:
            venue = g["venue"]["name"]
        else:
            venue = "n/a"

All-Star Game

Is the MLB All-Star Game already supported by streamglob? If so, what is the command-line syntax for watching or downloading it? Is there a team abbreviation?

Thanks in advance!

Picking Home/Away stream

In my case commands streamglob mlb/2019-03-31.det and streamglob mlb/2019-03-31.tor always pick away stream.

Btw. if game goes into extra innings it the main screen of streamglobe that there were extra innings. It shows those extra innings even if team is in hide score list. I think it is quite a huge spoiler.

Using mlb features only

I may be missing something obvious, but is there a way to use just the MLB features? I don't have NHL credentials. I get the following error, which I think comes from not being able to log into NHL. The only changes I made to the sample config.yaml file is to insert my mlb user name and password.

2019-05-14 22:07:06 [ session:105 ] [ debug] creating new session: (), {'username': redacted, 'password': redacted}
2019-05-14 22:07:08 [ session:105 ] [ debug] creating new session: (), {'username': 'changeme', 'password': 'CHANGEME'}
2019-05-14 22:07:12 [ main:645 ] [ debug] streamglob starting
2019-05-14 22:07:12 [ selector_events:53 ] [ debug] Using selector: EpollSelector
Traceback (most recent call last):
File "/usr/local/bin/streamglob", line 11, in
load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
File "/usr/local/lib/python3.7/site-packages/streamglob/main.py", line 656, in main
action, provider, selection, opts = providers.parse_spec(options.spec)
File "/usr/local/lib/python3.7/site-packages/streamglob/providers/init.py", line 36, in parse_spec
(action, provider, identifier, options) = MEDIA_SPEC_RE.search(spec).groups()
TypeError: expected string or bytes-like object

TypeError: expected string or bytes-like object

Getting this in both Linux and MacOS now.

streamglob -v 2019-05-08 17:31:06 [ session:105 ] [ debug] creating new session: (), {'username': '***', 'password': '***'} 2019-05-08 17:31:06 [ __main__:645 ] [ debug] streamglob starting 2019-05-08 17:31:06 [ selector_events:53 ] [ debug] Using selector: KqueueSelector Traceback (most recent call last): File "/usr/local/bin/streamglob", line 11, in <module> load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')() File "/usr/local/lib/python3.7/site-packages/streamglob/__main__.py", line 656, in main action, provider, selection, opts = providers.parse_spec(options.spec) File "/usr/local/lib/python3.7/site-packages/streamglob/providers/__init__.py", line 36, in parse_spec (action, provider, identifier, options) = MEDIA_SPEC_RE.search(spec).groups() TypeError: expected string or bytes-like object

nhl: crash on downloading recap

Hard crash when selecting download of recap. It looks like an issue with the MediaItem 'content' attribute not being initialized. Very reproducible.

Traceback:

Traceback (most recent call last):
  File "/home/kmacleod/.virtualenvs/streamglob/bin/streamglob", line 10, in <module>
    sys.exit(main())
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/__main__.py", line 657, in main
    run_gui(action, provider, **opts)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/__main__.py", line 554, in run_gui
    state.loop.run()
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/main_loop.py", line 286, in run
    self._run()
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/main_loop.py", line 384, in _run
    self.event_loop.run()
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/main_loop.py", line 1487, in run
    reraise(*exc_info)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/compat.py", line 58, in reraise
    raise value
  File "/usr/lib64/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/raw_display.py", line 404, in <lambda>
    event_loop, callback, self.get_available_raw_input())
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/raw_display.py", line 502, in parse_input
    callback(processed, processed_codes)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/main_loop.py", line 411, in _update
    self.process_input(keys)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/main_loop.py", line 511, in process_input
    k = self._topmost_widget.keypress(self.screen_size, k)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/wimp.py", line 648, in keypress
    return self._current_widget.keypress(size, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 1590, in keypress
    key = self.focus.keypress(tsize, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 1590, in keypress
    key = self.focus.keypress(tsize, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 2271, in keypress
    key = w.keypress((mc,) + size[1:], key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/__main__.py", line 117, in keypress
    return super(BaseTabView, self).keypress(size, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/panwid/tabview.py", line 260, in keypress
    return super(TabView, self).keypress(size, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 1590, in keypress
    key = self.focus.keypress(tsize, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/__main__.py", line 245, in keypress
    return super().keypress(size, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 1590, in keypress
    key = self.focus.keypress(tsize, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/providers/base.py", line 81, in keypress
    key = super().keypress(size, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/panwid/dialog/__init__.py", line 44, in keypress
    return super(PopUpOverlay, self).keypress(size, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 595, in keypress
    *self.calculate_padding_filler(size, True)), key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 1590, in keypress
    key = self.focus.keypress(tsize, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 2271, in keypress
    key = w.keypress((mc,) + size[1:], key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/providers/bam.py", line 1415, in keypress
    key = super(WatchDialog, self).keypress(size, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 1590, in keypress
    key = self.focus.keypress(tsize, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 1590, in keypress
    key = self.focus.keypress(tsize, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/decoration.py", line 837, in keypress
    return self._original_widget.keypress((maxcol,), key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/container.py", line 2271, in keypress
    key = w.keypress((mc,) + size[1:], key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/decoration.py", line 622, in keypress
    return self._original_widget.keypress(maxvals, key)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/wimp.py", line 540, in keypress
    self._emit('click')
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/widget.py", line 460, in _emit
    signals.emit_signal(self, name, self, *args)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/signals.py", line 265, in emit
    result |= self._call_callback(callback, user_arg, user_args, args)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/urwid/signals.py", line 295, in _call_callback
    return bool(callback(*args_to_pass))
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/providers/bam.py", line 1339, in download
    resolution=self.resolution_dropdown.selected_value
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/providers/base.py", line 430, in download
    filename = selection.download_filename(**kwargs)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/model.py", line 162, in download_filename
    outfile = template.format(self=self)
  File "/home/kmacleod/.virtualenvs/streamglob/lib/python3.7/site-packages/streamglob/model.py", line 115, in default_name
    if len(self.content) > 1:
TypeError: object of type 'NoneType' has no len()

KeyError: 'sessionToken'

I just cloned the updated repo (on Windows) and everything seems to install fine now, but when I tried to run your example download command from here it says this:

Traceback (most recent call last):
File "C:\Program Files\Python38\Scripts\streamglob-script.py", line 11, in
load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
File "c:\program files\python38\lib\site-packages\streamglob_main_.py", line 659, in main
run_cli(action, provider, selection, **opts)
File "c:\program files\python38\lib\site-packages\streamglob_main_.py", line 569, in run_cli
provider.download(
File "c:\program files\python38\lib\site-packages\streamglob\providers\base.py", line 420, in download
sources, kwargs = self.play_args(selection, **kwargs)
File "c:\program files\python38\lib\site-packages\streamglob\providers\bam.py", line 2224, in play_args
kwargs["headers"] = self.session.headers
File "c:\program files\python38\lib\site-packages\streamglob\providers\mlb.py", line 395, in headers
"Authorization": self.access_token
File "c:\program files\python38\lib\site-packages\streamglob\providers\mlb.py", line 485, in access_token
self.refresh_access_token()
File "c:\program files\python38\lib\site-packages\streamglob\providers\mlb.py", line 530, in refresh_access_token
self.OKTA_ACCESS_TOKEN = get_okta_token()
File "c:\program files\python38\lib\site-packages\streamglob\providers\mlb.py", line 517, in get_okta_token
"sessionToken": self.session_token,
File "c:\program files\python38\lib\site-packages\streamglob\providers\mlb.py", line 459, in session_token
self.login()
File "c:\program files\python38\lib\site-packages\streamglob\providers\mlb.py", line 386, in login
self.session_token = authn_response["sessionToken"]
KeyError: 'sessionToken'

mlb doesn't work

I run command:
streamglob download://mlb/2019-05-09.hou

Result is:

2019-05-11 01:59:31 [        __main__:645 ] [   debug] streamglob starting
2019-05-11 01:59:31 [ selector_events:53  ] [   debug] Using selector: EpollSelector
2019-05-11 01:59:31 [             bam:1862] [   debug] getting schedule: 1, None, 2019-04-23, 2019-04-23, None, None, None
2019-05-11 01:59:31 [             bam:1882] [   debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2019-04-23&endDate=2019-04-23&gameType=&gamePk=&teamId=&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items))))
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 566874
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565613
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 564746
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565325
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565231
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 566190
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 564941
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565034
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 566678
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565996
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 566578
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565133
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565424
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 566100
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 566288
2019-05-11 01:59:34 [             bam:1047] [   debug] geting media for game 565033
2019-05-11 01:59:34 [             bam:1862] [   debug] getting schedule: 1, None, 2019-04-23, 2019-04-23, None, 141, None
2019-05-11 01:59:34 [             bam:1882] [   debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2019-04-23&endDate=2019-04-23&gameType=&gamePk=&teamId=141&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items))))
2019-05-11 01:59:35 [             mlb:505 ] [   debug] refreshing access token
Traceback (most recent call last):
  File "/home/eithrial/.local/bin/streamglob", line 11, in <module>
    load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 659, in main
    run_cli(action, provider, selection, **opts)
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 573, in run_cli
    tdout=sys.stdout, stderr=sys.stderr, **kwargs
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/base.py", line 418, in download
    sources, kwargs = self.play_args(selection, **kwargs)
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 2241, in play_args
    kwargs["headers"] = self.session.headers
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 405, in headers
    "Authorization": self.access_token
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 495, in access_token
    self.refresh_access_token()
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 540, in refresh_access_token
    self.OKTA_ACCESS_TOKEN = get_okta_token()
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 527, in get_okta_token
    "sessionToken": self.session_token,
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 469, in session_token
    self.login()
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 372, in login
    if self.logged_in:
  File "/home/eithrial/.local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 398, in logged_in
    if "Login/Register" in data.xpath(".//title")[0].text:
IndexError: list index out of range

NHL works fine.

live_from_start option is ignored during MLB games

My config.yaml looks like this:

profiles:
    default:
        providers:
            mlb:
                credentials:
...
                defaults:
                    #resolution: 540p
                    resolution: 360p
                    media: video
                    live_from_start: True # True to watch live streams from beginning

... but running streamglob download://mlb/2020-07-20.chc during the game downloads the live stream, not from the start.

I can work around this with something like streamglob download://mlb/2020-07-20.chc:offset=4800 (or, if i don't mind missing the pregame, streamglob download://mlb/2020-07-20.chc:offset=T1. But if I do want the pregame (which I usually do), it takes some guesswork to get the offset right, so it'd be nice to have the option work correctly (or, at minimum, an offset name for the broadcast start, and a way to discover what it is).

Blackout error in script but not in browser

Attempting to stream nyy-phi for today's (8/5) game and I'm hitting a blackout error in streamglob, but not in the browser.
Not sure what could be causing it

verbose response below:

% streamglob -v download://mlb/2020-08-05.nyy couldn't find command for mpv 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ columns:128 ] [ debug] column media_item_id, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column feed, width: given, 32 2020-08-05 17:16:37 [ columns:128 ] [ debug] column created, width: given, 19 2020-08-05 17:16:37 [ columns:128 ] [ debug] column media_type, width: given, 4 2020-08-05 17:16:37 [ columns:128 ] [ debug] column title, width: weight, 1 2020-08-05 17:16:37 [ base:182 ] [ warning] couldn't initialize configuration for instagram 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: MLB 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'MLB') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Video 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Video') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Video 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Video') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: 720p 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', '720p') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: 720p 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', '720p') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Live 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Live') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Live 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Live') 2020-08-05 17:16:37 [ columns:128 ] [ debug] column start, width: given, 6 2020-08-05 17:16:37 [ columns:128 ] [ debug] column away_team_box, width: given, 16 2020-08-05 17:16:37 [ columns:128 ] [ debug] column home_team_box, width: given, 16 2020-08-05 17:16:37 [ columns:128 ] [ debug] column line, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column media_available, width: given, 10 2020-08-05 17:16:37 [ columns:128 ] [ debug] column game_id, width: weight, 1 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Video 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Video') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Video 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Video') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: 720p 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', '720p') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Live 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Live') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Live 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Live') 2020-08-05 17:16:37 [ columns:128 ] [ debug] column start, width: given, 6 2020-08-05 17:16:37 [ columns:128 ] [ debug] column away_team_box, width: given, 16 2020-08-05 17:16:37 [ columns:128 ] [ debug] column home_team_box, width: given, 16 2020-08-05 17:16:37 [ columns:128 ] [ debug] column line, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column media_available, width: given, 10 2020-08-05 17:16:37 [ columns:128 ] [ debug] column game_id, width: weight, 1 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Any 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Any') 2020-08-05 17:16:37 [ columns:128 ] [ debug] column media_item_id, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column feed, width: given, 32 2020-08-05 17:16:37 [ columns:128 ] [ debug] column created, width: given, 19 2020-08-05 17:16:37 [ columns:128 ] [ debug] column title, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column is_live, width: given, 10 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: Any 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'Any') 2020-08-05 17:16:37 [ columns:128 ] [ debug] column media_item_id, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column feed, width: given, 32 2020-08-05 17:16:37 [ columns:128 ] [ debug] column created, width: given, 19 2020-08-05 17:16:37 [ columns:128 ] [ debug] column title, width: weight, 1 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ columns:128 ] [ debug] column channel, width: given, 32 2020-08-05 17:16:37 [ columns:128 ] [ debug] column created, width: given, 19 2020-08-05 17:16:37 [ columns:128 ] [ debug] column title, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column index, width: weight, 1 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ dropdown:822 ] [ debug] select: All 2020-08-05 17:16:37 [ dropdown:108 ] [ debug] set_label: ('dropdown_text', 'All') 2020-08-05 17:16:37 [ columns:128 ] [ debug] column media_item_id, width: weight, 1 2020-08-05 17:16:37 [ columns:128 ] [ debug] column feed, width: given, 32 2020-08-05 17:16:37 [ columns:128 ] [ debug] column created, width: given, 19 2020-08-05 17:16:37 [ columns:128 ] [ debug] column title, width: weight, 1 2020-08-05 17:16:37 [ __main__:671 ] [ debug] streamglob starting 2020-08-05 17:16:37 [ bam:1848] [ debug] getting schedule: 1, None, 2020-08-05, 2020-08-05, None, None, None 2020-08-05 17:16:37 [ bam:1876] [ debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2020-08-05&endDate=2020-08-05&gameType=&gamePk=&teamId=&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items)))) 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631220 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631127 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 630497 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 630591 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631339 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 630878 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 630972 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631140 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631570 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 630307 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631417 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631518 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631544 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631174 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 630110 2020-08-05 17:16:39 [ bam:1031] [ debug] geting media for game 631085 2020-08-05 17:16:40 [ bam:1031] [ debug] geting media for game 631043 2020-08-05 17:16:40 [ bam:1031] [ debug] geting media for game 631471 2020-08-05 17:16:40 [ bam:1031] [ debug] geting media for game 630994 2020-08-05 17:16:40 [ bam:1031] [ debug] geting media for game 631320 2020-08-05 17:16:40 [ bam:1848] [ debug] getting schedule: 1, None, 2020-08-05, 2020-08-05, None, 147, None 2020-08-05 17:16:40 [ bam:1876] [ debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2020-08-05&endDate=2020-08-05&gameType=&gamePk=&teamId=147&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items)))) 2020-08-05 17:16:41 [ bam:2191] [ debug] milestones: {'Start': 3304, 'T1': 3665, 'B1': 4303, 'T2': 4998, 'B2': 5550, 'T3': 6081, 'B3': 7333, 'T4': 7749, 'Live': None} 2020-08-05 17:16:41 [ tasks:89 ] [ debug] task_manager starting 2020-08-05 17:16:41 [ mlb:679 ] [ debug] getting stream https://edge.svcs.mlb.com/media/d1c4bedb-d56e-40bf-8056-88be449fe7a8/scenarios/browser~csai 2020-08-05 17:16:42 [ mlb:684 ] [ debug] stream response: {'errors': ['blackout']} 2020-08-05 17:16:42 [ player:185 ] [ info] get: streamlink 2020-08-05 17:16:43 [ player:641 ] [ error] [] 2020-08-05 17:16:43 [ player:185 ] [ info] get: streamlink 2020-08-05 17:16:43 [ player:655 ] [ error] 2020-08-05 17:16:43 [ player:185 ] [ info] get: streamlink 2020-08-05 17:16:43 [ __main__:605 ] [ error] 'StreamlinkDownloader' object is not an iterator NoneType: None

Python 3.6 support

Python 2.x support isn't in the cards, but Python 3.6 should be doable. dataclasses are available as a backport to 3.6. Some of the asyncio APIs have changed, but the changes should be manageable.

Anyone has a windows guide?

I'm trying to run it on python and I'm failing epically here. I only got as far as trying to open the app

C:\Users\Jean\Downloads\streamglob-unstable>"C:\Users\Jean\AppData\Local\Program
s\Python\Python38-32\Scripts\streamglob.exe"
Traceback (most recent call last):
File "c:\users\jean\appdata\local\programs\python\python38-32\lib\runpy.py", l
ine 194, in run_module_as_main
return run_code(code, main_globals, None,
File "c:\users\jean\appdata\local\programs\python\python38-32\lib\runpy.py", l
ine 87, in run_code
exec(code, run_globals)
File "C:\Users\Jean\AppData\Local\Programs\Python\Python38-32\Scripts\streamgl
ob.exe_main
.py", line 4, in
File "c:\users\jean\appdata\local\programs\python\python38-32\lib\site-package
s\streamglob_main
.py", line 45, in
from . import player
File "c:\users\jean\appdata\local\programs\python\python38-32\lib\site-package
s\streamglob\player.py", line 26, in
from aio_mpv_jsonipc import MPV
File "c:\users\jean\appdata\local\programs\python\python38-32\lib\site-package
s\aio_mpv_jsonipc_init.py", line 1, in
from .MPV import MPV
File "c:\users\jean\appdata\local\programs\python\python38-32\lib\site-package
s\aio_mpv_jsonipc\MPV.py", line 1, in
from asyncio import get_event_loop, open_unix_connection, create_subprocess_
exec, Queue, Event, sleep, Lock
ImportError: cannot import name 'open_unix_connection' from 'asyncio' (c:\users
jean\appdata\local\programs\python\python38-32\lib\asyncio_init_.py)

Condensed games and recaps not available

I think MLB has changed the location of their condensed games and recap URLs. They aren't showing up anymore.

As an aside, do you have an option to dump the json output to file? That way I could help out more by taking a more in-depth look.

Games won't run with VPN

Has anyone had any luck using streamglob with NordVPN (or any VPN)? When I connect to the VPN, my player just hangs as if it's trying to load a game from yesterday. If I disconnect from the VPN, everything works fine again.

The error that pops up are "Failed to create decryptor...403 Client error: Forbidden for url"

default_resolution ignored

I changed the default_resolution to 540p (in terms of yaml it is at profiles.default.default_resolution) and it has no affect, in either cli mode or tui mode.

I haven't looked into it more, but I did notice a typo in streamglob/providers/filters.py, line 428:

        return config.settings.profile.default_resolutionr

Fixing that doesn't affect the behaviour though.

Wrong Stream for Home Feed (MLB.tv)

When selecting the Home feed, it consistently downloads the Away stream.

Thank you so much for your work on this project. We love baseball and couldn't imagine using mlb.tv without the possibilities of your project, especially downloading the games to quickly skip between pauses.

Date field value is missing in top-level display

Referring to #16 (comment) , if you look at the screenshot, the 'Date: ' field is missing it's value:

I'm seeing the same thing. The value in the top-level Date field doesn't show. However, it does show up in the screenshot posted by @tonycpsu at #16 (comment), so we obviously have something different in our environment.

I've tried different window sizes, different console colour schemes, etc. Nothing has changed it.

ps I'm not trying to bombard you with issues -just posting them so you are aware. I'd rather be sending you pull requests with fixes, but I'm still coming up to speed on the code base. So feel free to consider as low priority.

Error fetching NHL games **SOLUTION ADDED**

Hi. Trying to fetch yesterday's NHL game for NY Islanders (although same error appears for any other team) and it is coming up with the following error (I'm running the latest unstable branch):

$ streamglob download://nhl/$(date -d yesterday +%Y-%m-%d).nyi
couldn't find command for feh
couldn't find command for mpv
couldn't find command for vlc
2020-09-02 14:25:46 [            base:182 ] [ warning] couldn't initialize configuration for instagram
2020-09-02 14:25:46 [            base:182 ] [ warning] couldn't initialize configuration for nhl
Traceback (most recent call last):
  File "/home/macray76/.local/bin/streamglob", line 8, in <module>
    sys.exit(main())
  File "/home/macray76/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 683, in main
    action, provider, selection, opts = providers.parse_spec(options.spec)
  File "/home/macray76/.local/lib/python3.7/site-packages/streamglob/providers/__init__.py", line 56, in parse_spec
    selection, identifier_opts = p.parse_identifier(identifier)
  File "/home/macray76/.local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 2027, in parse_identifier
    self.filters["date"].value = game_date
  File "/home/macray76/.local/lib/python3.7/site-packages/streamglob/providers/filters.py", line 36, in value
    changed = (self.widget.value != value)
  File "/home/macray76/.local/lib/python3.7/site-packages/streamglob/providers/filters.py", line 81, in widget
    *self.widget_args, **self.widget_kwargs
  File "/home/macray76/.local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 1364, in widget_kwargs
    return {"initial_date": self.provider.start_date}
  File "<string>", line 2, in start_date
  File "/usr/local/lib/python3.7/dist-packages/pony/orm/core.py", line 528, in new_func
    result = func(*args, **kwargs)
  File "/home/macray76/.local/lib/python3.7/site-packages/streamglob/providers/nhl.py", line 448, in start_date
    start = dateutil.parser.parse(j["seasons"][0]["regularSeasonStartDate"])
IndexError: list index out of range

Anyone else getting the same issue or is it just me?

Thanks in advance!

is streamglob working as of July 26 2020?

I've just installed streamglob and it's spitting out a bunch of errors such as

'MLBMediaSource' object has no attribute 'away_abbrev' and

UnboundLocalError: local variable 'filename' referenced before assignment

I'm a python noob so I just wanted to find out if the package is in fact working before I spend the afternoon troubleshooting :)

Thanks!

TypeError: sequence item 0: expected str instance, NoneType found

When trying to view an mlb game, using the command streamglob mlb/nyy -v, I get the following output:

2019-04-19 18:59:23 [        __main__:645 ] [   debug] streamglob starting
2019-04-19 18:59:23 [        dropdown:822 ] [   debug] select: MLB
2019-04-19 18:59:23 [        dropdown:108 ] [   debug] set_label: ('dropdown_text', 'MLB')
2019-04-19 18:59:23 [             bam:1866] [   debug] getting schedule: 1, None, 2019-04-19, 2019-04-19, None, None, None
2019-04-19 18:59:23 [             bam:1886] [   debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2019-04-19&endDate=2019-04-19&gameType=&gamePk=&teamId=&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items))))
2019-04-19 18:59:24 [        dropdown:822 ] [   debug] select: Video
2019-04-19 18:59:24 [        dropdown:108 ] [   debug] set_label: ('dropdown_text', 'Video')
2019-04-19 18:59:24 [        dropdown:822 ] [   debug] select: Video
2019-04-19 18:59:24 [        dropdown:108 ] [   debug] set_label: ('dropdown_text', 'Video')
2019-04-19 18:59:24 [        dropdown:822 ] [   debug] select: 720p
2019-04-19 18:59:24 [        dropdown:108 ] [   debug] set_label: ('dropdown_text', '720p')
2019-04-19 18:59:24 [        dropdown:822 ] [   debug] select: 720p
2019-04-19 18:59:24 [        dropdown:108 ] [   debug] set_label: ('dropdown_text', '720p')
2019-04-19 18:59:24 [        dropdown:822 ] [   debug] select: Live
2019-04-19 18:59:24 [        dropdown:108 ] [   debug] set_label: ('dropdown_text', 'Live')
2019-04-19 18:59:24 [         columns:128 ] [   debug] column start, width: given, 6
2019-04-19 18:59:24 [         columns:128 ] [   debug] column away_team_box, width: given, 16
2019-04-19 18:59:24 [         columns:128 ] [   debug] column home_team_box, width: given, 16
2019-04-19 18:59:24 [         columns:128 ] [   debug] column line, width: weight, 1
2019-04-19 18:59:24 [         columns:128 ] [   debug] column media_available, width: given, 10
2019-04-19 18:59:24 [         columns:128 ] [   debug] column game_id, width: weight, 1
2019-04-19 18:59:24 [       datatable:1295] [   debug] refresh: False
2019-04-19 18:59:24 [       datatable:1245] [   debug] requery: None, 0
2019-04-19 18:59:24 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:24 [             bam:1047] [   debug] geting media for game 565420
2019-04-19 18:59:24 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:24 [             bam:1047] [   debug] geting media for game 567468
2019-04-19 18:59:24 [         columns:128 ] [   debug] column team, width: given, 19
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:24 [             bam:1047] [   debug] geting media for game 566186
2019-04-19 18:59:24 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:24 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:24 [             bam:1047] [   debug] geting media for game 567372
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 566674
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 565519
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 566775
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 567563
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 566574
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 564742
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 566096
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 566285
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 565130
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 564937
2019-04-19 18:59:25 [         columns:128 ] [   debug] column team, width: given, 14
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 1, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 2, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 3, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 4, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 5, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 6, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 7, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 8, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column 9, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column runs, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column hits, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column errors, width: given, 3
2019-04-19 18:59:25 [         columns:128 ] [   debug] column index, width: weight, 1
2019-04-19 18:59:25 [             bam:1047] [   debug] geting media for game 565322
2019-04-19 18:59:25 [             bam:1866] [   debug] getting schedule: 1, None, 2019-04-19, 2019-04-19, None, 147, None
2019-04-19 18:59:25 [             bam:1886] [   debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2019-04-19&endDate=2019-04-19&gameType=&gamePk=&teamId=147&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items))))
2019-04-19 18:59:25 [ selector_events:64  ] [   debug] Using selector: EpollSelector
2019-04-19 18:59:25 [           tasks:70  ] [   debug] task_manager starting
2019-04-19 18:59:25 [          player:215 ] [   debug] source: [MLBMediaSource(provider_id='mlb', url=None, media_type='video', game_id=567468, media_id='57d650e1-0220-4984-8776-ec212c5167e7', title='', description='', state='live', call_letters='FSKC', language='', feed_type='AWAY', free=False, playbacks=[])], player: {'media_types': {'video'}}, helper: streamlink
2019-04-19 18:59:25 [             mlb:692 ] [   debug] getting stream https://edge.svcs.mlb.com/media/57d650e1-0220-4984-8776-ec212c5167e7/scenarios/browser~csai
2019-04-19 18:59:25 [             mlb:697 ] [   debug] stream response: {'stream': {'complete': 'https://hlslive-llc-ewr1.media.mlb.com/token=exp=1555804765~id=00u84heze4Bmmdc2H356~data=57d650e1-0220-4984-8776-ec212c5167e7~hash=b604b4128c5565904c0c8aab503327973d358ed4/ls01/mlb/2019/04/19/Away_VIDEO_eng_Kansas_City_Royals_New_Yo_20190419_1555707948041/master_desktop_complete.m3u8', 'variants': [], 'renditions': {'audio': [], 'subtitles': []}, 'attributes': {'drms': [], 'encryptionType': 'AES-128', 'audioSegmentTypes': ['PACKED_AUDIO'], 'videoSegmentTypes': ['TS']}}, 'tracking': {'conviva': {'med': 'video', 'state': 'ON', 'productType': 'LIVE', 'locationName': 'EWR1_LIMELIGHT-SECURE', 'cdnName': 'LIMELIGHT-SECURE', 'pbs': 'browser~csai', 'fguid': 'ae1bd751-0494-4c19-9b66-3b2d027bb7ea', 'prt': 'mlbtv', 'conid': '57d650e1-0220-4984-8776-ec212c5167e7', 'userid': '00u84heze4Bmmdc2H356', 'assetName': '57d650e1-0220-4984-8776-ec212c5167e7', 'plt': 'browser'}, 'telemetry': {'fguid': 'ae1bd751-0494-4c19-9b66-3b2d027bb7ea', 'mediaId': '57d650e1-0220-4984-8776-ec212c5167e7'}, 'adEngine': {'cdn': 'LIMELIGHT-SECURE',
 'corigin': 'EWR1', 'fguid': 'ae1bd751-0494-4c19-9b66-3b2d027bb7ea'}}}
Traceback (most recent call last):
  File "/home/chris/miniconda3/bin/streamglob", line 11, in <module>
    sys.exit(main())
  File "/home/chris/miniconda3/lib/python3.7/site-packages/streamglob/__main__.py", line 658, in main
    run_cli(action, provider, selection, **opts)
  File "/home/chris/miniconda3/lib/python3.7/site-packages/streamglob/__main__.py", line 564, in run_cli
    stdout=sys.stdout, stderr=sys.stderr, **kwargs
  File "/home/chris/miniconda3/lib/python3.7/asyncio/base_events.py", line 573, in run_until_complete
    return future.result()
  File "/home/chris/miniconda3/lib/python3.7/site-packages/streamglob/player.py", line 255, in play
    player.source = source
  File "/home/chris/miniconda3/lib/python3.7/site-packages/streamglob/player.py", line 326, in source
    self.source.integrate_player(self)
  File "/home/chris/miniconda3/lib/python3.7/site-packages/streamglob/player.py", line 633, in integrate_player
    self.extra_args_pre += ["--player"] + [" ".join(dst.command)]
TypeError: sequence item 0: expected str instance, NoneType found

I noticed there was a similar TypeError in another issue, but even following that thread and updating to the newest version of master didn't fix it. I have tried a clean install, in a new environment, as well as deleting the sqlite file found in ~/.config

Compatibility with low-color terminals

The app has been developed against urwid with 24-bit color support, so a lot of things probably look ugly or plain don't work with other configurations.

streamglob won't run

This is the error log I get:

Traceback (most recent call last):
File "/usr/local/bin/streamglob", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/streamglob/main.py", line 634, in main
providers.load_config()
File "/usr/local/lib/python3.7/site-packages/streamglob/providers/init.py", line 70, in load_config
p.init_config()
File "/usr/local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 1767, in init_config
self.update_teams()
File "", line 2, in update_teams
File "/usr/local/lib/python3.7/site-packages/pony/orm/core.py", line 528, in new_func
result = func(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/streamglob/providers/mlb.py", line 807, in update_teams
sport_id = sport_id
File "", line 2, in from_json
File "/usr/local/lib/python3.7/site-packages/pony/orm/core.py", line 515, in new_func
return func(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/streamglob/providers/bam.py", line 635, in from_json
name = team["teamName"]
KeyError: 'teamName'

Appreciate your help resolving this one...

usage

As usage documentation is not available yet I'll ask about the specific tasks I need to accomplish at the moment.

  1. What is the command to save a particular date's game to disk?

  2. Will the resulting video file contain the Radio broadcast audio stream, or do you have to pass an argument to include that like when using mlbv?

Can't find termios module in Windows

I'm trying to install on Windows 10, which reasonably enough doesn't seem to support the termios module. Trying to view a mlb game gave me the ModuleNotFoundError stemming from player.py to pty, to tty. Is there a workaround at this time, or have I bungled the installation somehow?

Fix inning/period offset functionality

Starting a game at a particular inning worked in mlbstreamer but was only half-implemented in streamglob. Inning/period selection should work from both command line and TUI.

Error downloading MLB game: TypeError: sequence item 10: expected str instance, NoneType found

I had to update streamglob to the latest version because of issue #27. Since then, downloading an MLB game is no longer working for me. I even tried a fresh install.

Here is the error:

$ streamglob download://mlb/2019-05-10.nyy
2019-05-11 09:41:37 [          player:507 ] [    info] downloader: <StreamlinkHelper: streamlink []>
2019-05-11 09:41:37 [          player:534 ] [    info] <StreamlinkHelper: streamlink []> downloading https://hlslive-akc-ewr1.media.mlb.com/hdnts=exp=1557646897~acl=/*~id=00u7jltzyIqrmuYTe356~data=b3a85813-6ee2-48d5-887b-eafde220f330~hmac=1da4ece38b401c78c01c931ce383a3021f28e2e3307ed95c35ce06cdd3d9387f/37099e6a6b4e875ab5c62aa988314bce/ls01/mlb/2019/05/10/Away_VIDEO_eng_New_York_Yankees_Tampa_Ba_20190510_1557522644039/master_desktop_complete-trimmed.m3u8 to ./[email protected]
Traceback (most recent call last):
  File "/home/mko/.local/bin/streamglob", line 11, in <module>
    load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
  File "/home/mko/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 659, in main
    run_cli(action, provider, selection, **opts)
  File "/home/mko/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 573, in run_cli
    tdout=sys.stdout, stderr=sys.stderr, **kwargs
  File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/home/mko/.local/lib/python3.7/site-packages/streamglob/player.py", line 539, in download
    await(downloader.run(**kwargs))
  File "/home/mko/.local/lib/python3.7/site-packages/streamglob/player.py", line 401, in run
    logger.debug(f"cmd: {' '.join(cmd)}")
TypeError: sequence item 10: expected str instance, NoneType found

Any idea what's wrong or how to fix this? Does it work for other people?

INFO: Output template options - show game number in filename

It may already be in there already but what do I need to add to the output template in config.yaml file to add the game number in the downloaded file for mlb and nhl games.

e.g. template: "{provider_id}.{start_date_time}.{away_team.abbreviation}@{home_team.abbreviation}.{GAMENUMBER}.{ext}"

Test suite

Should we create a test suite?

We're starting to get enough functionality in this thing that some regression tests would be nice.

Support minor league (MiLB.tv) games

It'd be nice to add MiLB.tv support. Confounding factors:

  • MiLB.tv seems to use an entirely different streaming platform without support for HLS
  • the primary developer of this project (me) doesn't have an MiLB.tv account

mlbviewer has a lot of the guts for streaming MiLB.tv's RTMP streams implemented, and it's entirely possible that code still works, but it's not getting to that point because of a There was a parser problem with the listings page error. It stands to reason that combining mlbstreamers listings code and mlbviewers RTMP streaming code may result in proper MILB.tv support, but it's not something that jumps to the top of my list right now, so I'm adding it here in case someone else out there has MiLB.tv and wants to give it a go.

Remove sgplay

Hey Tony,

sorry for creating an issue simply for needing help. I hope it's okay.

mlbstreamer stopped working for me today as well, so they might have rolled out the changes globally now. I tried updating to the latest version, but I got errors trying to run it.

So I thought it'd be a good time to switch to streamglob :-). Looking at the config file made me happy - most of the MLB goodies seem to be there. Awesome job!

However, I can't get it to run on my system with Python errors similar to mlbstreamer:

$ streamglob
Traceback (most recent call last):
  File "/home/mko/.local/bin/streamglob", line 11, in <module>
    load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
  File "/home/mko/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 662, in main
    run_gui(action, provider, **opts)
  File "/home/mko/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 492, in run_gui
    state.palette = load_palette()
  File "/home/mko/.local/lib/python3.7/site-packages/streamglob/__main__.py", line 461, in load_palette
    state.palette_entries[ename] = PaletteEntry.from_config(v)
  File "/home/mko/.local/lib/python3.7/site-packages/urwid_utils/palette.py", line 83, in from_config
    e.background_high = bg
  File "/home/mko/.local/lib/python3.7/site-packages/urwid_utils/palette.py", line 153, in __setattr__
    raise ValueError('"{0}": value not allowed'.format(value))
ValueError: "#aaaaaa": value not allowed

and

$ sgplay
Traceback (most recent call last):
  File "/home/mko/.local/bin/sgplay", line 11, in <module>
    load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'sgplay')()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2793, in load_entry_point
    return ep.load()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2411, in load
    return self.resolve()
  File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2417, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ModuleNotFoundError: No module named 'streamglob.play'

Now, I did do something differently to your installation guide: I used pip --user for installing the requirements and streamglob itself, because I want to leave the system packages managed by the distro packages. The installation seemed to go fine, however.

Do you have any idea what might be wrong, looking at these messages? Thank you very much in advance and sorry for taking up your time with my own lack of knowledge.

Better presentation of start times

Right now when I run streamglob the start times are presented with only 1-2 number for hour and only 1 number for minutes.

For example the NYY-BAL game start at 7:05pm today, streamglob writes that as 7:0, so it seems like it truncates the minute part to 1 number.

It would also be nice to have the times presented in the current locale. For example I reside in Sweden, and we use 24h time in our locale (sv_SE.UTF-8 for me), so in my case the start time should be 19:05 for the game mentioned above.

Provide call letters for filename template

I would like to request that the call letters (basically the name of the broadcasting tv station) are available for using them in a filename template (look for "callLetters" in the media item in the JSON data).

They are available in the JSON for the MLB media listing, but if I read the code correctly (which I am not at all sure of), the filename is generated before the media is selected.

I might take a look at it myself in the future, but if a lot of code has to be changed it might be tough for me.

Thanks in advance for your consideration!

mpv closes after download of recap is complete but before end of video

Recap videos are closing early. This is when selected to play (as opposed to download).

I believe mpv is closing when the stream reaches EOF. Watching the task tab while this is going on - mpv closes just before the task is removed from the task list.

I think the solution is to add the --player-no-close option to streamlink. That lets the player decide when to exit. This is how I handled the issue in mlbv. See https://streamlink.github.io/cli.html#cmdoption-player-no-close

Error fetching yesterday's NYY broadcast

Trying to fetch yesterday's NYY broadcast fails with the following error:

$ streamglob download://mlb/$(date -d yesterday +%Y-%m-%d).nyy
Traceback (most recent call last):
  File "/home/mko/.local/lib/python3.8/site-packages/streamglob/providers/bam.py", line 1904, in get_source
    selected_media = next(
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/mko/.local/bin/streamglob", line 11, in <module>
    load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
  File "/home/mko/.local/lib/python3.8/site-packages/streamglob/__main__.py", line 660, in main
    run_cli(action, provider, selection, **opts)
  File "/home/mko/.local/lib/python3.8/site-packages/streamglob/__main__.py", line 561, in run_cli
    sources, kwargs = provider.play_args(selection, **kwargs)
  File "/home/mko/.local/lib/python3.8/site-packages/streamglob/providers/bam.py", line 1917, in play_args
    source, kwargs = super().play_args(selection, **kwargs)
  File "/home/mko/.local/lib/python3.8/site-packages/streamglob/providers/base.py", line 360, in play_args
    source = self.get_source(selection, **kwargs)
  File "/home/mko/.local/lib/python3.8/site-packages/streamglob/providers/bam.py", line 1911, in get_source
    selected_media = selection.media[0]
IndexError: list index out of range

The line numbers might be off, as I'm not on the latest version.

The BAL broadcast of the same game works fine:
$ streamglob download://mlb/$(date -d yesterday +%Y-%m-%d).bal

Can you reproduce the error? Thanks in advance.

'NoneType' object has no attribute 'proc' in run_cli when downloading MLB game

I'm getting a new error when attempting to download games after 2021-05-02. (I'm on the stable branch, at 93bbb3d.

$ streamglob download://mlb/2021-05-04.chc.1:offset=start
2021-05-05 19:53:13 [          player:509 ] [ warning] ['not-entitled']
Traceback (most recent call last):
  File "/home/fang2415/.pyenv/versions/3.7.3/bin/streamglob", line 11, in <module>
    load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()
  File "/home/fang2415/.pyenv/versions/3.7.3/lib/python3.7/site-packages/streamglob/__main__.py", line 659, in main
    run_cli(action, provider, selection, **opts)
  File "/home/fang2415/.pyenv/versions/3.7.3/lib/python3.7/site-packages/streamglob/__main__.py", line 581, in run_cli
    program.proc.wait()
AttributeError: 'NoneType' object has no attribute 'proc'

The game above is the first of a doubleheader, but attempting to download the next game (which is now live) with streamglob download://mlb/2021-05-05.chc.1:offset=start produces exactly the same result. On the other hand, running streamglob download://mlb/2021-05-02.chc.1:offset=start (or any other earlier date I've tried) downloads the game as usual. I can watch the game from the 4th in the browser just fine (except that the browser UI is a slow crufty mess).

Of course please let me know if any other info would be helpful!

"Direct url requirement...are not allowed for dependencies"

Following the suggested install returns me this:

DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release. You can find discussion regarding this at https://github.com/pypa/pip/issues/4187. Direct url requirement (like urwid@ git+https://github.com/tonycpsu/urwid) are not allowed for dependencies

streamglob stopped working for all mlb games

Is anyone else having this problem? This just happened two days ago.

For example, if I run:
** streamglob -v mlb/2019-10-11.stl**

I get the following:
2019-10-12 11:06:19 [ session:105 ] [ debug] creating new session: (), {'username': 'changeme', 'password': 'CHANGEME'} 2019-10-12 11:06:19 [ __main__:645 ] [ debug] streamglob starting 2019-10-12 11:06:19 [ selector_events:53 ] [ debug] Using selector: EpollSelector 2019-10-12 11:06:19 [ bam:1865] [ debug] getting schedule: 1, None, 2019-10-11, 2019-10-11, None, None, None 2019-10-12 11:06:19 [ bam:1885] [ debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2019-10-11&endDate=2019-10-11&gameType=&gamePk=&teamId=&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items)))) 2019-10-12 11:06:19 [ bam:1047] [ debug] geting media for game 599364 2019-10-12 11:06:19 [ bam:1865] [ debug] getting schedule: 1, None, 2019-10-11, 2019-10-11, None, 138, None 2019-10-12 11:06:19 [ bam:1885] [ debug] http://statsapi.mlb.com/api/v1/schedule?sportId=1&startDate=2019-10-11&endDate=2019-10-11&gameType=&gamePk=&teamId=138&hydrate=linescore,team,game(content(summary,media(epg),editorial(preview,recap),highlights(highlights(items)))) 2019-10-12 11:06:19 [ tasks:70 ] [ debug] task_manager starting 2019-10-12 11:06:19 [ player:215 ] [ debug] source: [MLBMediaSource(provider_id='mlb', url=None, media_type='video', game_id=599364, media_id='0b2fd683-7827-4eb2-a840-713f22379b3e', title='', description='', state='archive', call_letters='TBS-INT', language='', feed_type='HOME', free=False, playbacks=[])], player: {'media_types': {'video'}}, helper: streamlink 2019-10-12 11:06:19 [ mlb:677 ] [ debug] getting stream https://edge.svcs.mlb.com/media/0b2fd683-7827-4eb2-a840-713f22379b3e/scenarios/browser~csai 2019-10-12 11:06:19 [ mlb:682 ] [ debug] stream response: {'stream': {'complete': 'https://hlslive-akc-ewr1.media.mlb.com/hdnts=exp=1570979179~acl=/*~id=00u7n69odYkC68akt356~data=0b2fd683-7827-4eb2-a840-713f22379b3e~hmac=19c79954a55a710eacf3267d8a10d77ee15543f61f1116f3636e1dbfd560511e/cb543ada014a5681372c959815b46ad4/ls01/mlb/2019/10/12/Home_VIDEO_spa_Washington_Nationals_St_L_20191012_1570833528047/master_desktop_complete-trimmed.m3u8', 'variants': [], 'renditions': {'audio': [], 'subtitles': []}, 'attributes': {'drms': [], 'encryptionType': 'AES-128', 'audioSegmentTypes': ['PACKED_AUDIO'], 'videoSegmentTypes': ['TS'], 'videoRanges': ['SDR']}}, 'tracking': {'conviva': {'med': 'video', 'state': 'ON', 'productType': 'VOD', 'locationName': 'EWR1_AKAMAI-SECURE', 'cdnName': 'AKAMAI-SECURE', 'pbs': 'browser~csai', 'fguid': 'a3b91639-a304-4914-8a3d-e4d98770d6d9', 'prt': 'mlbtv', 'videoCodecs': 'h.264', 'conid': '0b2fd683-7827-4eb2-a840-713f22379b3e', 'userid': '00u7n69odYkC68akt356', 'encryptionType': 'AES-128', 'assetName': '0b2fd683-7827-4eb2-a840-713f22379b3e', 'plt': 'browser', 'videoSegmentTypes': 'TS', 'videoRanges': 'SDR'}, 'telemetry': {'fguid': 'a3b91639-a304-4914-8a3d-e4d98770d6d9', 'mediaId': '0b2fd683-7827-4eb2-a840-713f22379b3e'}, 'adEngine': {'cdn': 'AKAMAI-SECURE', 'corigin': 'EWR1', 'fguid': 'a3b91639-a304-4914-8a3d-e4d98770d6d9'}}} 2019-10-12 11:06:19 [ player:256 ] [ info] player: mpv: helper=streamlink, playing <StreamlinkHelper: streamlink ['--player-no-close', '--hls-audio-select', '*']> 2019-10-12 11:06:19 [ player:401 ] [ debug] cmd: streamlink --player-no-close --hls-audio-select * --player /usr/bin/mpv --profile=v3560 --no-border --osd-level=0 --no-osc --force-window=yes --force-seekable --hr-seek=yes --hr-seek-framedrop=yes --keep-open=yes --keep-open-pause=no --no-window-dragging --cache=8192 --cache-backbuffer=16384 --demuxer-seekable-cache=yes --image-display-duration=inf --http-header Authorization=eyJraWQiOiJlZmM3OGYxYS1lNDBkLTExZTctODBjMS05YTIxNGNmMDkzYWUiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIwMHU3bjY5b2RZa0M2OGFrdDM1NiIsIm5iZiI6MTU3MDg5MDA5MCwicGFydG5lck5hbWUiOiJtbGJ0diIsImlzcyI6InVybjpiYW10ZWNoOnNlcnZpY2U6dG9rZW4iLCJjb250ZXh0Ijp7InZlcnNpb24iOiJWMi4wLjAiLCJpZCI6Ijk1OWUzMjcwLWVjZmItMTFlOS04OTI0LTAyNDJhYzExMDAwYiIsInBhcnRuZXIiOnsibmFtZSI6Im1sYnR2In0sInR5cGUiOiJSRUdJU1RFUkVEIiwiaXBfYWRkcmVzcyI6IjEwMC4xMi4yMjMuMjUyIiwiZGV2aWNlIjp7ImlkIjoiYjJlOTg0YjMtNTA0Yy00NjllLWFhMmQtYmVhNGJmMTE5ZWJmIiwicGxhdGZvcm0iOiJicm93c2VyIiwidHlwZSI6InVybjpkc3M6ZGV2aWNlOmV4dGVybmFsIiwiYXBwX3J1bnRpbWUiOiIiLCJmYW1pbHkiOiIiLCJwcm9maWxlIjoiIn0sImxvY2F0aW9uIjp7InR5cGUiOiJaSVBfQ09ERSIsInppcF9jb2RlIjoiMTAwMjQiLCJjb3VudHJ5X2NvZGUiOiJVUyIsImRtYSI6NTAxLjAsImNpdHlfbmFtZSI6Im5ldyB5b3JrIiwiYXNuIjo3MDEuMCwicmVnaW9uX25hbWUiOiJub3J0aGVhc3QiLCJzdGF0ZV9uYW1lIjoibmV3IHlvcmsifSwiYWNjb3VudCI6eyJ0eXBlIjoidXJuOm1sYnR2OmFjY291bnQiLCJpZCI6IjAwdTduNjlvZFlrQzY4YWt0MzU2IiwiZGF0YSI6e319LCJwcm9maWxlcyI6W10sImFjdGl2ZV9wcm9maWxlX2lkIjoiIiwiZ2VuZXJhdGVkX29uIjoiMjAxOS0xMC0xMlQxNDoyMTozMC4yNjMrMDAwMCIsInVwZGF0ZWRfb24iOiIyMDE5LTEwLTEyVDE0OjIxOjMwLjI2MyswMDAwIiwiZXhwaXJlc19vbiI6IjIwMTktMTAtMTJUMTg6MjE6MzAuMjYzKzAwMDAiLCJtZWRpYV9wZXJtaXNzaW9ucyI6eyJlbnRpdGxlbWVudHMiOlsiTUxCQUxMIl0sInJ1bGVzIjp7InBhc3NlZCI6W119LCJkYXRhIjp7fX0sImJsYWNrb3V0cyI6eyJlbnRpdGxlbWVudHMiOltdLCJydWxlcyI6eyJ2aW9sYXRlZCI6W119LCJkYXRhIjp7fX0sInN1YnNjcmlwdGlvbnMiOlt7ImVudGl0bGVtZW50cyI6WyJNTEJBTEwiXSwiZ3JhbnRDb250ZXh0U291cmNlIjoiYWNjb3VudF9ncmFudCIsImlkIjoiIiwiZXhwaXJlc19vbiI6IiIsInJlbmV3c19vbiI6IiJ9XSwic3VwcG9ydGVkIjp0cnVlfSwiZW52IjoicHJvZCIsImV4cCI6MTU3MDkwNDQ5MCwiaWF0IjoxNTcwODkwMDkwLCJqdGkiOiI2OTNjYWJiOC0zNTlkLTQ5ZDktODAwNC0wYmQxYjE3NzZjN2EifQ.2t9vBaHQqW0jN6_lMpnwEta8sedF8CDhPwhDWa15Uyk --http-cookie __cfduid=d1d1fc253feb83e75f258503fc66a2ca51554351815 --http-cookie DT=DI0m9LiN-3STvSffDcwsLaoiA --http-cookie proximity_b0b300984156eac82cc0629f16b3b118=ek9uQJdySF1hnVG9xVm/xqoKYZOFQuZxWiJbEAlHlJnTOuLohHqnGozix64LTAsH5I8lsQ6vlbNeMwtDvMmTKNNgHbXb/2hqo/2j/LVeqdXnZIuN7c5BtuJ8SRraTWjciUC1zSkLYLJ51esHBpR5LmDFAoUEUT1BI/OKtypFEpS0aPR2ZRIUKGJ9OexT5uu9 --http-cookie sid=102pjv21zb9QdWI0YDbOBfVDg https://hlslive-akc-ewr1.media.mlb.com/hdnts=exp=1570979179~acl=/*~id=00u7n69odYkC68akt356~data=0b2fd683-7827-4eb2-a840-713f22379b3e~hmac=19c79954a55a710eacf3267d8a10d77ee15543f61f1116f3636e1dbfd560511e/cb543ada014a5681372c959815b46ad4/ls01/mlb/2019/10/12/Home_VIDEO_spa_Washington_Nationals_St_L_20191012_1570833528047/master_desktop_complete-trimmed.m3u8 504p
and I am dumped back to the command prompt.

Any ideas?
Bad ju-ju for playoff time.

⇒ KJ

Away streams only

For example streamglob download://mlb/2019-06-17.tor pick away stream instead of the home one.

AttributeError: 'SimpleProviderView' object has no attribute 'preview_all'

This works fine:

streamglob mlb/2021-04-26.nyy

When I run streamglob it randomly crashes and gives me this error

File "~/.pyenv/versions/3.9.2/bin/streamglob", line 33, in <module> sys.exit(load_entry_point('streamglob==0.0.11.dev0', 'console_scripts', 'streamglob')()) File "~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/streamglob/__main__.py", line 557, in main rc = run_gui(action, provider, **opts) File "~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/streamglob/__main__.py", line 442, in run_gui state.loop.run() File "~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urwid/main_loop.py", line 287, in run self._run() File "~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urwid/main_loop.py", line 385, in _run self.event_loop.run() File "~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urwid/main_loop.py", line 1494, in run reraise(*exc_info) File "~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/urwid/compat.py", line 58, in reraise raise value File "~/.pyenv/versions/3.9.2/lib/python3.9/asyncio/tasks.py", line 256, in __step result = coro.send(None) File "~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/streamglob/tasks.py", line 143, in wait_for_player_exit await state.listings_view.provider.view.preview_all() AttributeError: 'SimpleProviderView' object has no attribute 'preview_all'

I tried some of the other branches, but I either get the same thing or an error about the "away_team" attribute when I try to select a game. Just wanted to see if this was something someone was familiar with before I get too deep into debugging.

ImportError: cannot import name 'MPVError'

Trying to get this working for mlb, but I get the following error when I try to run my first stream command.

I tried:
streamglob mlb/2021-04-23.atl

I get this error:
ImportError: cannot import name 'MPVError' from 'aio_mpv_jsonipc.MPV' (/home/pi/.local/lib/python3.7/site-packages/aio_mpv_jsonipc/MPV.py)

I'm sure this is a noob error, so any help would be greatly appreciated!

installation instructions

Are there updated installation instructions? Does python 3.6 work or does it need to be 3.7. Are there any issues or dependencies that need to be installed? Also is there a list of commands and examples?

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.