SVN revision 386: condensed games for non-subscribers
Quote:
Add "free_condensed=1" to your ~/.mlb/config and restart mlbviewer (or reload the configuration using 'R' key. Now when you select a condensed game, it will choose the lower quality stream that you don't need authorization for. Let me know if that works out for you. Also fixed a logic bug where, under certain circumstances, the preferred audio would in fact be a video stream. :/ |
Quote:
I would like to use VLC for viewing top plays and the condensed games since the GUI it provides is a lot more helpful than what I can see to use in mplayer, but it's no biggie. I can tweak my config file as needed and reload it if I want to switch my top_plays_player on the fly. ETA: It turns out mplayer itself is going funky on me. I can't even play the top plays individually in mplayer without it hanging after the video starts playing. I can play them without much problem other than possible buffering in VLC. I enabled debug in config file but neither that nor enabling debug with the hotkey seems to output any info on why the video hangs in mplayer. |
Quote:
Debug in mlbviewer unfortunately wouldn't tell you anything about the player. Mlbviewer is basically just a browser: a whole lot of code just to find the media url and maybe two or three lines of code to connect your media player to it. Let me see what I can do about accommodating the highlight playlist feature with vlc. I may just have to include yet another player option in the config just to separate out playlist vs non-playlist syntax. |
Quote:
Code:
$ cd mlbviewer-2013 && python mlbviewer.py && cd |
Quote:
|
Hmm...there's a weird little logic error that if free_condensed is set, audio and video player commands do not get formatted correctly (line 500: prepareMediaPlayerCmd needs to be called for all cases except highlights and free condensed games.) But since the only reason you should set free_condensed is if you are a non-subscriber, normal subscribers shouldn't run into this error and non-subscribers will get a media not found response before they run into this. Interesting but harmless bug.
BTW: I did some cleanup on Sourceforge so if any of you received an answer for a three or four year old request today, I wanted to make sure Sourceforge info was current now. ;) |
MLB's making .3gp files available for condensed games? That could come in handy since my dumbphone requires .3g2 files for watching vids on it.
It's looking pretty well so far. Thanks for getting the 2013 season off to such a great start for Linux-using baseball fans, especially us poor schmucks who can't afford to pay for a video subscription that we'd surely buy if we could. With Opening Day upon us I'll write an article for my site with the updated info for running your program. Do you have an idea when the latest changes will make it into the official release? I'd like to let my readers know if there's an ETA but if there isn't I'll provide info on getting the code from svn. |
Quote:
That said, I am out of town this weekend and may not be able to follow Opening Day. I can upload a pre-release version and wait to see what happens in the next week or two. |
Quote:
|
Quote:
So install should be easiest it has been in a long time. 1. Python2.7 (or newer, but not Python3.x) - no other python libraries to install 2. Mplayer2 or VLC 3. rtmpdump for basic and subscriber condensed games 4. mlbhls for nexdef 3. and 4. not necessary for non-subscribers. |
Regarding condensed games and "free_condensed" --
I am not a paying subscriber, just use mlbviewer to watch the free condensed games. I just tried watching one of the condensed games using the settings I used last year, and got some error; so I tried the "free_condensed" configuration and it worked. However, the quality is significantly lower than the quality that you get in the browser (also for unauthenticated, free games). So looking a bit more into the error I was getting, it turns out to be what looks like a bug: a full rtmpdump invocation command is being passed as the url to the video player. The following patch fixes the issue I'm seeing (not sure of it breaks more-common use-cases, though, since the free condensed games is the only thing I use): Code:
diff -r 314900a2654f MLBviewer/mlbMediaStream.py Dov |
Quote:
From the responses I am seeing from MLB servers, there are several condensed games available but only a couple that look available for non-subscribers: Quote:
I hesitate to use any of the CLOUD streams (even though they are login:N and auth:N) as it looks like we could be circumventing app revenue since they are clearly intended for the mobile apps. That leaves the 3GP streams which top out at 550K but have login:N and auth:N. Are you sure your subscription didn't auto-renew? In any case, if free_condensed is set to 1, mlbviewer retrieves the 3GP 550K stream which is just an http url that cannot go through the rtmp code. In mlbviewer.py, line 496: Code:
if not mycfg.get('free_condensed'): However, for the subscribers, condensed games using the FLASH streams are rtmp urls and your proposed patch would break condensed games for subscribers not using free_condensed. BTW, I agree that the web stream is higher quality but I don't know which stream it is using. I tried some initial inspection using wireshark and debug console on the browser and couldn't figure it out. It looks like the web stream is an rtmp stream. |
Checked in revision393 which re-enables the old [DEBUG] behavior. If debug is set, the command string is displayed only and does not execute the command string. This should help us both track down any malformed commands.
|
Quote:
OK, after some experimentation, I see what's going on. There are a couple of different settings which are interacting here: First of all, the immediate problem I was seeing was due to my old config having use_librtmp=1. With use_librtmp=0, indeed my patch is not needed. However, it *is* still needed for when use_librtmp=1. So, I think the code you pointed to above (in mlbviewer.py, line 496) should actually be changed to reflect that: Code:
diff -r 27256988463d mlbviewer.py Secondly, for watching the condensed games, apparently not even an mlb.com account is needed (which makes sense, given that in the browser they are freely available without logging in): I moved aside my .mlb/config, in which case mlbviewer creates a new, clean, config, and asks you to fill in the user and password. If you just leave them empty and start mlbviewer again, it will complain about an authentication error, but will nonetheless start. At this point, you are still able to watch the condensed games, and you get the 1200K stream, just like you would in the browser. So, I think that free_condensed is not actually needed at all. I will try to create a patch which cleans this up; and if you have no objections, I will put up a patched version on bitbucket.org (as a mercurial repository, from which you will be able to get a raw patch)? Hope this helps! Dov |
BostonPeng, see post above. Leaving user= and pass= blank will get you access to the 1200K condensed game stream and the highlights.
Dov, changing free_condensed to use_librtmp will only work for that one case but it will break all the subscriber use cases including nexdef which has nothing to do with librtmp. I will have to look deeper into how to re-work the logic for librtmp. It will probably go into prepareMediaPlayerCmd effectively removing the need for that "if" statement. But I probably can't do that today as it needs a bit of testing. In the meantime, I can disable it in the code and release note it until I have it re-worked. I'm heading out of town soon for the weekend so I'm likely not going to take new patches until next week. Non-subscribers have a workaround by leaving user= and pass= blank and librtmp users can revert back to rtmpdump until I have this sorted. |
All times are GMT -5. The time now is 03:50 AM. |