{"id":21484,"date":"2025-10-17T00:39:26","date_gmt":"2025-10-17T00:39:26","guid":{"rendered":"https:\/\/pearliptv.com\/pearliptv\/?page_id=21484"},"modified":"2025-10-17T01:17:13","modified_gmt":"2025-10-17T01:17:13","slug":"xtream-to-m3u-tool","status":"publish","type":"page","link":"https:\/\/pearliptv.com\/v5\/xtream-to-m3u-tool\/","title":{"rendered":"Xtream to M3u tool"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21484\" class=\"elementor elementor-21484\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c4bdb17 e-con-full e-flex e-con e-parent\" data-id=\"c4bdb17\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-ab1cbfa e-con-full e-flex e-con e-child\" data-id=\"ab1cbfa\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-82d31c0 e-con-full e-flex e-con e-child\" data-id=\"82d31c0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8ff6dae elementor-tablet-align-center elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"8ff6dae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/pearliptv.com\/our-iptv-subscription-pricing\/\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-dot-circle\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Free tool from Pearliptv<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4f73f08 elementor-widget__width-initial animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"4f73f08\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInRight&quot;,&quot;_animation_delay&quot;:100}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">M3u to Xtream or  Xtream to M3u FOR FREE<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27d6dbc elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"27d6dbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation_tablet&quot;:&quot;none&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Convert any M3u url to Xtream info ( username, password and URL host or Xtream to M3U FOR FREE<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e61af44 e-con-full e-flex e-con e-child\" data-id=\"e61af44\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1cfffd2 elementor-widget elementor-widget-html\" data-id=\"1cfffd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>Pearl IPTV \u2013 Playlist Format Converter<\/title>\r\n  <style>\r\n    body {\r\n      font-family: Arial, sans-serif;\r\n      background: #fff;\r\n      color: #111827;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      min-height: 100vh;\r\n    }\r\n\r\n    .container {\r\n      max-width: 600px;\r\n      width: 100%;\r\n      border-radius: 8px;\r\n      background: #fff;\r\n      padding: 24px;\r\n    }\r\n\r\n    .mode {\r\n      display: flex;\r\n      justify-content: center;\r\n      gap: 16px;\r\n      margin-bottom: 24px;\r\n    }\r\n\r\n    .label {\r\n      color: #4B5563;\r\n      font-size: 14px;\r\n      display: block;\r\n      margin-bottom: 6px;\r\n    }\r\n\r\n    .field {\r\n      margin-bottom: 16px;\r\n    }\r\n\r\n    .input {\r\n      width: 100%;\r\n      padding: 8px;\r\n      border: 1px solid #0201012E;\r\n      border-radius: 6px;\r\n      background: transparent;\r\n      color: #111827;\r\n      outline: none;\r\n      transition: border-color 0.2s ease;\r\n    }\r\n\r\n    .input:focus {\r\n      border-color: #111827;\r\n    }\r\n\r\n    .btn {\r\n      width: 100%;\r\n      padding: 12px;\r\n      background: #2193B0;\r\n      border: none;\r\n      color: #fff;\r\n      font-weight: bold;\r\n      text-transform: uppercase;\r\n      border-radius: 50px;\r\n      cursor: pointer;\r\n      transition: opacity 0.2s ease;\r\n    }\r\n\r\n    .btn:hover {\r\n      opacity: 0.9;\r\n    }\r\n\r\n    .result {\r\n      margin-top: 24px;\r\n      padding: 16px;\r\n      border: 1px solid #0201012E;\r\n      border-radius: 6px;\r\n      background: #f9f9f9;\r\n      text-align: center;\r\n      word-break: break-word;\r\n      font-size: 14px;\r\n      white-space: pre-wrap;\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"container\">\r\n    <div class=\"mode\">\r\n      <label><input type=\"radio\" name=\"mode\" value=\"xtream-to-m3u\" checked> Xtream \u2192 M3U<\/label>\r\n      <label><input type=\"radio\" name=\"mode\" value=\"m3u-to-xtream\"> M3U \u2192 Xtream<\/label>\r\n    <\/div>\r\n\r\n    <div id=\"xtream-fields\">\r\n      <div class=\"field\">\r\n        <span class=\"label\">Username<\/span>\r\n        <input class=\"input\" type=\"text\" id=\"username\" placeholder=\"john1234\">\r\n      <\/div>\r\n      <div class=\"field\">\r\n        <span class=\"label\">Password<\/span>\r\n        <input class=\"input\" type=\"text\" id=\"password\" placeholder=\"2msh1i9yl9\">\r\n      <\/div>\r\n      <div class=\"field\">\r\n        <span class=\"label\">Host URL<\/span>\r\n        <input class=\"input\" type=\"text\" id=\"host\" placeholder=\"http:\/\/default-host.com:80\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div id=\"m3u-field\" style=\"display: none;\">\r\n      <div class=\"field\">\r\n        <span class=\"label\">M3U URL<\/span>\r\n        <input class=\"input\" type=\"url\" id=\"m3uUrl\" placeholder=\"http:\/\/example.com:80\/get.php?username=user&password=pass&type=m3u_plus&output=mpegts\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <button class=\"btn\" id=\"convertBtn\">Convert<\/button>\r\n\r\n    <div id=\"result\" class=\"result\" style=\"display: none;\"><\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    const modeRadios = document.getElementsByName('mode');\r\n    const xtreamFields = document.getElementById('xtream-fields');\r\n    const m3uField = document.getElementById('m3u-field');\r\n    const resultBox = document.getElementById('result');\r\n\r\n    modeRadios.forEach(radio => {\r\n      radio.addEventListener('change', () => {\r\n        if (radio.value === 'xtream-to-m3u') {\r\n          xtreamFields.style.display = 'block';\r\n          m3uField.style.display = 'none';\r\n          resultBox.style.display = 'none';\r\n        } else {\r\n          xtreamFields.style.display = 'none';\r\n          m3uField.style.display = 'block';\r\n          resultBox.style.display = 'none';\r\n        }\r\n      });\r\n    });\r\n\r\n    document.getElementById('convertBtn').addEventListener('click', () => {\r\n      const mode = document.querySelector('input[name=\"mode\"]:checked').value;\r\n      resultBox.style.display = 'block';\r\n\r\n      if (mode === 'xtream-to-m3u') {\r\n        const username = document.getElementById('username').value.trim();\r\n        const password = document.getElementById('password').value.trim();\r\n        const host = document.getElementById('host').value.trim();\r\n\r\n        if (!username || !password || !host) {\r\n          resultBox.textContent = '\u26a0\ufe0f Please fill all fields: Username, Password, and Host URL.';\r\n          return;\r\n        }\r\n\r\n        const cleanHost = host.replace(\/\\\/$\/, '');\r\n        const url = `${cleanHost}\/get.php?username=${encodeURIComponent(username)}&password=${encodeURIComponent(password)}&type=m3u_plus&output=mpegts`;\r\n        resultBox.textContent = url;\r\n      } else {\r\n        const m3uUrl = document.getElementById('m3uUrl').value.trim();\r\n        if (!m3uUrl) {\r\n          resultBox.textContent = '\u26a0\ufe0f Please enter an M3U URL to extract Xtream info.';\r\n          return;\r\n        }\r\n\r\n        try {\r\n          const parsed = new URL(m3uUrl);\r\n          const username = parsed.searchParams.get('username') || 'N\/A';\r\n          const password = parsed.searchParams.get('password') || 'N\/A';\r\n          const host = `${parsed.protocol}\/\/${parsed.host}`;\r\n          resultBox.textContent = `Username    : ${username}\\nPassword    : ${password}\\nPrimary host: ${host}`;\r\n        } catch (e) {\r\n          resultBox.textContent = '\u274c Invalid M3U URL format.';\r\n        }\r\n      }\r\n    });\r\n  <\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Free tool from Pearliptv M3u to Xtream or Xtream to M3u FOR FREE Convert any M3u url to Xtream info ( username, password and URL host or Xtream to M3U FOR FREE Pearl IPTV \u2013 Playlist Format Converter Xtream \u2192 M3U M3U \u2192 Xtream Username Password Host URL M3U URL Convert<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-21484","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/pearliptv.com\/v5\/wp-json\/wp\/v2\/pages\/21484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pearliptv.com\/v5\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pearliptv.com\/v5\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pearliptv.com\/v5\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/pearliptv.com\/v5\/wp-json\/wp\/v2\/comments?post=21484"}],"version-history":[{"count":0,"href":"https:\/\/pearliptv.com\/v5\/wp-json\/wp\/v2\/pages\/21484\/revisions"}],"wp:attachment":[{"href":"https:\/\/pearliptv.com\/v5\/wp-json\/wp\/v2\/media?parent=21484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}