Mastering XUI Panel Commands: Guide for IPTV Providers
As an IPTV Provider, you understand the importance of having a reliable and efficient IPTV panel to manage your business. XUI Panel, also known as XUI ONE, is a powerful and user-friendly IPTV panel that has gained popularity among IPTV providers worldwide. One of the key features that make XUI Panel stand out is its comprehensive set of commands that can help you streamline your IPTV operations and enhance the viewing experience for your customers.
In this article, we will dive into the world of XUI Panel commands and explore how you can use them to take your IPTV business to the next level. Whether you are a seasoned IPTV provider or just starting out, this guide will equip you with the knowledge and tools to maximize the potential of XUI Panel commands. So, let's get started!
Looking for a step-by-step XUI Panel installation tutorial? Read on:
How to Install XUI ONE - Step by Step Tutorial
Basics for XUI.ONE
Service Commands
service xuione <start|stop|reload|restart>
service xuione start
Generate License
To generate a license after installing, go to http://yoursite.com/accesscode and replace it with the unique access code for your installation.
If it doesn't work, follow the Access Code instructions. If you need to regenerate the license, follow the instructions below.
- Visit the XUI Billing Panel, log in and Reissue your license (for Main server only). Load balancers can skip this step.
- Ensure your license number is in /home/xui/config/config.ini
- Run the following commands on the server via SSH:
rm /home/xui/config/license
sudo -u xui /home/xui/bin/php/bin/php /home/xui/crons/license.php
The license.php will output information about your license and whether it is valid or not. If this doesn’t work, and your license is definitely in the reissued state, then you’ll have to contact support.
No Access Code
If you can't access the admin interface because your access code isn't working, check the /home /xui/bin/nginx/conf/codes/
directory for a code that ends with .conf. If you find one, try using it as your access code.
If there are no codes that end with .conf, or the ones that do are not for an admin interface login, then copy template
to admin.conf
and make the following changes:
- Replace
#CODE#
withadmin
- Replace
#TYPE#
withadmin
- Delete
#WHITELIST#
- Enter mysql via your preferred method and run: USE
`xui`; INSERT INTO `access_codes`( `code`, `type`, `enabled`, `groups`) VALUES ('admin', 0, 1, '[1]');
- Run the following command via SSH:
service xuione reload
- You should now be able to access the admin panel via:
http://yoursite.com:8080/admin
Login Error: “You do not have access”
This error is related to the access code you're using. It means the access code belongs to a different user group than the one you're in. Make sure you're using the correct user or access code. If you can't access the panel due to this error, follow the instructions in the "No Access Code" section to create a new access code for admins.
MySQL Access Denied
If you’re getting access denied on the main server, you’re going to need to edit /home/xui/config/config.ini
and change the username and password in the Encrypted section to match the credentials you were given when installing XUI, like this:
[Encrypted]
username = "username"
password = "password"
Save and restart the panel.
For load balancers, you can either follow the steps above or regenerate MySQL authentication using the "General" option in Management -> Tools -> Quick Tools. If the issue persists, it may be because the XUI MySQL user doesn't have permission to authorize external users. To fix this, you'll need to grant the privilege or manually allow the load balancer IP. If neither option works, it's an advanced procedure that may require external help.
Load Balancer Offline
To diagnose why the load balancer isn't going online, access it via SSH and run
/etc/init.d/xuione stop
/etc/init.d/xuione start
This will give you information about the issue, which could be related to MySQL, the license, or missing libraries. Follow the trail to troubleshoot the problem.
Reset Admin User
To reset the admin user, run the following command via MySQL to restore user ID 1 to the default username and password, which is admin for both. Afterward, make sure to change the username and password.
USE `xui`; REPLACE INTO `users`(`id`, `username`, `password`, `member_group_id`, `status`, `owner_id`, `date_registered`) VALUES(1, 'admin', '$6$rounds=20000$xui$eQfRsD2gsIUhoY5RnnYN82qiB5VeZTcHICQrFxXpa98J2R1454b6lzVHVjiJ.NP0gi0X3K7NXVgxeR1VhVhg61', 1, 1, 0, UNIX_TIMESTAMP());
XUI.ONE How to Use / Add Admin API
- Open the Panel, go to Management > Access Control > Access Codes
- Add Access Code, select from Access Type: Admin API and click next.
- Select as Group “Administrators”.
- If you want restrict the API to a cretain IP, add the IP and save it.
- To get the Admin API Key, open the Admin Profile.
You can then access the API via: http://yoursite.com/accesscode/?api_key=#APIKEY#
Example: https://[domain]:[port]/[accesscode]/?api_key=[api_key]&action=[api_command]
https://bestdomain.com:9000/rnVKrSLe/?api_key=1A2C5C80056A80F5AB6ECAD3937875DE&action=packages
If you're a developer, use this as your API endpoint and set the "action" parameter to one of the available API commands:
GET INFOmysql_query
user_info
get_lines
get_mags
get_enigmas
get_users
get_streams
get_channels
get_stations
get_movies
get_series_list
get_episodes
LOGS & EVENT APIactivity_logs
live_connections
credit_logs
client_logs
user_logs
stream_errors
watch_output
system_logs
login_logs
restream_logs
mag_events
LINE APIget_line
create_line
edit_line
delete_line
disable_line
enable_line
unban_line
ban_line
USER APIget_user
create_user
edit_user
delete_user
disable_user
enable_user
MAG APIget_mag
create_mag
edit_mag
delete_mag
disable_mag
enable_mag
unban_mag
ban_mag
convert_mag
ENIGMA APIget_enigma
create_enigma
edit_enigma
delete_enigma
disable_enigma
enable_enigma
unban_enigma
ban_enigma
convert_enigma
BOUQUETE APIget_bouquets
get_bouquet
create_bouquet
edit_bouquet
delete_bouquet
ACCESS CODE APIget_access_codes
get_access_code
create_access_code
edit_access_code
delete_access_code
HMAC APIget_hmacs
get_hmac
create_hmac
edit_hmac
delete_hmac
EPG APIget_epgs
get_epg
create_epg
edit_epg
delete_epg
reload_ep
g
GROUPS APIget_groups
get_group
create_group
edit_group
delete_group
PACKAGES APIget_packages
get_package
create_package
edit_package
delete_package
TRANSCODING PROFILE APIget_transcode_profiles
get_transcode_profile
create_transcode_profile
edit_transcode_profile
delete_transcode_profile
RTMP APIget_rtmp_ips
get_rtmp_ip
create_rtmp_ip
edit_rtmp_ip
delete_rtmp_ip
CATEGORIES APIget_categories
get_category
create_category
edit_category
delete_category
SUB RESELLER APIget_subresellers
get_subreseller
create_subreseller
edit_subreseller
delete_subreseller
WATCH FOLDERS APIget_watch_folders
get_watch_folder
create_watch_folder
edit_watch_folder
delete_watch_folder
reload_watch_folder
BLOCKED ISP & IP APIget_blocked_isps
add_blocked_isp
delete_blocked_isp
get_blocked_uas
add_blocked_ua
delete_blocked_ua
get_blocked_ips
add_blocked_ip
delete_blocked_ip
flush_blocked_ips
STREAMS APIget_stream
create_stream
edit_stream
start_stream
stop_stream
delete_stream
CHANNEL APIget_channel
create_channel
edit_channel
start_channel
stop_channel
delete_channel
STATION APIget_station
create_station
edit_station
start_station
stop_station
delete_station
MOVIE APIget_movie
create_movie
edit_movie
start_movie
stop_movie
delete_movie
SERIES APIget_series
create_series
edit_series
delete_series
EPISONE APIget_episode
create_episode
delete_episode
edit_episode
start_episode
stop_episode
SERVERS APIget_servers
get_server
install_server
delete_server
edit_server
install_proxy
edit_proxy
SETTINGS, STATS AND OTHER APIget_settings
edit_settings
get_server_stats
get_fpm_status
get_rtmp_stats
get_free_space
get_pids
get_certificate_info
reload_nginx
clear_temp
clear_streams
update_blacklist
get_directory
kill_pid
kill_connection
reload_cache
The upcoming API information will explain each function and its parameters. In the meantime, you can explore by enabling Developer Tools in the Admin Interface and logging traffic to post.php. The parameters sent there are the same ones you can use for the related API function.
For instance, if you add a stream in the "Streams" section, you can log post.php and send the same request to the "create_stream" function to replicate it. To edit a stream, pass the ID along with the request.
Some of the functions are server specific, so send server_id with them, for example:get_server_stats, get_fpm_status, get_rtmp_stats, get_free_space, get_pids, get_certificate_info, reload_nginx, clear_temp, clear_streams, update_blacklist, get_directory
If you have any questions or suggestions, please feel free to leave them in the comments below. We're always happy to help you on your IPTV journey!