21 Aug 2020 - The wiki is undergoing a major cleanup. If you arrived here from a search engine and cannot find the page, please use the wiki search instead (top right corner of page)
More info can be found on the forum

HOW-TO:Use external players on Android

From Official Kodi Wiki
Jump to: navigation, search
Home icon grey.png   ▶ Android
▶ External players
▶ HOW-TO:Use external players on Android
Attention.png NOTICE:
Normally, you only need to use an external player if something is wrong with your Android device or you are doing something special/custom. Most users will not want to do this.


Attention talk.png Read all this and still need help? See this thread on the Kodi.tv forum.

To use an external player on Kodi for Android you simply need to make a playercorefactory.xml file in the userdata folder.

1 Steps

1 Create a new plain text file using a text editor and copy the contents of "#Basic playercorefactory.xml file" to it.
2 Verify the contents of your desired player definitions, particularly the filename. This must match the actual deployment on your Android device. You may also need to add args to pass to your desired player in order for it to actually play media.
3 Go to the section of the file that says EDIT THIS SECTION and replace all the instances of CHOOSE PLAYER NAME HERE with the external player name that you would like to use (exact name defined where it says "player name=" in the list of players).
4 optional
You might want to use only some external players for some files/streams, or even use more than one external player, depending on the file type and stream. In most cases you will likely just want to use one external player.
5 optional
Use dvdplayer for any file type/stream type where you want to use Kodi's default internal player.
6 Save this file as playercorefactory.xml in your userdata folder and reboot Kodi if it is still open. You should now be done.


2 Basic playercorefactory.xml file

<playercorefactory>
	<players>
		<player name="MXPlayerFree" type="ExternalPlayer" audio="false" video="true">
			<filename>com.mxtech.videoplayer.ad</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="MXPlayerPro" type="ExternalPlayer" audio="false" video="true">
			<filename>com.mxtech.videoplayer.pro</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="TPlayer" type="ExternalPlayer" audio="false" video="true">
			<filename>com.tiantian.android.player.app</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="DicePlayerFree" type="ExternalPlayer" audio="false" video="true">
			<filename>com.inisoft.mediaplayer.trial</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="VLCPlayer" type="ExternalPlayer" audio="false" video="true">
			<filename>org.videolan.vlc</filename>
			<args>--fullscreen "{1}"</args>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="DicePlayerPaid" type="ExternalPlayer" audio="false" video="true">
			<filename>com.inisoft.mediaplayer.a</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="RockPlayerLite" type="ExternalPlayer" audio="false" video="true">
			<filename>com.redirectin.rockplayer.android.unified.lite</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="RockPlayer" type="ExternalPlayer" audio="false" video="true">
			<filename>com.rockplayer</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="BSPlayerFree" type="ExternalPlayer" audio="false" video="true">
			<filename>com.bsplayer.bspandroid.free</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="MoboplayerFree" type="ExternalPlayer" audio="false" video="true">
			<filename>com.clov4r.android.nilz</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="mVideoplayerFree" type="ExternalPlayer" audio="false" video="true">
			<filename>afzkl.development.mVideoPlayer</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>		

		<player name="Vplayer" type="ExternalPlayer" audio="false" video="true">
			<filename>me.abitno.vplayer.t</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="WondersharePlayer" type="ExternalPlayer" audio="false" video="true">
			<filename>com.wondershare.player</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="ArchosVideo" type="ExternalPlayer" audio="false" video="true">
			<filename>com.archos.mediacenter.video</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="SopCast" type="ExternalPlayer" audio="false" video="true">
			<filename>org.sopcast.android</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>

		<player name="DaroonPlayer" type="ExternalPlayer" audio="false" video="true">
			<filename>com.daroonplayer.dsplayer</filename>
			<hidexbmc>true</hidexbmc>
			<playcountminimumtime>120</playcountminimumtime>
		</player>
	</players>
	<rules action="prepend">
<!---
**********                   **********
********** EDIT THIS SECTION **********
**********                   **********
-->
		<rule protocols="smb" player="CHOOSE PLAYER NAME HERE" />
		<rule dvdimage="true" player="CHOOSE PLAYER NAME HERE"/>
		<rule protocols="rtmp" player="CHOOSE PLAYER NAME HERE"/>
		<rule protocols="rtsp" player="CHOOSE PLAYER NAME HERE" />
                <rule protocols="sop" player="CHOOSE PLAYER NAME HERE" />
		<rule internetstream="true" player="CHOOSE PLAYER NAME HERE" />
		<rule video="true" player="CHOOSE PLAYER NAME HERE"/> <!-- Default for anything else not listed -->
	</rules>
</playercorefactory>

3 Working Example

To use VLC to selectively play only H.265 encoded videos with corresponding names, but the default internal player for everything else, use this playercorefactory:

<playercorefactory>
    <players>
        <player name="VLCPlayer" type="ExternalPlayer" audio="false" video="true">
            <filename>org.videolan.vlc</filename>
            <args>--fullscreen "{1}"</args>
            <hidexbmc>true</hidexbmc>
            <playcountminimumtime>120</playcountminimumtime>
        </player>
    </players>
    <rules action="prepend">
        <rule video="true" player="dvdplayer">
            <rule filename=".*265.*|.*HEVC.*|.*hevc.*" player="VLCPlayer"/>
        </rule>
    </rules>
</playercorefactory>

4 See also

  • External players - for full details on playercorefactory.xml and all the possible parameters.