{"id":5199,"date":"2026-03-26T17:19:11","date_gmt":"2026-03-26T17:19:11","guid":{"rendered":"https:\/\/doneiptv.com\/?page_id=5199"},"modified":"2026-05-01T18:26:00","modified_gmt":"2026-05-01T18:26:00","slug":"iptv-installation-guide","status":"publish","type":"page","link":"https:\/\/doneiptv.com\/home\/iptv-installation-guide\/","title":{"rendered":"IPTV Installation Guide , Setup DoneIPTV with Xtream Codes"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5199\" class=\"elementor elementor-5199\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1b8dc2e e-flex e-con-boxed e-con e-parent\" data-id=\"1b8dc2e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-204d0fc elementor-widget__width-inherit elementor-absolute elementor-widget elementor-widget-html\" data-id=\"204d0fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" 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  \r\n  <!-- SEO Meta Tags (updated) -->\r\n  <title>IPTV Installation Guide \u2013 Setup DoneIPTV with Xtream Codes | DoneIPTV<\/title>\r\n  <meta name=\"description\" content=\"Step-by-step IPTV installation guide using Xtream Codes. Setup Firestick, Smart TV, MAG, Android, iOS. Start streaming in minutes.\">\r\n  <meta name=\"robots\" content=\"index, follow\">\r\n  <link rel=\"canonical\" href=\"https:\/\/doneiptv.com\/iptv-installation-guide\/\">\r\n  \r\n  <!-- Open Graph -->\r\n  <meta property=\"og:title\" content=\"IPTV Installation Guide \u2013 Setup DoneIPTV with Xtream Codes\">\r\n  <meta property=\"og:description\" content=\"Step-by-step IPTV installation guide using Xtream Codes. Setup Firestick, Smart TV, MAG, Android, iOS.\">\r\n  <meta property=\"og:type\" content=\"website\">\r\n  <meta property=\"og:url\" content=\"https:\/\/doneiptv.com\/iptv-installation-guide\/\">\r\n  <meta property=\"og:image\" content=\"https:\/\/i.ibb.co\/1jJctgw\/bd39ba49-2bfb-4155-8b75-9472ebc6a1ce.png\">\r\n  \r\n  <!-- Fonts & Icons -->\r\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600;700&family=Orbitron:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\r\n  \r\n  <style>\r\n    \/* ========== GLOBAL STYLES (unchanged) ========== *\/\r\n    :root {\r\n      --primary: #4a6fa5;\r\n      --secondary: #6b8cbc;\r\n      --accent: #ff6b6b;\r\n      --accent-glow: #ff8e8e;\r\n      --light-bg: #0f172a;\r\n      --light-card: #1e293b;\r\n      --text-dark: #f1f5f9;\r\n      --text-light: #94a3b8;\r\n      --gradient: linear-gradient(135deg, var(--primary), var(--secondary));\r\n      --shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\r\n      --transition: all 0.3s ease;\r\n      --radius: 15px;\r\n    }\r\n    * { margin: 0; padding: 0; box-sizing: border-box; }\r\n    html { scroll-behavior: smooth; }\r\n    body {\r\n      font-family: 'Montserrat', sans-serif;\r\n      background-color: var(--light-bg);\r\n      color: var(--text-dark);\r\n      overflow-x: hidden;\r\n      line-height: 1.6;\r\n    }\r\n    h1, h2, h3, h4 { font-family: 'Orbitron', sans-serif; font-weight: 700; }\r\n    .container { width: 90%; max-width: 1200px; margin: 0 auto; }\r\n    .continuous-section {\r\n      position: relative;\r\n      overflow: hidden;\r\n      background: linear-gradient(rgba(15, 23, 42, 0.85), rgba(15, 23, 42, 0.9)), \r\n                  url('https:\/\/images.unsplash.com\/photo-1622547748225-3fc4abd2cca0?ixlib=rb-4.0.3&auto=format&fit=crop&w=1920&q=80');\r\n      background-size: cover;\r\n      background-position: center;\r\n      background-attachment: fixed;\r\n      min-height: 100vh;\r\n    }\r\n    .continuous-section::before {\r\n      content: '';\r\n      position: absolute;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      bottom: 0;\r\n      background: radial-gradient(circle at 20% 80%, rgba(74, 111, 165, 0.3) 0%, transparent 50%),\r\n                  radial-gradient(circle at 80% 20%, rgba(255, 107, 107, 0.2) 0%, transparent 50%);\r\n      animation: pulse 8s ease-in-out infinite;\r\n      z-index: 1;\r\n    }\r\n    @keyframes pulse { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }\r\n    .hero {\r\n      min-height: 50vh;\r\n      display: flex;\r\n      align-items: center;\r\n      position: relative;\r\n      z-index: 2;\r\n      padding: 80px 0 40px;\r\n    }\r\n    .hero-content { max-width: 1200px; text-align: center; width: 100%; z-index: 3; position: relative; }\r\n    .hero h1 {\r\n      font-size: 3.5rem;\r\n      margin-bottom: 25px;\r\n      background: linear-gradient(135deg, #ffffff 0%, #a8c6ff 100%);\r\n      -webkit-background-clip: text;\r\n      -webkit-text-fill-color: transparent;\r\n      animation: titleGlow 3s ease-in-out infinite alternate;\r\n    }\r\n    @keyframes titleGlow { from { text-shadow: 0 10px 30px rgba(0,0,0,0.3); } to { text-shadow: 0 10px 40px rgba(74,111,165,0.5); } }\r\n    .hero p {\r\n      font-size: 1.2rem;\r\n      margin-bottom: 30px;\r\n      color: rgba(255,255,255,0.9);\r\n      font-weight: 300;\r\n      max-width: 800px;\r\n      margin-left: auto;\r\n      margin-right: auto;\r\n    }\r\n    \/* stats, cards, device selector, etc. \u2013 same as previous code *\/\r\n    .stats-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n      gap: 30px;\r\n      margin: 40px 0;\r\n      position: relative;\r\n      z-index: 3;\r\n    }\r\n    .stat-card {\r\n      background: var(--light-card);\r\n      border-radius: 20px;\r\n      padding: 30px 20px;\r\n      text-align: center;\r\n      border: 1px solid rgba(255,255,255,0.05);\r\n      box-shadow: var(--shadow);\r\n      transition: var(--transition);\r\n    }\r\n    .stat-card:hover { transform: translateY(-10px); border-color: var(--accent); }\r\n    .stat-number {\r\n      font-size: 2.5rem;\r\n      font-weight: 700;\r\n      background: linear-gradient(135deg, var(--accent), #ff8e8e);\r\n      -webkit-background-clip: text;\r\n      -webkit-text-fill-color: transparent;\r\n      font-family: 'Orbitron', sans-serif;\r\n    }\r\n    .stat-label { color: var(--text-light); font-size: 1rem; text-transform: uppercase; letter-spacing: 1px; }\r\n    .quick-steps {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\r\n      gap: 30px;\r\n      margin: 50px 0;\r\n      position: relative;\r\n      z-index: 3;\r\n    }\r\n    .step-card {\r\n      background: var(--light-card);\r\n      border-radius: 20px;\r\n      padding: 30px 25px;\r\n      border: 1px solid rgba(255,255,255,0.05);\r\n      transition: var(--transition);\r\n      text-align: center;\r\n    }\r\n    .step-card:hover { transform: translateY(-10px); border-color: var(--accent); }\r\n    .step-num {\r\n      width: 60px;\r\n      height: 60px;\r\n      background: linear-gradient(135deg, var(--accent), #ff8e8e);\r\n      border-radius: 50%;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      font-weight: 800;\r\n      font-size: 1.8rem;\r\n      color: white;\r\n      margin: 0 auto 20px;\r\n      box-shadow: 0 10px 20px rgba(255,107,107,0.3);\r\n    }\r\n    .step-card h3 { font-size: 1.5rem; margin-bottom: 15px; }\r\n    .step-card p { color: var(--text-light); line-height: 1.6; }\r\n    .code-example {\r\n      background: #0f172a;\r\n      padding: 8px 12px;\r\n      border-radius: 12px;\r\n      font-family: monospace;\r\n      font-size: 0.8rem;\r\n      color: #86efac;\r\n      display: inline-block;\r\n      margin-top: 12px;\r\n      border: 1px solid rgba(255,255,255,0.1);\r\n    }\r\n    .image-section {\r\n      display: flex;\r\n      justify-content: center;\r\n      gap: 30px;\r\n      flex-wrap: wrap;\r\n      margin: 40px 0;\r\n      position: relative;\r\n      z-index: 3;\r\n    }\r\n    .setup-img {\r\n      background: var(--light-card);\r\n      border-radius: 20px;\r\n      padding: 20px;\r\n      text-align: center;\r\n      width: 200px;\r\n      transition: var(--transition);\r\n    }\r\n    .setup-img img {\r\n      width: 100%;\r\n      max-width: 120px;\r\n      margin-bottom: 15px;\r\n    }\r\n    .setup-img p { font-size: 0.9rem; color: var(--text-light); margin-top: 10px; }\r\n    .device-selector { margin: 40px 0 30px; position: relative; z-index: 3; }\r\n    .device-buttons {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      justify-content: center;\r\n      gap: 15px;\r\n      margin-bottom: 40px;\r\n    }\r\n    .device-btn {\r\n      background: rgba(30,41,59,0.8);\r\n      backdrop-filter: blur(8px);\r\n      border: 1px solid rgba(255,107,107,0.3);\r\n      border-radius: 60px;\r\n      padding: 12px 28px;\r\n      font-size: 1rem;\r\n      font-weight: 600;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 12px;\r\n      cursor: pointer;\r\n      transition: all 0.3s;\r\n      color: #EFF3F8;\r\n    }\r\n    .device-btn i { font-size: 1.2rem; color: var(--accent); }\r\n    .device-btn:hover { background: #1E293B; border-color: var(--accent); transform: translateY(-3px); }\r\n    .device-btn.active { background: linear-gradient(135deg, #1E2A47, #0F172A); border-color: var(--accent); box-shadow: 0 0 18px rgba(255,107,107,0.4); }\r\n    .details-panel {\r\n      background: rgba(15,18,25,0.7);\r\n      backdrop-filter: blur(12px);\r\n      border-radius: 30px;\r\n      border: 1px solid rgba(255,107,107,0.25);\r\n      overflow: hidden;\r\n      box-shadow: 0 25px 40px -12px rgba(0,0,0,0.5);\r\n    }\r\n    .panel-header {\r\n      background: rgba(11,15,23,0.8);\r\n      padding: 28px 32px;\r\n      border-bottom: 1px solid rgba(255,107,107,0.3);\r\n    }\r\n    .panel-header h3 { font-size: 1.9rem; display: flex; align-items: center; gap: 16px; }\r\n    .panel-header h3 i { font-size: 2rem; color: var(--accent); }\r\n    .steps-container { padding: 28px 32px 36px; min-height: 380px; }\r\n    .steps-transition { transition: opacity 0.3s ease, transform 0.25s ease; opacity: 1; transform: translateY(0); }\r\n    .steps-transition.fade-out { opacity: 0; transform: translateY(12px); }\r\n    .step-item {\r\n      display: flex;\r\n      gap: 20px;\r\n      margin-bottom: 32px;\r\n      border-bottom: 1px dashed rgba(255,107,107,0.2);\r\n      padding-bottom: 24px;\r\n    }\r\n    .step-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }\r\n    .step-marker-lg {\r\n      width: 44px;\r\n      height: 44px;\r\n      background: linear-gradient(135deg, var(--accent), #ff8e8e);\r\n      border-radius: 60px;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      font-weight: 800;\r\n      font-size: 1.3rem;\r\n      color: white;\r\n      flex-shrink: 0;\r\n    }\r\n    .step-content-lg p { color: var(--text-light); font-size: 1rem; line-height: 1.55; margin-bottom: 8px; }\r\n    .step-content-lg strong {\r\n      color: white;\r\n      font-weight: 700;\r\n      display: inline-block;\r\n      margin-bottom: 6px;\r\n      font-size: 1.05rem;\r\n      background: linear-gradient(135deg, #fff, #94A3B8);\r\n      -webkit-background-clip: text;\r\n      background-clip: text;\r\n      color: transparent;\r\n    }\r\n    .contact-support {\r\n      background: rgba(255,107,107,0.15);\r\n      border-radius: 20px;\r\n      padding: 16px 20px;\r\n      margin-top: 20px;\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 20px;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n    }\r\n    .contact-support a { color: var(--accent); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }\r\n    .faq-container { max-width: 900px; margin: 60px auto; position: relative; z-index: 3; }\r\n    .faq-item {\r\n      background: var(--light-card);\r\n      border-radius: 24px;\r\n      margin-bottom: 18px;\r\n      border: 1px solid rgba(255,255,255,0.05);\r\n    }\r\n    .faq-item:hover { border-color: var(--accent); }\r\n    .faq-question {\r\n      padding: 20px 28px;\r\n      font-weight: 700;\r\n      font-size: 1.2rem;\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n      cursor: pointer;\r\n    }\r\n    .faq-question i { color: var(--accent); }\r\n    .faq-answer {\r\n      padding: 0 28px 24px;\r\n      color: var(--text-light);\r\n      line-height: 1.6;\r\n      border-top: 1px solid rgba(255,255,255,0.05);\r\n      margin-top: 6px;\r\n      display: none;\r\n    }\r\n    .faq-answer.show { display: block; }\r\n    .cta-section {\r\n      background: var(--light-card);\r\n      border-radius: 30px;\r\n      padding: 60px 40px;\r\n      text-align: center;\r\n      margin: 60px 0;\r\n      border: 1px solid rgba(255,255,255,0.05);\r\n      position: relative;\r\n      z-index: 3;\r\n    }\r\n    .cta-section h2 {\r\n      font-size: 2.5rem;\r\n      margin-bottom: 20px;\r\n      background: linear-gradient(to right, var(--accent), #ff8e8e);\r\n      -webkit-background-clip: text;\r\n      -webkit-text-fill-color: transparent;\r\n    }\r\n    .cta-section p { color: var(--text-light); font-size: 1.2rem; margin-bottom: 30px; max-width: 700px; margin-left: auto; margin-right: auto; }\r\n    .about-buttons { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; margin: 30px 0; }\r\n    .cta-btn {\r\n      font-size: 1.2rem;\r\n      padding: 18px 40px;\r\n      background: linear-gradient(135deg, #ff6b6b, #ff8e8e);\r\n      box-shadow: 0 10px 25px rgba(255,107,107,0.4);\r\n      border-radius: 50px;\r\n      color: white;\r\n      font-weight: 600;\r\n      transition: var(--transition);\r\n      text-decoration: none;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      min-width: 220px;\r\n      border: 2px solid transparent;\r\n    }\r\n    .cta-btn:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(255,107,107,0.6); }\r\n    .secondary-btn { background: transparent; border: 2px solid rgba(255,255,255,0.7); backdrop-filter: blur(10px); }\r\n    .secondary-btn:hover { background: rgba(255,255,255,0.1); border-color: white; }\r\n    .footer {\r\n      background: #0f172a;\r\n      padding: 60px 0 30px;\r\n      text-align: center;\r\n      position: relative;\r\n      overflow: hidden;\r\n    }\r\n    .footer p { position: relative; z-index: 1; font-size: 1rem; opacity: 0.9; }\r\n    .particles { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 0; }\r\n    .particle {\r\n      position: absolute;\r\n      background: rgba(255,255,255,0.2);\r\n      border-radius: 50%;\r\n      animation: floatParticle 20s infinite linear;\r\n    }\r\n    @keyframes floatParticle {\r\n      0% { transform: translateY(100vh) translateX(0) rotate(0deg); opacity: 0; }\r\n      10% { opacity: 0.5; }\r\n      90% { opacity: 0.5; }\r\n      100% { transform: translateY(-100vh) translateX(100px) rotate(360deg); opacity: 0; }\r\n    }\r\n    @media (max-width: 768px) {\r\n      .hero h1 { font-size: 2.5rem; }\r\n      .hero p { font-size: 1rem; }\r\n      .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; }\r\n      .device-buttons { gap: 10px; }\r\n      .device-btn { padding: 8px 18px; font-size: 0.85rem; }\r\n      .panel-header h3 { font-size: 1.4rem; }\r\n      .steps-container { padding: 20px; }\r\n      .cta-section { padding: 40px 20px; }\r\n      .cta-section h2 { font-size: 2rem; }\r\n    }\r\n    @media (max-width: 480px) {\r\n      .stats-grid { grid-template-columns: 1fr; }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div class=\"continuous-section\">\r\n  <div class=\"particles\" id=\"particles\"><\/div>\r\n\r\n  <!-- Hero Section with keyphrase in introduction -->\r\n  <section class=\"hero\">\r\n    <div class=\"container\">\r\n      <div class=\"hero-content\">\r\n        <h1>How To Setup IPTV<\/h1>\r\n        <p>Welcome to the official <strong>IPTV installation guide<\/strong> for DoneIPTV. Whether you're using a Firestick, Android, iOS, Smart TV, or MAG box, this step-by-step tutorial will help you configure your service using Xtream Codes (Server URL, Username, Password). Start streaming in just a few minutes.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <!-- Stats Row -->\r\n  <div class=\"container\">\r\n    <div class=\"stats-grid\">\r\n      <div class=\"stat-card\"><div class=\"stat-number\">15+<\/div><div class=\"stat-label\">Devices Supported<\/div><\/div>\r\n      <div class=\"stat-card\"><div class=\"stat-number\">5-15<\/div><div class=\"stat-label\">Minutes Setup<\/div><\/div>\r\n      <div class=\"stat-card\"><div class=\"stat-number\">24\/7<\/div><div class=\"stat-label\">Support Available<\/div><\/div>\r\n      <div class=\"stat-card\"><div class=\"stat-number\">4.9<\/div><div class=\"stat-label\">Customer Rating<\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Images with alt attributes containing keyphrase -->\r\n  <div class=\"container\">\r\n    <div class=\"image-section\">\r\n      <div class=\"setup-img\">\r\n        <img decoding=\"async\" src=\"https:\/\/cdn-icons-png.flaticon.com\/512\/1066\/1066773.png\" alt=\"IPTV installation guide for Firestick device\">\r\n        <p>Firestick Setup<\/p>\r\n      <\/div>\r\n      <div class=\"setup-img\">\r\n        <img decoding=\"async\" src=\"https:\/\/cdn-icons-png.flaticon.com\/512\/888\/888879.png\" alt=\"IPTV installation guide for Smart TV\">\r\n        <p>Smart TV Setup<\/p>\r\n      <\/div>\r\n      <div class=\"setup-img\">\r\n        <img decoding=\"async\" src=\"https:\/\/cdn-icons-png.flaticon.com\/512\/174\/174836.png\" alt=\"IPTV installation guide for Android and iOS\">\r\n        <p>Mobile Setup<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Quick Start Guide (3 cards) with updated H2 -->\r\n  <div class=\"container\">\r\n    <div style=\"text-align: center; margin-bottom: 20px;\">\r\n      <h2 style=\"font-size: 2.2rem;\">Quick Start Guide \u2013 Your IPTV Installation Guide in 3 Steps<\/h2>\r\n      <p style=\"color: var(--text-light);\">Follow this <strong>IPTV installation guide<\/strong> in three easy steps<\/p>\r\n    <\/div>\r\n    <div class=\"quick-steps\">\r\n      <div class=\"step-card\">\r\n        <div class=\"step-num\">1<\/div>\r\n        <h3>\ud83d\udcf2 Download App<\/h3>\r\n        <p>Install an IPTV app that supports Xtream Codes (IPTV Smarters Pro, TiviMate, etc.) from your device\u2019s app store.<\/p>\r\n      <\/div>\r\n      <div class=\"step-card\">\r\n        <div class=\"step-num\">2<\/div>\r\n        <h3>\ud83d\udd11 Enter Xtream Codes<\/h3>\r\n        <p>Select \"Login with Xtream Codes API\" and enter your Server URL, Username, Password (sent via email).<\/p>\r\n        <div class=\"code-example\">Server: http:\/\/your-server.com:8080<br>Username: your_user<br>Password: your_pass<\/div>\r\n      <\/div>\r\n      <div class=\"step-card\">\r\n        <div class=\"step-num\">3<\/div>\r\n        <h3>\ud83c\udfac Start Streaming<\/h3>\r\n        <p>Immediate access to 25,000+ live channels and 100,000+ movies & TV shows in 4K quality.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Interactive Device Setup with keyphrase in H2 -->\r\n  <div class=\"container\">\r\n    <div style=\"text-align: center; margin-bottom: 30px;\">\r\n      <h2 style=\"font-size: 2.2rem;\">Complete IPTV Installation Guide for Firestick, Smart TV, MAG & More<\/h2>\r\n      <p style=\"color: var(--text-light);\">Click any device below for detailed Xtream Codes setup instructions<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"device-selector\">\r\n      <div class=\"device-buttons\" id=\"deviceButtonsContainer\"><\/div>\r\n      <div class=\"details-panel\">\r\n        <div class=\"panel-header\">\r\n          <h3><i class=\"fas fa-tv\" id=\"headerIcon\"><\/i> <span id=\"selectedDeviceName\">Smart TV<\/span><\/h3>\r\n        <\/div>\r\n        <div class=\"steps-container\">\r\n          <div id=\"stepsTransitionWrapper\" class=\"steps-transition\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Pro Tips Section with updated H3 -->\r\n  <div class=\"container\">\r\n    <div style=\"background: var(--light-card); border-radius: 20px; padding: 30px; margin: 40px 0; position: relative; z-index: 3;\">\r\n      <h3 style=\"font-size: 1.6rem; margin-bottom: 15px;\">Pro Tips for a Smooth IPTV Installation Guide<\/h3>\r\n      <ul style=\"color: var(--text-light); list-style: none; padding-left: 0;\">\r\n        <li style=\"margin-bottom: 10px;\">\u2714\ufe0f Use a wired Ethernet connection for the best stability during your <strong>IPTV installation guide<\/strong> process.<\/li>\r\n        <li style=\"margin-bottom: 10px;\">\u2714\ufe0f Always update your IPTV app to the latest version before entering Xtream Codes.<\/li>\r\n        <li style=\"margin-bottom: 10px;\">\u2714\ufe0f If you encounter buffering, increase the buffer size in your app settings to 10-15 seconds.<\/li>\r\n        <li style=\"margin-bottom: 10px;\">\u2714\ufe0f For MAG boxes, contact our support to convert your line \u2013 we'll provide a dedicated portal URL.<\/li>\r\n        <li>\u2714\ufe0f Bookmark this page: it's your complete <strong>IPTV installation guide<\/strong> for all devices.<\/li>\r\n      <\/ul>\r\n      <p style=\"margin-top: 20px; color: var(--text-light);\">With over 10,000 satisfied customers, DoneIPTV ensures 24\/7 support to help you through every step of your <strong>IPTV installation guide<\/strong> experience.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- FAQ Section with updated H2 -->\r\n  <div class=\"container\">\r\n    <div style=\"text-align: center; margin-bottom: 30px;\">\r\n      <h2 style=\"font-size: 2.2rem;\">IPTV Installation Guide \u2013 Frequently Asked Questions<\/h2>\r\n    <\/div>\r\n    <div class=\"faq-container\">\r\n      <div class=\"faq-item\"><div class=\"faq-question\"><span>\ud83d\udcfa What do I need to start?<\/span><i class=\"fas fa-chevron-down\"><\/i><\/div><div class=\"faq-answer\">You need an IPTV app that supports Xtream Codes (like IPTV Smarters Pro, TiviMate) and your login credentials (Server URL, Username, Password) sent to your email after purchase. This <strong>IPTV installation guide<\/strong> covers all apps.<\/div><\/div>\r\n      <div class=\"faq-item\"><div class=\"faq-question\"><span>\ud83d\udd11 Where do I find my Xtream Codes?<\/span><i class=\"fas fa-chevron-down\"><\/i><\/div><div class=\"faq-answer\">Your Server URL, Username, and Password are included in the DoneIPTV welcome email. Use these to log in via Xtream Codes API in your IPTV app.<\/div><\/div>\r\n      <div class=\"faq-item\"><div class=\"faq-question\"><span>\u26a1 How to reduce buffering?<\/span><i class=\"fas fa-chevron-down\"><\/i><\/div><div class=\"faq-answer\">Use a wired connection, increase buffer size in your IPTV app settings, and close background apps consuming bandwidth.<\/div><\/div>\r\n      <div class=\"faq-item\"><div class=\"faq-question\"><span>\ud83d\udda5\ufe0f I have a MAG box. How do I set it up?<\/span><i class=\"fas fa-chevron-down\"><\/i><\/div><div class=\"faq-answer\">MAG boxes use a Portal URL (not Xtream Codes). Contact our support via WhatsApp or Email to switch your line to MAG and receive your dedicated portal URL. Details below.<\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- CTA Section -->\r\n  <div class=\"container\">\r\n    <section class=\"cta-section\">\r\n      <h2>Ready to Join 10,000+ Happy Customers?<\/h2>\r\n      <p>Experience the DoneIPTV difference today with our risk-free 7-day guarantee.<\/p>\r\n      <div class=\"about-buttons\">\r\n        <a href=\"https:\/\/doneiptv.com\/iptv-pricing-subscription-plans\/\" class=\"cta-btn\">\r\n          <i class=\"fas fa-bolt\"><\/i> VIEW PLANS\r\n        <\/a>\r\n        <a href=\"https:\/\/wa.me\/447367062287\" class=\"cta-btn secondary-btn\" target=\"_blank\" rel=\"noopener\">\r\n          <i class=\"fab fa-whatsapp\"><\/i> CHAT WITH US\r\n        <\/a>\r\n      <\/div>\r\n    <\/section>\r\n  <\/div>\r\n\r\n  <!-- Footer -->\r\n  <footer class=\"footer\">\r\n    <div class=\"container\">\r\n      <p>\u00a9 2025 DoneIPTV - Premium IPTV Streaming Service. All Rights Reserved.<\/p>\r\n      <p style=\"margin-top: 15px; font-size: 0.9rem; opacity: 0.7;\">\r\n        <i class=\"fas fa-envelope\"><\/i> Doneiptv00@Gmail.Com &nbsp; | &nbsp; \r\n        <i class=\"fab fa-whatsapp\"><\/i> +44 7367 062287\r\n      <\/p>\r\n    <\/div>\r\n  <\/footer>\r\n<\/div>\r\n\r\n<script>\r\n  \/\/ Device data (unchanged)\r\n  const devices = [\r\n    { id: \"smarttv\", name: \"Smart TV (Samsung, LG, Sony)\", icon: \"fas fa-tv\",\r\n      steps: [\r\n        { title: \"Install IPTV App\", desc: \"Install 'IPTV Smarters Pro' or 'Smart IPTV' from your TV's app store.\" },\r\n        { title: \"Select Xtream Codes Login\", desc: \"Open the app and choose 'Login with Xtream Codes API'.\" },\r\n        { title: \"Enter Credentials\", desc: \"Input your Server URL, Username, and Password exactly as provided in your welcome email.\", code: \"Server: http:\/\/your-server.com:8080\\nUsername: your_username\\nPassword: your_password\" },\r\n        { title: \"Start Streaming\", desc: \"The playlist will load. Enjoy 25,000+ channels and VOD.\" }\r\n      ] },\r\n    { id: \"firestick\", name: \"Amazon Firestick\", icon: \"fab fa-amazon\",\r\n      steps: [\r\n        { title: \"Install IPTV Smarters Pro\", desc: \"From Amazon App Store, download 'IPTV Smarters Pro' or 'TiviMate'.\" },\r\n        { title: \"Launch & Choose Xtream Codes\", desc: \"Open the app, select 'Login with Xtream Codes API'.\" },\r\n        { title: \"Enter Details\", desc: \"Provide Server URL, Username, Password from your email.\", code: \"Server URL: http:\/\/xxx.xxx.xxx:8080\\nUsername: xxxxx\\nPassword: xxxxx\" },\r\n        { title: \"Enjoy\", desc: \"Wait for channels to load and start streaming.\" }\r\n      ] },\r\n    { id: \"android\", name: \"Android Device\", icon: \"fab fa-android\",\r\n      steps: [\r\n        { title: \"Install IPTV App\", desc: \"From Play Store, get 'IPTV Smarters Pro', 'TiviMate', or 'XCIPTV'.\" },\r\n        { title: \"Xtream Codes Login\", desc: \"Tap 'Add Playlist' and choose 'Xtream Codes API'.\" },\r\n        { title: \"Insert Credentials\", desc: \"Fill in your Server URL, Username, Password.\", code: \"Server: http:\/\/your-server.com:8080\\nUsername: abc123\\nPassword: def456\" },\r\n        { title: \"Optimize & Stream\", desc: \"Enable hardware acceleration and set buffer to 10-15 seconds for best performance.\" }\r\n      ] },\r\n    { id: \"ios\", name: \"iOS (iPhone\/iPad)\", icon: \"fab fa-apple\",\r\n      steps: [\r\n        { title: \"Install App\", desc: \"Download 'IPTV Smarters Pro' or 'GSE Smart IPTV' from App Store.\" },\r\n        { title: \"Add Playlist via Xtream Codes\", desc: \"In the app, locate 'Add Playlist' and select 'Xtream Codes API'.\" },\r\n        { title: \"Enter Server & Credentials\", desc: \"Provide your Server URL, Username, Password exactly as received.\" },\r\n        { title: \"Stream & AirPlay\", desc: \"Let playlist load. Use AirPlay to cast to Apple TV if desired.\" }\r\n      ] },\r\n    { id: \"magbox\", name: \"MAG Box\", icon: \"fas fa-microchip\",\r\n      steps: [\r\n        { title: \"Contact Support for Portal URL\", desc: \"MAG boxes require a Portal URL instead of Xtream Codes. Reach out to our team to switch your line and receive your dedicated portal.\" },\r\n        { title: \"Access System Settings\", desc: \"On your MAG remote, go to Settings \u2192 System Settings \u2192 Servers.\" },\r\n        { title: \"Enter Portal URL\", desc: \"Replace the existing portal with the one provided by support. Ensure it starts with http:\/\/\" },\r\n        { title: \"Restart & Activate\", desc: \"Save and restart your MAG box. The portal will load your DoneIPTV service.\" }\r\n      ],\r\n      contact: { email: \"Doneiptv00@Gmail.Com\", whatsapp: \"+44 7367 062287\" } },\r\n    { id: \"enigma2\", name: \"Enigma2 (Dreambox, VU+)\", icon: \"fas fa-network-wired\",\r\n      steps: [\r\n        { title: \"Access Web Interface\", desc: \"Enter your Enigma2 IP in a browser (e.g., http:\/\/192.168.1.100).\" },\r\n        { title: \"Use Xtream Codes Plugin\", desc: \"Install a plugin like 'X-Streamity' or 'JediMakerXtream' to input your Xtream Codes.\" },\r\n        { title: \"Enter Server, Username, Password\", desc: \"Provide your credentials from the welcome email.\" },\r\n        { title: \"Reload Bouquets\", desc: \"Restart Enigma2 or update services to see channels.\" }\r\n      ] }\r\n  ];\r\n\r\n  let activeDevice = devices[0];\r\n  let isTransitioning = false;\r\n  const stepsWrapper = document.getElementById('stepsTransitionWrapper');\r\n  const headerTitle = document.getElementById('selectedDeviceName');\r\n  const headerIcon = document.getElementById('headerIcon');\r\n\r\n  function buildStepsHTML(device) {\r\n    let html = '';\r\n    device.steps.forEach((step, idx) => {\r\n      html += `\r\n        <div class=\"step-item\">\r\n          <div class=\"step-marker-lg\">${idx+1}<\/div>\r\n          <div class=\"step-content-lg\">\r\n            <strong>${step.title}<\/strong>\r\n            <p>${step.desc}<\/p>\r\n            ${step.code ? `<div class=\"code-example\">${step.code.replace(\/\\n\/g, '<br>')}<\/div>` : ''}\r\n          <\/div>\r\n        <\/div>\r\n      `;\r\n    });\r\n    if (device.contact) {\r\n      html += `\r\n        <div class=\"contact-support\">\r\n          <span><i class=\"fas fa-headset\"><\/i> Need your MAG Portal URL?<\/span>\r\n          <div>\r\n            <a href=\"mailto:${device.contact.email}\"><i class=\"fas fa-envelope\"><\/i> ${device.contact.email}<\/a>\r\n            <a href=\"https:\/\/wa.me\/${device.contact.whatsapp.replace(\/\\s\/g, '')}\" target=\"_blank\" style=\"margin-left: 20px;\"><i class=\"fab fa-whatsapp\"><\/i> WhatsApp: ${device.contact.whatsapp}<\/a>\r\n          <\/div>\r\n        <\/div>\r\n      `;\r\n    }\r\n    return html;\r\n  }\r\n\r\n  function updateDetailsPanelWithTransition(device) {\r\n    if (isTransitioning) return;\r\n    isTransitioning = true;\r\n    stepsWrapper.classList.add('fade-out');\r\n    setTimeout(() => {\r\n      headerTitle.textContent = device.name;\r\n      headerIcon.className = device.icon;\r\n      stepsWrapper.innerHTML = buildStepsHTML(device);\r\n      stepsWrapper.offsetHeight;\r\n      stepsWrapper.classList.remove('fade-out');\r\n      setTimeout(() => { isTransitioning = false; }, 280);\r\n    }, 250);\r\n  }\r\n\r\n  const buttonsContainer = document.getElementById('deviceButtonsContainer');\r\n  function renderDeviceButtons() {\r\n    buttonsContainer.innerHTML = '';\r\n    devices.forEach((device, idx) => {\r\n      const btn = document.createElement('div');\r\n      btn.className = `device-btn ${idx === 0 ? 'active' : ''}`;\r\n      btn.innerHTML = `<i class=\"${device.icon}\"><\/i> ${device.name.split('(')[0].trim()}`;\r\n      btn.addEventListener('click', () => {\r\n        if (activeDevice.id === device.id) return;\r\n        document.querySelectorAll('.device-btn').forEach(b => b.classList.remove('active'));\r\n        btn.classList.add('active');\r\n        activeDevice = device;\r\n        updateDetailsPanelWithTransition(device);\r\n      });\r\n      buttonsContainer.appendChild(btn);\r\n    });\r\n  }\r\n\r\n  renderDeviceButtons();\r\n  stepsWrapper.innerHTML = buildStepsHTML(activeDevice);\r\n  headerTitle.textContent = activeDevice.name;\r\n  headerIcon.className = activeDevice.icon;\r\n\r\n  \/\/ FAQ accordion\r\n  const faqItems = document.querySelectorAll('.faq-item');\r\n  faqItems.forEach(item => {\r\n    const q = item.querySelector('.faq-question');\r\n    const a = item.querySelector('.faq-answer');\r\n    const icon = q.querySelector('i');\r\n    q.addEventListener('click', () => {\r\n      const isOpen = a.classList.contains('show');\r\n      document.querySelectorAll('.faq-answer').forEach(ans => ans.classList.remove('show'));\r\n      document.querySelectorAll('.faq-question i').forEach(ic => {\r\n        ic.classList.remove('fa-chevron-up');\r\n        ic.classList.add('fa-chevron-down');\r\n      });\r\n      if (!isOpen) {\r\n        a.classList.add('show');\r\n        icon.classList.remove('fa-chevron-down');\r\n        icon.classList.add('fa-chevron-up');\r\n      } else {\r\n        a.classList.remove('show');\r\n        icon.classList.remove('fa-chevron-up');\r\n        icon.classList.add('fa-chevron-down');\r\n      }\r\n    });\r\n  });\r\n\r\n  \/\/ Particle generation\r\n  function generateParticles() {\r\n    const container = document.getElementById('particles');\r\n    if (!container) return;\r\n    for (let i = 0; i < 60; i++) {\r\n      const p = document.createElement('div');\r\n      p.classList.add('particle');\r\n      const size = Math.random() * 6 + 2;\r\n      const posX = Math.random() * 100;\r\n      const delay = Math.random() * 20;\r\n      const duration = Math.random() * 15 + 25;\r\n      const color = Math.random() > 0.7 ? 'rgba(255, 107, 107, 0.3)' : \r\n                   (Math.random() > 0.5 ? 'rgba(74, 111, 165, 0.3)' : 'rgba(255, 255, 255, 0.2)');\r\n      p.style.width = `${size}px`;\r\n      p.style.height = `${size}px`;\r\n      p.style.left = `${posX}%`;\r\n      p.style.animationDelay = `${delay}s`;\r\n      p.style.animationDuration = `${duration}s`;\r\n      p.style.background = color;\r\n      p.style.boxShadow = `0 0 ${size*2}px ${color}`;\r\n      container.appendChild(p);\r\n    }\r\n  }\r\n  generateParticles();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\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>IPTV Installation Guide \u2013 Setup DoneIPTV with Xtream Codes | DoneIPTV How To Setup IPTV Welcome to the official IPTV installation guide for DoneIPTV. Whether you&#8217;re using a Firestick, Android, iOS, Smart TV, or MAG box, this step-by-step tutorial will help you configure your service using Xtream Codes (Server URL, Username, Password). Start streaming in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5199","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/pages\/5199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/comments?post=5199"}],"version-history":[{"count":15,"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/pages\/5199\/revisions"}],"predecessor-version":[{"id":5288,"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/pages\/5199\/revisions\/5288"}],"wp:attachment":[{"href":"https:\/\/doneiptv.com\/home\/wp-json\/wp\/v2\/media?parent=5199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}