Jump to content

who made the radio streaming app(s)?


DopeLabs

Recommended Posts

i own a hosting company for web and shoutcsat, etc…

the process for how clients/players tune in isnt very good at all…

BASS/2.4, SA-MP, and MTA:SA are the http user agents im seeing grabbing the tune in files

and im guessing that last one is the 'suggested' or default setting…

anyways…im not sure how many stations are listed in these apps, but i seem to be hosting a number of them, and… i want to avoid redirecting all requests coming from mta to an alternate radio server with a loop of justin beiber….

so, please chime in

Link to comment

There are a lot of these 'apps', search the resource browser for 'radio' and it will return you with all the publicly available radio resources:

https://community.multitheftauto.com/ind ... =resources

MTA also has function called playSound, which allows for playing .pls files.

https://wiki.multitheftauto.com/wiki/PlaySound

I'm guessing that most radio resources use this function, but if you want to be sure I suggest looking at the source code of some radio resources.

Link to comment

i will also mention that i do not play nor run an mta server… i am a hosting provider.. mostly radio… and the way that these mta clients are designed is bad.

from what i have noticed by tailing my access logs, and from playing gta/etc, it seems that someone playing a station in car can drive past a group of people, which forces all of those people to then make an http req for the pls file, thus they all hit the stream urls, counting as a stream hit, throwing off the metrics and stats… this is bad…

i find it amazing that people are ok with their computers going out to the web and downloading and executing a file, which was triggered by someone driving past in a car… this is such a terrible security risk, and its just begging for someone to exploit it

most of these seem like 'drive bys' as they are only tuned into the station for a few seconds….

i just took a peak at the resource list search results.. and this is, well…. had no idea there were that many…

Link to comment

Most servers will only need one radio. These are not hardcoded into the mta client, which means that there is not one standard radio resource. They are relatively easy to script, so that's why there are a lot of them. The way you describe it sounds to me like a custom script that lets people listen in. Maybe you'll have better luck talking to someone who actually runs such a script on a server.

Link to comment

I have absolutely no idea what you're on about.

What you're talking about sounds like a resource, one that creates a sound element in 3D space and then attaches it to a vehicle. Yes, of course each client will then have to try to stream the designated file/URL.

Link to comment

yea i dont know what their called in relation to the game.. but from what i could search up.. it looks like a modification of a siren function and instead of playing a siren, it plays a stream…

having all the clients go out and each make an http request for a file? your doing it wrong… and again.. is this something that the server has to support, or can any client use it on any server?

the potential for abuse here is pretty silly….

Link to comment

I think you're greatly misunderstanding how things actually work.

I don't see why anyone would make a custom siren that streams an external file, instead of using a file within the resource. Which I think is the case.

This is currently the only way custom sirens can be made within MTA.

Server needs the resource for it to work. A client can't just slap a resource in their game folder and it will magically work on every server. For such effects, you'll have to edit the actual game files.

Link to comment

This thread doesn't make any sense for several reasons. First of all, the situation you described – sounds are played in 3D space for all the players are seldom cases, not many servers have such scripts, at least to my knowledge. The mainstream scripts are optional for the end user and the stream only gets played for the client who initiates it.

But all what I described is really irrelevant to the matter. What baffles me, is the essence of your claim. You claim to be an hosting provider. You get paid for hosting servers, most likely per listener (slot) basis (if not, then it's your own problem that you OVERSELL, there is no such thing as limitless hosting). I guess you are here because your servers are under a lot of stress due to the streams. Why is it any of our concerns? It's your problem that you oversold and are unable to fulfill your obligations in front of your clients. Who are you to discriminate the listeners your clients can or can't have? You are merely the hosting provider. I would be deeply unhappy if someone I order a hosting service from would call such shots instead of me. Unless you have strictly reserved such right for yourself in the contract/TOS, then your clients have more than emotional reasons to be unhappy with you and start looking for a new provider.

The only problems I see here are the ones you have likely brought upon yourself. Just FYI, I can force your hosted radios to be played on every pageview of the sites I host (on mute) just to clogg your servers. Now please go and knock on the doors of W3C and every major browser developer out there and let them know how unsettled you are about this security flaw, while your business plan is the only thing flawed here.

Disclaimer: I don't listen to any of your radios and the servers linked to me don't have such streaming scripts. Your idiotic claims made me write my reply.

Link to comment

your claim of 'only the person who initiates it' is incorrect…

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 86.176.96.217 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 85.24.169.143 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 81.237.199.73 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 78.69.66.56 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 83.109.39.185 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 5.14.9.150 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 78.70.121.73 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 83.9.187.55 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 78.69.70.114 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 86.179.233.61 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 90.207.200.2 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 86.15.143.108 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 80.216.227.68 BASS/2.4

all within about a half second…. so please tell me again its only the client that initiates it… the above is just a small example…

my servers are not over stressed, and the only thing forcing radio's to play from every web page would do is cause the shoutcast to reach their max users as specified in the config file. but i would also get an alert, see the logs, and null route your ip(s).. nothing will be 'clogged'…

i am just trying to understand what this whole process is about, because as i mentioned before, it effects the normal metrics and stats in a negative manor, i was asked to investigate, so i am… and after watching the behavior of these scripts for a while im just trying to figure out who i need to contact to talk about a better and more efficient method for this… im pretty curious how all this stuff works.. because if you can make other players go out to the web and download a file just by being in earshot during gameplay, i wonder what the limits are =]

Link to comment

Dope, I think you've misunderstood how this community works. There aren't "fully authorised plugins" that get spread around from a main source. Plenty of sub-communities hosting MTA servers make their own plugins, or get ones they find others have made, and customise them. The plugin creation process for MTA is extremely easy. A bright person with no programming experience could pick it up and create something decent within a couple days, someone with programming experience can jump into MTA and make something unique and interesting in hours.

Now, I understand that you may make revenue through ads, or your clients make their revenue through your ads, and when someone hotlinks your data you miss out on that, or they do. But coming onto here to ask who's doing it is honestly pointless, anyone could have made it, even someone who isn't registered onto this forum. As for trying to "make it more efficient", there's nothing wrong with the functions. It's just someone's made a plugin, used your links, and may not have used the function as efficiently as possible.

But it may be worth noting, servers can't send data easily after connection unless it's packaged into the original resource but held back from immediate downloading, ie, a server can't download your stream and then redistribute the data to all the clients itself as need be. It's just not designed for that.

Link to comment
your claim of 'only the person who initiates it' is incorrect…

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 86.176.96.217 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 85.24.169.143 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 81.237.199.73 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 78.69.66.56 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 83.109.39.185 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 5.14.9.150 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 78.70.121.73 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 83.9.187.55 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 78.69.70.114 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 86.179.233.61 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 90.207.200.2 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 86.15.143.108 BASS/2.4

200 mtasa.dubstep.fm GET /listen.pls HTTP/1.1 80.216.227.68 BASS/2.4

all within about a half second…. so please tell me again its only the client that initiates it… the above is just a small example…

my servers are not over stressed, and the only thing forcing radio's to play from every web page would do is cause the shoutcast to reach their max users as specified in the config file. but i would also get an alert, see the logs, and null route your ip(s).. nothing will be 'clogged'…

i am just trying to understand what this whole process is about, because as i mentioned before, it effects the normal metrics and stats in a negative manor, i was asked to investigate, so i am… and after watching the behavior of these scripts for a while im just trying to figure out who i need to contact to talk about a better and more efficient method for this… im pretty curious how all this stuff works.. because if you can make other players go out to the web and download a file just by being in earshot during gameplay, i wonder what the limits are =]

Nullroute whose IP? First of all you wouldn't even know the reason behind it. You'll have no referral URL and no idea of the traffic source = no way to filter the traffic, only option would be to drop all the incoming connections.

There is no central "streaming app". It's all on-server-basis. There are only scripting functions, which users do with those is up to them. What you describe is not a standard feature, the server owners have made special scripts for it to work like that.

The "flaw" equivalence with HTML5 that I brought up before still stands.

Link to comment

thanks hex... just wanted to get an understanding is all..it seems like its pretty much free reign for script writers and ill prob never track them all down… what will most likely end up happening is any mta client request will get redirect to dedicated mta radio servers…

also.. ads are shitty, im sure everyone can agree..(except for the advertisers i guess) all my content is ad free.. and i dont think you could pay me enough to put in stream ads.

Link to comment

Well as some people said, the play sound function in MTA may be client sided but the actual sound is an element which can be attached to a car for instance. If this is done on the MTA server it can be synced to the clients while the car is moving within a certain distance and with different volumes depending on distance. I guess that's one reason to why your logs looks like that, just imagine someone who streams the radio station while driving around in a server with a large amount of players where all of them starts to stream the station as soon this car get's nearby.

I agree that the solution isn't the best but that's currently how it works, not many servers is using it currently however. Something that would be better where if the function PlaySound() also could be server sided or completely server sided. Basically the server calls the radio stream once and then sends it out to the clients. Another way is to do like in this resource: https://community.multitheftauto.com/index.php?p=resources&s=details&id=8305 which is a client sided GUI with a phone containing a list of radio stations. Players who uses that will only download the radio stream for themselves and no one else which means that the log probably will look like a regular visitor on the webpage.

Link to comment

yea i could pretty much see driveby's as they happened…. 60+ clients all tuning in for about 3 seconds…"heeey cooolaiid" and honestly, with the way that shoutcast is built, im willing to bet in that short amount of time they dont even hear any music because of the buffer when connecting… which makes about 80% of the requests pointless…

shoutcast servers are light, fast, and easy to spawn in an instance, all you would need to do is set the relay url and port and fire it up.. leave it connected until the last person disconnects then do the same yourself… maybe it would also be a good idea if your specifically listing stations… maybe send them a quick email letting them know you want to do so, and explain what that involves… i can bet that most are willing …

im just wondering if theres someway i can contribute.. all this looks pretty cool… if people would use it i would be totally down for building some kind of central service that these radio apps could use.. can be an aggregate of all their current lists, and a submission form for new ones. they submit a station name and a url to the playlist file, script curls the pls file, puts the host ip and port at the end of a config template and saves a fresh copy.. a shoutcast server will fire and make a single connection to the radio station the first time a client requests the customlzed pls file form me. will stay connected until the last person disconnects, rinse, repeat…. its pretty easy, can even take a soundcloud or youtube or whatever audio source and offer it up. im not sure if the game supports it, but i can do all the same with streaming video, static of live content… then these guys can put custom or live video content on the tv screens they installed in the seats :P ha.. comical =]

granted this also means that you will need to have half decent bandwidth depending on the content being streamed.

Link to comment

You may suggest it here then: https://forum.multitheftauto.com/viewforum.php?f=102, as in the wiki link posted by Ali_Digitali it's only possible for mta to call the radio stations from a client (or make a loop on the server which triggers an event on a lot of clients as described above). That might look like a botnet or some kind of small DDoS attack, anyway currently it seems hard to solve this in lua scripting only and by posting a suggestion this functionality may be added.

MTA is based on open source and written in C++ (correct me if I'm wrong here), so the possibility's to improve this is pretty good actually. I'm not an expert when it comes to radio streaming in general but as a server owner and self host I know how annoying it is when the logs get's overflowed like this and the requests is pretty useless. No matter what happens it might take a while before anything is changed (if so) and until then I guess it's best if the server owners somehow get's noticed about this and disable the resources that making a lot of useless calls and instead start to use the individual resources which threads every client as a regular client and let them select a radio station from a list and then listen to it just like if they visited the streaming website.

Edit: Btw since you're looking for those who might use this badly implemented radio resources you should probably check with the largest servers in MTA like CIT (http://cit2.net) and notice them about the problem, sadly I'm currently banned there otherwise I could have done it. It was a while ago since I played there but anyway it has the stuff I described above like attaching a sound to a car or an event where like 100 players running in and out all the time and similar so that could eventually be the source to your problem, I would look there if I where you.

Link to comment

yea its not really disruptive other than the fact that it throws off some of the stats like avg listener time, stream hits, etc… at most the log files are a little bit bigger.. but not by much. and at most your looking at what… maybe 320+kbps per listener from a shoutcast server… so thats no worries.. but i have it sorted out now… im just sending all the mta client requests to a dedicated server for mta tune ins.

thanks for all the info (everyone)… much appreciated!

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...