This application can be seen more like a plugin which enables your device to open "sop://" (Sopcast) links from within any other application.

  • Add support for "sop:// links" to your device.
  • You can use your favorite video player.
  • You can use a video player that support aspect ratio stretching.
  • Some streams have the audio out of sync. You can use a video player that is able to fix this problem.
  • Works with links. Just click on a sop:// link and the application will do the rest for you.
  • Safe auto-stop. In case that there is no video player currently playing the stream the app will stop by itself after a few minutes.

  • Fast internet connection (Ethernet the best, WiFi or LTE recommended, 4G may work).
  • Good and stable data signal.
  • Minimum 2 GB of RAM.
  • 10 MB free internal memory space.
  • A good quality stream (The app will attempt to open any stream regardless of its quality, stability or how good it is).
  • A good and compatible video player. (If you get an error saying something like "this stream can't be played" then you should try a different video player)
  • Recommended set-top boxes and airmouse:

    TANIX TX92 RKM MK 902II RKM MK 705
    Buy from: www.amazon.com

    Buy from: www.amazon.com

    Buy from: www.amazon.com


Sop to Http will create a local http:// stream that can be played with your favorite video player.

To use this app you need a sop link. This is something like: sop://broker.sopcast.com:3912/123456
Enter the sop link in the channel box (Alternatively you can enter only the last digits from the sop link) and touch start. If the stream is good it will say that is buffering and after a few seconds you should be prompted to chose one of the installed video players.

If only the channel ID (last digits from the sop link) is entered then you need to choose one of the 4 servers. The channel ID is specific to a server (It will work only to one server).

You can edit the servers in preferences. By default the servers are set like follows:

Server Number Address Description
1 sop://broker.sopcast.com:3912/ Try this server if the channel ID is 6 digits long. This server is used mostly for European channels.
2 sop://broker2.sopcast.com:3912/ Same as server 1. It may be identical with server 1.
3 sop:// Try this server if the channel ID is 4 or 5 digits long. This server is used mostly for chinese channels.
4 sop:// Try this server if the channel ID is 4...6 digits long.
  • How do I reset the default video player.

    You can edit the default video player from app menu. If no default is set in app menu then this is an Android setting problem. You need to go to settings - apps and select the actual default video player app then look at "open by default" and change it accordingly.

  • I receive "Stream is offline".

    This means that the stream is offline. Many streams are online for just a short period of time so it is normal to get this message allot if you are trying to play old streams. In very rare situations it can also means that the stream limit is reached or is not available in your country.

  • I receive "Timeout" allot.

    There is a setting in preferences "Connection timeout", try to increase the value and see if it helps.

  • The countdown window pop up every three minutes while I watch a stream.

    Go in preferences and disable Monitor video player. Some video players may not be compatible with this option.

  • The video player suddenly stops but the stream looks good.

    This app can not control the video player therefore the bug is only in the video player most likely in the ffmpeg library used by the video player. You can contact the developer of the video player that you are using if you want this to be fixed.
    This applies also if the video player crashes, freezes or any other abnormal behavior. Meanwhile you can activate Auto restart video player in preferences.

  • It does not work all the time.

    As far as I know the app works all the time. Probably the cause is somwhere else like: bad streams, offline streams, servers problems, network problems...

  • This app have absolutely no control over any streams or servers. If a stream is offline or a server is busy then there is nothing that this app can do.
  • Sopcast servers may have user limit and in the rare situations when this limit is reached, you will not be able to connect to server and you will receive the same message as when the stream is offline. This happens on any type of sopcast client.
  • The streaming is done using a p2p network. This means that the stability of the stream is influenced by how many peers(people visualizing the stream) are at the same time. The more, the better. The number of peers changes every second and when they are not sufficient, you will miss receiving one or more packets. This, depending of the video player you are using, may have various results like: freezing, stopping or even crashing some video players. This is not a bug in this app or servers or network. The bug is in the video player because it can't handle p2p streams and if you would like to have this fixed you should contact the developer of the video player you are using.

If you are a developer and have an app that uses sop links you may find useful the following information:

Intent extras

When starting soptohttp you can put extras in the intent. Bellow is a list with supported extras:

Name Type Default Description
stream_name (deprecated)
String null Show the stream name in status window.
show_local_address (deprecated)
boolean app setting Show the local url in status window.
show_memory (deprecated)
boolean app setting Show the memory usage in status window.
show_traffic (deprecated)
boolean app setting Show data traffic in status window.
com.devaward.soptohttp.EXTRA_SHOW_CLIENTS boolean app setting Show the number of clients connected to local address (video players).
show_counter (deprecated)
boolean app setting Show the auto-stop countdown in status window.
video_player_package (deprecated)
String system setting Open the stream with a specific video player.
The priority is: 1 App setting, 2 Intent extra, 3 System setting.
This was added in v.4.0
video_player_extras (deprecated)
Bundle null Intent extras that will be passed to the specified video player.
This was added in v.4.0
make_private (deprecated)
boolean false Hide the sop link and disables save button. The stream_name extra must be set for this to work. This should be used only in extreme cases like when you own the stream and you don't want it to become public. It should not be used for streams that can be found on the internet.
This was added in v.3.38

Broadcast events intent extras

While soptohttp service is running it will broadcast events with its status.

To capture broadcast events use the IntentFilter "com.devaward.soptohttp.action.EVENT". The onReceive should not be CPU demanding because it will run multiple times while the stream is watched.
This was added in v.4.0

Name Type Description
com.devaward.soptohttp.EXTRA_STREAM_NAME String The sopcast stream url.
com.devaward.soptohttp.EXTRA_PORT int The port used in local address (
com.devaward.soptohttp.EXTRA_STATUS int Status of the streaming described in the next table..
com.devaward.soptohttp.EXTRA_BUFFER int Buffer of the streaming from -1 to 100, -1 means that there is no data yet.

Values for com.devaward.soptohttp.EXTRA_STATUS

Value Meaning Description
0 Service started. Sent once at the beginning when the service starts.
1 Connected to server. Sent once if the connection to sopcast server is successful.
2 Buffering. Sent once when buffering is started.
3 Quality level. Sent every time there is a change in the quality level. You can get the level from "stream_quality" (int) intent extra
4 Streaming started. Sent once after buffering is sufficient and the stream can be opened.
5 Client connected. Sent every time a client (video player) is connecting to the stream.
6 Client disconnected. Sent every time a client (video player) is disconnecting from the stream.
7 Stream is offline. Sent once if the stream is offline.
20 Streaming has ended. Sent once if the stream is no longer online. May be also sent if the connection to the internet is lost.
40 Server can't be accessed. Sent once if the sopcast server is unaccessible. May be offline or it may have changed its IP if it is called using the IP address.
99 Service stopped. Sent once at the end when the service is stopped.

Save intent and extras

To capture saving the stream with your Activity watch for com.devaward.soptohttp.action.SAVE by adding the following to the manifest.

        <action android:name="com.devaward.soptohttp.action.SAVE"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="text/plain"/>

The extras in intent are:

Name Type Description
com.devaward.soptohttp.EXTRA_STREAM_URL String The sopcast stream url.
com.devaward.soptohttp.EXTRA_STREAM_NAME String The stream name (Optional).

Please don't send bug reports about streams or servers being offline. This app and the developer have nothing in common with any stream or server regardless of their country.

Send all bug reports to e-mail soptohttp@devaward.com. Please make sure to describe it in detail.
Thank you for your help!