GerryDazoo / Slinger

Reuse SlingBox hardware without SlingBox Servers
170 stars 34 forks source link

This is so exciting , thank you , but I seem to be just falling short.... #2

Closed Osymoko closed 2 years ago

Osymoko commented 2 years ago

Hi , I have tried a few variants with the windows.exe but am getting an error log.

This maybe because I am not sure of the SB350 password, from the attached shot I think it should be 0369 (with no quotation marks) but there a lots of other passwords as well? I do have two SB350s but the second one is currently switched off so should not be interfering.

I have attached the logs, config and port forwarding proof as well to see it I have missed anything, Thank you so much again for this - it's wonderful SBpass Config log VLC .

GerryDazoo commented 2 years ago

Thanks for trying this out. Two things,

based on your slingbox info please try the admin password that starts with "4VPD....".

Port 8080 does not sound right for the slingbox port. I would be expecting something in the range 5201-5209. Comment out the ip address and port number in your config,ini and the code will probe for the Slingbox IP and port automatically. Otherwise try 5201 to start. If you've got your "slingbox desktop" code running it can tell you the correct IP address and port number

Also from the logs it looks like the slingbox IP address you are using is the same IP address as your PC. You may confusing the actual Slingbox hardware on your network with the slingbox_server software.

Osymoko commented 2 years ago

Hi Gerry,

Thanks for such prompt response. I have updated to May 21 code and tried the automatic search but it does not find either of my boxes on the network ( I have tested each separately, switched one off, left both on , but same failure message').. image

we have checked the SB350 address:

SBportdetials

..and hence I have updated the congfig and password (using no quotation marks or spaces) so it reads: image

but still get the error unfortunately when using "http://192.168.1.116:8080/slingbox" image

Anything you can spot would be amazing thank you ..

Many thanks indeed

Gary

GerryDazoo commented 2 years ago

Gary, You've gotten past getting logged into the box. Yeah! But it is failing when trying to configure the video stream. Can you verify that there is a video signal? I've only been able to test with my 500 box, so there may be something special about the default video parameters I've selected. Can you try a different video resolution=5 (VGA 640x480) instead of the 1280x720 default. you may also want to change the videobandwidth=2000. BTW what is your video source?

I'm waiting on a couple older slingboxes to test with. I might be able to reproduce your issue with one of them ( assuming we can't get it going soon) but it will be next week sometime before I can get home to do some more testing.

GerryDazoo commented 2 years ago

FYI, that error you're seeing is caused when the Slingbox closes down the TCP control connection because it doesn't like something it received.

Osymoko commented 2 years ago

Thanks Gerry, definitely got a video signal , and I have tried different resolutions and bandwiths. My video source is a satellite set-top box that inputs into the SB350 at 720p via component but I have also tested at 1080i as well - I have also tried composite at VGA but no change in error messages.

Happy to test anything you throw my way, but otherwise enjoy your time away and good luck! Gary

Osymoko commented 2 years ago

(should have added that there was no change in the error messages )

GerryDazoo commented 2 years ago

I won't be able to test any changes myself for awhile but if you feel comfortable making a code change you can try this. Change 'admin' to 'user' on line 251. sling_cmd(0x67, pack('I 32s 32s 132x', 0, futf16('admin'), futf16(password))) # log in to SB to sling_cmd(0x67, pack('I 32s 32s 132x', 0, futf16('guest'), futf16(password))) # log in to SB

and then use the user password from the info you downloaded from Mr. Sling. Starts with "koe..."

And we can see what happens.

GerryDazoo commented 2 years ago

OK, here's the deal. I had put in a huge hack to work around the fact that I couldn't figure out how to unwind the piece of perl code that figured out the proper encryption key to use after you got logged into the box. Apparently this code ONLY works with my box. So it might be awhile before I can get this sorted out with a general purpose solution. Can you run some perl on your PC? I might be able to send you a small perl script to regenerate the "keys.dat" file for your box.

Osymoko commented 2 years ago

Thanks Gerry, can't believe what kind efforts you are putting in. I will certainly take a look but sadly code changes and perl scripts are likely beyond me as I am not much of a coder at all. I will of course always happily test anything you can send our way.

GerryDazoo commented 2 years ago

OK, I'm going to make a small change to the code that will give me the info I need to make an encryption key file that is unique for your box. This should get you on the air. Standby, it might be later today or tomorrow, I;ll let you know when it's ready.

GerryDazoo commented 2 years ago

OK, check out the latest slingbox_server.py. When you run it it will still fail but please send me the line that says CHALLANGE followed by 16 hex bytes i.e. CHALLANGE c631844cf70531865d73650a16a0a536

Osymoko commented 2 years ago

Very happy to help , so the line is :

CHALLENGE 1bee68a294125b3ff55335ac5648580f

image

good luck!

GerryDazoo commented 2 years ago

newkeys.zip

Unzip this and rename it to keys.dat in the same folder as the code. Take it out for a spin

Osymoko commented 2 years ago

I am truly astonished! thank you so much - speechless.

image

(nb: This is workong on internal wifi - there is no external IPv4 access even though port 8080 is open - is that what you'd expect?)

Osymoko commented 2 years ago

I changed the port forwarding rules and it now works perfectly externally. Its an absolute wonder!

GerryDazoo commented 2 years ago

Your welcome. Still keen on knowing about the remote control.

From: Osymoko @.> Sent: Monday, July 11, 2022 7:04 PM To: GerryDazoo/Slinger @.> Cc: GerryDazoo @.>; Comment @.> Subject: Re: [GerryDazoo/Slinger] This is so exciting , thank you , but I seem to be just falling short.... (Issue #2)

I changed the port forwarding rules and it now works perfectly externally. Its an absolute wonder!

— Reply to this email directly, view it on GitHub https://github.com/GerryDazoo/Slinger/issues/2#issuecomment-1180914294 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AYOYVQKD3FC3GRIHE4Y6G5TVTSK6FANCNFSM52RHL3LQ . You are receiving this because you commented. https://github.com/notifications/beacon/AYOYVQJEL5PONK2MHTLF4VLVTSK6FA5CNFSM52RHL3L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOIZRVE5Q.gif Message ID: @. @.> >

Osymoko commented 2 years ago

Your welcome. Still keen on knowing about the remote control. From: Osymoko @.> Sent: Monday, July 11, 2022 7:04 PM To: GerryDazoo/Slinger @.> Cc: GerryDazoo @.>; Comment @.> Subject: Re: [GerryDazoo/Slinger] This is so exciting , thank you , but I seem to be just falling short.... (Issue #2) I changed the port forwarding rules and it now works perfectly externally. Its an absolute wonder! — Reply to this email directly, view it on GitHub <#2 (comment)> , or unsubscribe https://github.com/notifications/unsubscribe-auth/AYOYVQKD3FC3GRIHE4Y6G5TVTSK6FANCNFSM52RHL3LQ . You are receiving this because you commented. https://github.com/notifications/beacon/AYOYVQJEL5PONK2MHTLF4VLVTSK6FA5CNFSM52RHL3L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOIZRVE5Q.gif Message ID: @. @.> >

Yes, remote works fine internally and externally. Would you mind if I signposted your genius work with the Reddit Slingbox users group, you'll make a lot of 350/500 users very happy?!

GerryDazoo commented 2 years ago

Sure, that would be OK. I'm in the middle of porting the code for the older sling boxes. A little FYI, because you've got an open port on your firewall you will be getting port scanned by hackers on a regular basis. There's code in the server to try to detect that and shutdown any bogus connection attempts. What I have found is the port scans don't usually try the higher port numbers but mostly some of the well know port numbers, 8080 for example. So on my router I mapped port 65432 to internal port 8080 and the number of hacking attempts reported by the server went down by 90% ish. I don't have an exact number but it was significant.

Osymoko commented 2 years ago

Yes, I noted the amount of hacking attempts and was very suprised. Will follow your advice. Its just amazing work.

DoogieHowitzerWMD commented 2 years ago

Came across this from @Osymoko cross-post on Reddit.

@GerryDazoo Thank you for your efforts, as this looks quite promising. I like that it's using the existing hardware (a slingbox 500), as that would be preferable to dropping about $250 on an HD encoder, which is a solution I've seen being discussed on Reddit.

I have more than a few questions on the workings of this, but I'll start with just one for now that builds upon the discussion track here in this issue thread.

 

A little FYI, because you've got an open port on your firewall you will be getting port scanned by hackers on a regular basis.

Would setting up a VPN server improve the vulnerability of having the open ports?

For instance, if I were using my Slingbox 500 and running the Sling Webserver on a Raspberry Pi, do you think it would be feasible to also set up this Raspberry Pi as a VPN client while using a second Raspberry Pi as a VPN server, and then accessing the stream on a third device external to the network via that VPN?

A VPN is also going to require ports opened on the router in order to operate (could be wrong, but I'm pretty sure... I only really know enough coding and networking to get me in trouble), but perhaps that would be a more secure option as far as protecting our local networks?

GerryDazoo commented 2 years ago

Doogie: Did you not already have a port open on your router for the slingbox? So I think you're not any worse off, especially if you use a high port number like I recommended. So it depends on how secure you want to be, Yes you'll need to open a port on your router to allow a VPN connection from the Internet to get to the server (I've been using openVPN ) There's no reason why you can't run my slingbox_server code on the same Pi that has the VPN server running. I don't see a need for an extra hop and a second Pi. This configuration works for me. I didn't bother to document this possible network configuration, most people will have their hands full just getting Python up and running.

DoogieHowitzerWMD commented 2 years ago

Hey GerryDazoo, thank you for the quick response.

Did you not already have a port open on your router for the slingbox? So I think you're not any worse off, especially if you use a high port number like I recommended. So it depends on how secure you want to be, Yes you'll need to open a port on your router to allow a VPN connection from the Internet to get to the server (I've been using openVPN )

I originally set it up about 10 years ago, back when I was a kid who knew less about these sorts of things lol. I never had any problems, so I never revisited the configuration. Maybe I did open the port for it, but I don't specifically remember doing so. I figured I would want to improve upon the current approach while I'm having to retinker with things now, which would include adding a VPN in the mix.

There's no reason why you can't run my slingbox_server code on the same Pi that has the VPN server running. I don't see a need for an extra hop and a second Pi.

That's good to know. My concern is that I actually have two slingboxes at the same house I'm looking to reconfigure/replace, as well add some NAS options (my wife puts old pictures to Facebook when she wants to free up space on her iCloud, and I have to offer her some sort of safer and easy-to-use alternative to doing that). For that reason, my mind was already thinking about needing a Pi as a dedicated VPN server with multiple Pi's being in the mix, but maybe I'll have the VPN and a slingplayer run on one and use one less Pi than I figured I was gonna need.

GerryDazoo commented 2 years ago

doogie: The current software does not support more than one slingbox out of the box. You would need to copy all the files into a separate folder so you can have unique config.ini and keys.dat files. Also you would need to change the port the server is listening on to avoid a collision. What kind of NAS are you think about. I have a VPN server and Slingbox server running on my Synology box.

DoogieHowitzerWMD commented 2 years ago

Yes, definitely would need the unique config, keys, ports and static IP assignments. I'm mostly just figuring a $40 microcomputer would struggle to manage two Full HD streams simultaneously. However, since the Slingboxes are handling the step of video encoding, I'm not really sure how much heavy processing is involved in taking that encoded video and outputting a buffered stream of that content (you'd have a gauge on that since you wrote the code that does it).

My initial thoughts for a NAS solution was getting Western Digital MyCloud, since it's the closest to a plug-and-play option that doesn't require setting up a whole server on my own. After looking into that some more though, it seems that by making the tradeoff of simplicity for the work involved in purchasing equipment and setting up a file server, you are at the mercy of Western Digital choosing to maintain the backend software, both for the NAS itself and the apps for connecting to it remotely. I've been seeing complaints about planned obsolescence schemes in the older versions of these products (although I believe the drive itself can be modified to at least work as an external hard drive beyond that point).

Eventually, I'll likely end up learning more about setting up a server and having the VPN, the Slingbox video streams, the NAS, and whatever other solutions for things that the server would provide, all running off that one system. But if I can keep the Slingboxes running on a simpler setup for now, I can always move it to a more comprehensive system later.

GerryDazoo commented 2 years ago

I’ve had this running on a Raspberry Pi 3 Model B 3B primarily because it has an integrated wired ethernet, But the CPU was loafing along around 5%. So two 350/500’s should be no problem. You are correct the slingbox is doing all the work, the server app is basically a packet in and N packets out depending on how many simultaneous stream you have running.

I haven’t tried it over WiFi but it “should” work if you have a reasonable good signal.

From: DoogieHowitzerWMD @.> Sent: Friday, July 15, 2022 11:22 AM To: GerryDazoo/Slinger @.> Cc: GerryDazoo @.>; Mention @.> Subject: Re: [GerryDazoo/Slinger] This is so exciting , thank you , but I seem to be just falling short.... (Issue #2)

Yes, definitely would need the unique config, keys, ports and static IP assignments. I'm mostly just figuring a $40 microcomputer would struggle to manage two Full HD streams simultaneously. However, since the Slingboxes are handling the step of video encoding, I'm not really sure how much heavy processing is involved in taking that encoded video and outputting a buffered stream of that content (you'd have a gauge on that since you wrote the code that does it).

My initial thoughts for a NAS solution was getting Western Digital MyCloud, since it's the closest to a plug-and-play option that doesn't require setting up a whole server on my own. After looking into that some more though, it seems that by making the tradeoff of simplicity for the work involved in purchasing equipment and setting up a file server, you are at the mercy of Western Digital choosing to maintain the backend software, both for the NAS itself and the apps for connecting to it remotely. I've been seeing complaints about planned obsolescence schemes in the older versions of these products (although I believe the drive itself can be modified to at least work as an external hard drive beyond that point).

Eventually, I'll likely end up learning more about setting up a server and having the VPN, the Slingbox video streams, the NAS, and whatever other solutions for things that the server would provide, all running off that one system. But if I can keep the Slingboxes running on a simpler setup for now, I can always move it to a more comprehensive system later.

— Reply to this email directly, https://github.com/GerryDazoo/Slinger/issues/2#issuecomment-1185595504 view it on GitHub, or https://github.com/notifications/unsubscribe-auth/AYOYVQL7WKMKESDASHNCJ53VUFXYFANCNFSM52RHL3LQ unsubscribe. You are receiving this because you were mentioned. https://github.com/notifications/beacon/AYOYVQLQ5ELZ7JLNVSQGFX3VUFXYFA5CNFSM52RHL3L2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOI2VMA4A.gif Message ID: < @.> @.>

DoogieHowitzerWMD commented 2 years ago

I have a couple Pi model 2 B's sitting around, so when I'm able to get around to trying this out, I'll set one of those up to run but instances of the sling server and a VPN server as well. I'll report back whether I'm successful or if I encounter problems.

I have both slingboxes hardwired, so I'll just keep that setup as is and then plug the Pi in at the main router.