資料取得聲明:本報告所整理資料均由公開頁面及 LINE 官方帳號取得;調查未以不法方式入侵主機。

範圍聲明:本報告呈現本次蒐集資料及保存版本中觀察到的現象,不據此推論所有課程或場次都沒有真人直播、即時聊天室互動或真實數據。

公開前端觀察報告 · 圖證與程式碼版

從報名到「直播」
畫面背後發生了什麼?

七組課程網站的銷售、等待、註冊與播放流程,以及 LINE 導向的新聞頁。每項觀察以頁面畫面、程式片段與結論範圍呈現。

報告建立日期:2026/11/3 · 資料保存:2026/11/1~11/2 · 補充查核:2026/11/2 · 時區 Asia/Taipei
畫面呈現限時報名、下一場直播、在線人數與觀眾留言
可確認的程式行為公式人數、動態場次、預錄分流與定時聊天腳本
最直接的證據集中在:報名人數公式、銷售頁 d 參數篩選場次、預錄連結分支、JIT 場次生成、預排聊天訊息及訪客編號避撞。人物身分與新聞獨立性則保留為待核疑點;報告不把「搜尋不到」寫成「不存在」。
銷售頁身分、價格、報名數等待頁星期、真人/預錄分流註冊頁JIT 場次與電話轉址直播頁影片、人數、聊天腳本新聞背書LINE、搜尋與舊活動
總覽

七組品牌總表

先看各品牌的講師標示、預錄連結與聊天室預排留言概況。

品牌講師/頁面標示是否有預錄是否有腳本留言
AICREATORChloe Chou/周心怡(素材註明為示意)未確認,沒有對應直播等待頁未確認,沒有對應直播室
ADragon六指淵(但銷售頁看不出來)有預錄預設連結;程式也保留真人分支保存樣本目前看不出來;使用者提供的另一場直播畫面可見聊天室留言
SalesKingVincent有預錄預設連結;程式也保留真人分支0 則
AI-NEXTAnna(頁面標示;身分未核實)有預錄預設連結;程式也保留真人分支83 則
AppIPO洪瑋岳(頁面主視覺標示)有預錄預設連結;程式也保留真人分支1 則
AI Plus/n8n六指淵有預錄預設連結;程式也保留真人分支225 則
AI First多位講師有預錄預設連結;程式也保留真人分支59 則
01

銷售頁

看品牌、身分、費用與報名前的揭露,哪些資訊能被獨立確認。

S1程式/保存畫面可確認

不同品牌網址,沿用相近頁面結構與追蹤系統

入口多採 form.品牌網域/?p=課程代碼,等待頁採 room.品牌網域/。六份銷售頁主程式在只統一品牌查詢設定後,正規化 SHA-256 完全相同;五份等待頁也各自一致。這支持共用建站系統,不能單憑它認定由同一家法定公司營運。

保存樣本共用 GTM GTM-MZGCRQ2M;前六組瀏覽器記錄還出現 Google Ads AW-366361026。Meta 資料集 ID 則有品牌差異,不能說所有追蹤碼都相同。

原始碼證據 P01 共用 GTM 容器
   1  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
   2  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
   3  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
   4  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
   5  })(window,document,'script','dataLayer','GTM-MZGCRQ2M');
                            
設定證據 P02 正規化主程式雜湊比對
{
  "form": [
    [
      "g1_form_AICREATOR",
      "6b576042c7cd4ed34d208010e41456b13a1fe4d9698393b02b0ee2ee17be0e2a"
    ],
    [
      "g2_form_adragon",
      "6b576042c7cd4ed34d208010e41456b13a1fe4d9698393b02b0ee2ee17be0e2a"
    ],
    [
      "g3_form_salesking",
      "6b576042c7cd4ed34d208010e41456b13a1fe4d9698393b02b0ee2ee17be0e2a"
    ],
    [
      "g4_form_ainext",
      "6b576042c7cd4ed34d208010e41456b13a1fe4d9698393b02b0ee2ee17be0e2a"
    ],
    [
      "g5_form_appipo",
      "6b576042c7cd4ed34d208010e41456b13a1fe4d9698393b02b0ee2ee17be0e2a"
    ],
    [
      "g6_form_n8n",
      "6b576042c7cd4ed34d208010e41456b13a1fe4d9698393b02b0ee2ee17be0e2a"
    ]
  ],
  "room": [
    [
      "g2_room_adragon",
      "bb289cc5b2cf5f207fd883a0d5f0c42b4b6bece405769e1f552fe937dbb6cfd1"
    ],
    [
      "g3_room_salesking",
      "bb289cc5b2cf5f207fd883a0d5f0c42b4b6bece405769e1f552fe937dbb6cfd1"
    ],
    [
      "g4_room_ainext",
      "bb289cc5b2cf5f207fd883a0d5f0c42b4b6bece405769e1f552fe937dbb6cfd1"
    ],
    [
      "g5_room_appipo",
      "bb289cc5b2cf5f207fd883a0d5f0c42b4b6bece405769e1f552fe937dbb6cfd1"
    ],
    [
      "g6_room_n8n",
      "bb289cc5b2cf5f207fd883a0d5f0c42b4b6bece405769e1f552fe937dbb6cfd1"
    ]
  ]
}
                            
S2程式可確認;部分現場結果待重核

銷售頁網址的 d= 可篩選報名視窗顯示的星期場次

保存的銷售頁程式共用同一套 d 解析邏輯:把網址中的 a~g 字母對應到星期一至星期日,再用來篩選報名視窗的場次。多字元值會逐字解析,只採用 a~g,其餘字元忽略;例如 d=today 不是特殊的「今天」指令,而是解析出 d 與 a,對應週四與週一。

d 值示例 共用解析結果
a~g 依序代表週一至週日
dg 週四、週日
today 忽略無效字母後,d、a 對應週四、週一
未帶 d 或沒有有效字母 不建立這項網址星期篩選條件

這是共用的程式規則,不逐品牌列出當天的場次結果,因為各頁面的日期會隨設定與檢查時間改變。程式另設有「篩選後沒有符合場次時回退原清單」的處理;若頁面設定為強制指定場次,也會直接顯示指定內容。因此 d 是場次呈現的篩選條件,不保證任何情況下都只顯示該星期。檢查只打開選單,沒有填寫或送出報名資料。

程式碼證據 P32 讀取 d、映射星期並套用場次篩選
const signupSessionVariantKey = String(urlParams.get('d') || '').trim();

function xlabWeekdayVariantFromKey(key) {
    const weekdayMap = { a: '1', b: '2', c: '3', d: '4', e: '5', f: '6', g: '0' };
    const days = String(key || '').toLowerCase().split('').map(ch => weekdayMap[ch]).filter(Boolean);
    return days.length ? { '限定星期': days.join(',') } : null;
}

const urlSessionFilter = xlabBuildUrlSessionFilter();
generateAutoScheduleFromData(scheduleData, allowBackup, soldOutRaw,
    xlabMergeSessionFilters(null, urlSessionFilter));
S3有證據,結論有範圍

填寫聯絡資料前,未在保存表單中辨識出完整蒐集者名稱與權利管道

對七組保存表單的可見文字進行關鍵字檢查,並檢視姓名、email、手機等欄位附近的畫面;未辨識出可對應的公司/蒐集者完整名稱、完整個資蒐集告知及專門的權利行使方式。下方三張截圖是畫面示例,完整的七組關鍵字檢查結果列於 P03。課程文案提到「公司」或提供客服 LINE,並不等於已揭露誰在蒐集與如何處理資料。

個資法第 8 條列出蒐集者名稱、目的、資料類別、利用範圍、權利與行使方式等告知事項;本報告以此作為檢視項目,不就個別網站是否適用例外或構成違法作結論。

設定證據 P03 七組可見表單文字的關鍵字檢查
[
  {
    "頁面": "g1_form_AICREATOR",
    "可見表單文字長度": 447,
    "公司法定名稱關鍵字": [],
    "告知與權利行使關鍵字": []
  },
  {
    "頁面": "g2_form_adragon",
    "可見表單文字長度": 433,
    "公司法定名稱關鍵字": [],
    "告知與權利行使關鍵字": []
  },
  {
    "頁面": "g3_form_salesking",
    "可見表單文字長度": 441,
    "公司法定名稱關鍵字": [],
    "告知與權利行使關鍵字": []
  },
  {
    "頁面": "g4_form_ainext",
    "可見表單文字長度": 839,
    "公司法定名稱關鍵字": [],
    "告知與權利行使關鍵字": []
  },
  {
    "頁面": "g5_form_appipo",
    "可見表單文字長度": 1768,
    "公司法定名稱關鍵字": [],
    "告知與權利行使關鍵字": []
  },
  {
    "頁面": "g6_form_n8n",
    "可見表單文字長度": 745,
    "公司法定名稱關鍵字": [],
    "告知與權利行使關鍵字": []
  },
  {
    "頁面": "AI First",
    "可見表單文字長度": 563,
    "公司法定名稱關鍵字": [],
    "告知與權利行使關鍵字": [],
    "來源": "outputs/AI_First網站保存_20261102/pages/form/registration-form-observation.json"
  }
]
                            
S4有證據,結論有範圍

人物與經歷:AICREATOR 標示講師與案例為示意;AI-NEXT 履歷未找到可交叉驗證來源

AI-NEXT 素材標示「Anna、29 歲、AI 自動化接案講師」並附個人故事。本次列出的搜尋未找到可交叉驗證該人物與經歷的獨立資料。

AICREATOR 則使用「Chloe Chou 周心怡」講師形象;有示意揭露講師為示意內容。

本次搜尋記錄:"Anna" "AI-NEXT" 講師、"Anna" "29歲" "AI" "接案"、"Chloe Chou" "周心怡";未找到可靠的相符人物履歷。搜尋結果可能漏掉非公開或未收錄的資料。

設定證據 P04 AICREATOR 的示意內容揭露
{
  "報名頁文案": "每天想題目、寫腳本、做封面,是一人經營最累的地方。一個下午,用 AI 把一個月的短影音內容一次排好,而且聽起來還是你。目前開放候補登記,開課時間確定後會由專人聯繫說明場次與費用。頁面中的講師與案例為示意內容。"
}
                            
S5有證據,結論有範圍

AICREATOR 表單只提供候位,方案與場次未確認

銷售頁顯示 NT$300,彈窗稱「限時0元報名試聽」,並以「立即報名」作為按鈕。長圖另列免費前 60 分鐘、300 元完整 4 小時及 1,800 元 VIP 方案,因此不能只憑價格不同就判定收費矛盾;但彈窗沒有清楚說明這次候補對應哪一個方案。

必填的「剩餘場次」選單只有「報名候位」,沒有可選日期或時間。彈窗說明也寫明目前是候補登記,等開課時間確定後再聯繫說明場次與費用。因此使用者送出的是候補資料,不是已選定場次的正式報名;「立即報名」與「報名成功」的字樣可能讓人誤以為已取得免費試聽或確定名額。

表單要求姓名、電子信箱與手機。送出成功後,程式會顯示「報名成功!」及可複製的報名編號,所以不能說畫面只有成功文字;但成功畫面沒有確認日期、時段、確切費用或參加方式。設定關閉 LINE 引導,成功畫面會隱藏 LINE/QR,也沒有交代專人何時、透過哪個管道聯繫。未能從前端確認是否另有後續 email 或簡訊。

設定證據 P05 AICREATOR 價格、候補與 LINE 設定
{
  "原價": 0,
  "優惠": "300",
  "場次query": "",
  "僅開場次": "報名候位",
  "Line ID": "",
  "報名頁文案": "每天想題目、寫腳本、做封面,是一人經營最累的地方。一個下午,用 AI 把一個月的短影音內容一次排好,而且聽起來還是你。目前開放候補登記,開課時間確定後會由專人聯繫說明場次與費用。頁面中的講師與案例為示意內容。",
  "Line 回覆訊息": "感謝登記「一人自媒體 AI 量產術」候補!開課時間確定後,會由專人與你聯繫說明場次與費用。",
  "LINE引導開關": false
}
                            
原始碼證據 P06 LINE 引導關閉時的成功畫面
2390                          : `我已報名\n${titleForMessage}\n${selectedSchedule}\n編號:${leadid}`;
2391                      document.getElementById('xlab-leadid-text').textContent = leadIdDisplay;
2392                      document.getElementById('xlab-display-leadid').style.display = 'block';
2393                      document.getElementById('xlab-display-leadid').setAttribute('data-copy', copyMessage);
2394                      const lineGuidanceEnabled = isLineGuidanceEnabled(pageData);
2395                      document.querySelectorAll('#xlabSuccessContent .xlab-line-required-card, #xlabSuccessContent .xlab-qr-card').forEach(el => el.style.display = lineGuidanceEnabled ? '' : 'none');
2396                      if (!lineGuidanceEnabled) {
2397                          document.getElementById('xlab-success-title').textContent = isConsultationJourney ? (pageData.__xlabRegistrationMode==='contact'?'諮詢資料已送出,專人將與你聯繫':'預約成功!') : '報名成功!';
2398                          document.getElementById('xlab-line-link').removeAttribute('href');
2399                          document.getElementById('xlab-qrcode-img').removeAttribute('src');
2400                          xlabSetModalMode('success');
2401                          xlabPulseEmbedHeight();
2402                          return;
2403                      }
2404                      const dynamicUrl = `https://line.me/R/oaMessage/${lineIdRaw}/?${encodeURIComponent(copyMessage)}`;
2405                      const lineButtonUrl = saved.lineUrl || dynamicUrl;
2406                      document.getElementById('xlab-line-link').href = lineButtonUrl;
                            
S6程式/保存畫面可確認

「已報名人數」會隨日期自動增加

共用程式不是逐次查詢真實報名筆數,而是以設定基數,加上由課程代碼與日期雜湊算出的每日增量。AppIPO、n8n、AI First 的保存設定都有非零基數;其畫面人數因此包含人工設定與公式生成的成分。其他基數為 0 的頁面,不能一概說當時也展示了上萬人報名。

原始碼證據 P07 基數+日期雜湊增量
1442      function xlabStableDailyIncrement(seed, dayKey, max) {
1443          const limit = xlabNormalizeRegisteredNumber(max, 300);
1444          if (limit <= 0) return 0;
1445          const input = `${seed || 'signup'}:${dayKey}`;
1446          let hash = 2166136261;
1447          for (let i = 0; i < input.length; i += 1) {
1448              hash ^= input.charCodeAt(i);
1449              hash = Math.imul(hash, 16777619);
1450          }
1451          return (hash >>> 0) % (limit + 1);
1452      }
1453  
1454      function xlabCalculateRegisteredCount(data, todayKey = xlabTaipeiDateKey()) {
1455          const base = xlabNormalizeRegisteredNumber(data?.['已報名基數'], 0);
1456          if (base <= 0) return 0;
1457          const dailyMax = xlabNormalizeRegisteredNumber(data?.['已報名每日增加上限'], 300);
1458          const startKey = xlabNormalizeDateKey(data?.['已報名起算日']) || xlabNormalizeDateKey(data?.created_at) || todayKey;
1459          const startDay = xlabDayNumber(startKey);
1460          const todayDay = xlabDayNumber(todayKey);
1461          if (!Number.isFinite(startDay) || !Number.isFinite(todayDay) || todayDay <= startDay) return base;
1462          const seed = data?.query || data?.__xlabBaseQuery || data?.['報名卡片-標題'] || 'signup';
1463          let total = base;
1464          for (let day = startDay + 1; day <= todayDay; day += 1) {
1465              total += xlabStableDailyIncrement(seed, xlabDateKeyFromDayNumber(day), dailyMax);
1466          }
1467          return total;
1468      }
                            
設定證據 P08 各品牌報名數設定與計算值
[
  {
    "key": "AICREATOR",
    "name": "AICREATOR",
    "base": 0,
    "start": "2026-10-29",
    "dailyMax": 300,
    "discountDeadline": null,
    "nov1": 0,
    "nov2": 0
  },
  {
    "key": "adragon",
    "name": "ADragon",
    "base": 0,
    "start": null,
    "dailyMax": 0,
    "discountDeadline": null,
    "nov1": 0,
    "nov2": 0
  },
  {
    "key": "salesking",
    "name": "SalesKing",
    "base": 0,
    "start": "2026-10-16",
    "dailyMax": 300,
    "discountDeadline": null,
    "nov1": 0,
    "nov2": 0
  },
  {
    "key": "ainext",
    "name": "AI-NEXT",
    "base": 0,
    "start": null,
    "dailyMax": 300,
    "discountDeadline": null,
    "nov1": 0,
    "nov2": 0
  },
  {
    "key": "idea",
    "name": "AppIPO",
    "base": 12675,
    "start": "2026-07-03",
    "dailyMax": 30,
    "discountDeadline": null,
    "nov1": 14505,
    "nov2": 14511
  },
  {
    "key": "n8n",
    "name": "AI Plus/n8n",
    "base": 14720,
    "start": "2026-07-03",
    "dailyMax": 3,
    "discountDeadline": null,
    "nov1": 14901,
    "nov2": 14904
  },
  {
    "key": "aifirst",
    "name": "AI First",
    "base": 14720,
    "start": "2026-07-03",
    "dailyMax": 10,
    "discountDeadline": null,
    "nov1": 15395,
    "nov2": 15404
  }
]
                            
S7使用者提供的觀察

ADragon 銷售頁主視覺與使用者提供直播畫面中的人物不同

ADragon 銷售頁主視覺使用女性照片;使用者提供的直播截圖中,播放畫面可見男性講者,並由使用者確認為六指淵。兩個畫面呈現的人物不同,值得讀者留意。

現有銷售頁截圖不足以確認女性照片是否被明確標示為講師,因此本報告只記錄宣傳主視覺與實際直播畫面的落差,不推斷照片人物的身分或是否刻意冒充。

02

直播等待頁

文案如何稱呼活動,排程與連結又如何決定觀眾去哪裡。

W1程式/保存畫面可確認

d 參數會改變場次/星期篩選,但不是任意文字都有效

當沒有同名場次版本時,程式把 a~g 對應星期一至星期日:a=一、b=二、c=三、d=四、e=五、f=六、g=日;例如 d=dg 可選四、日。後台同名版本優先。today 不符合這個字母映射,需看有沒有同名版本;篩選後若沒有結果,程式還可能回退到原場次清單。

原始碼證據 P09 d 的星期映射、同名版本優先與空篩選回退
 506      function lglWeekdayVariantFromKey(key) {
 507        const cleanKey = String(key || "").trim().toLowerCase();
 508        if (!/^[a-g]+$/.test(cleanKey)) return null;
 509        const weekdayMap = { a: "1", b: "2", c: "3", d: "4", e: "5", f: "6", g: "0" };
 510        const seen = new Set();
 511        const days = [];
 512        cleanKey.split("").forEach(ch => {
 513          const day = weekdayMap[ch];
 514          if (!day || seen.has(day)) return;
 515          seen.add(day);
 516          days.push(day);
 517        });
 518        return days.length ? { "限定星期": days.join(",") } : null;
 519      }
 520  
 521      function lglPickSessionVariant(data, key) {
 522        const cleanKey = String(key || "").trim();
 523        if (!cleanKey) return null;
 524        const variants = lglParseSessionVariants(data?.["場次版本"]);
 525        const variant = variants[cleanKey];
 526        if (variant && typeof variant === "object" && !Array.isArray(variant)) return variant;
 527        return lglWeekdayVariantFromKey(cleanKey);
 528      }
 529  
 530      function lglApplySessionVariant(data, key) {
 531        const variant = lglPickSessionVariant(data, key);
 532        if (!variant) return data;
 533        const out = { ...data, "__lglSessionVariantKey": String(key || "").trim() };
 534        ["直播時間", "限定星期", "顯示場次", "僅開日期", "日期排除"].forEach(field => {
 535          if (!Object.prototype.hasOwnProperty.call(variant, field)) return;
 536          const value = variant[field];
 537          if (value === undefined || value === null || value === "") return;
 538          out[field] = value;

··· 中間省略 ···

 753      function lglFilterSessionsByWeekdays(dataRow, sessions) {
 754        const selectedWeekdays = lglSelectedWeekdays(dataRow);
 755        if (!selectedWeekdays.size) return sessions;
 756        return sessions.filter(session => selectedWeekdays.has(String(session.start.getDay())));
 757      }
 758  
 759      function lglGetDisplaySessions(dataRow, maxSessionsDisplay) {
 760        const sessions = lglCalculateSessions(dataRow).slice(0, maxSessionsDisplay);
 761        const filteredSessions = lglFilterSessionsByWeekdays(dataRow, sessions);
 762        return filteredSessions.length ? filteredSessions : sessions;
 763      }
                            
W2程式/保存畫面可確認

Console 能顯示站方自稱的「真人」與「預錄」連結分支

六個等待頁均接受 lglAdmin('huber') 開啟前端診斷。huber 是六指淵對外使用的名字,也是此診斷函式要求傳入的值。它只在本機 localStorage 記錄顯示開關,不是伺服器管理權限。程式優先使用「最新連結」,空白時改用星期別或預設預錄連結;診斷文字直接使用「最新連結(真人)」「預錄直播連結(預設)」等標示。

11/2 以 d=a 執行的六頁診斷中,「最新連結」均為空,採用來源均標示「預錄直播連結(預設)」。以下新增的 d=b Console 畫面顯示 2026/11/3 19:30 場次也採用預設預錄連結。取得的 URL 是 /webinar/registration/… 註冊入口,不是影片檔,也不代表免註冊即可越過所有確認頁。

原始碼證據 P10 前端診斷開關與分支輸出
 709      function lglIsAdmin() {
 710        try { return localStorage.getItem('__lgl_admin__') === '1'; } catch (e) { return false; }
 711      }
 712      window.lglAdmin = function (pass) {
 713        if (pass === false) {
 714          try { localStorage.removeItem('__lgl_admin__'); } catch (e) {}
 715          console.log('%c✗ Admin 已關閉', 'color:#ff3b30; font-weight:bold;');
 716          return;
 717        }
 718        if (pass === LGL_ADMIN_PASS) {
 719          try { localStorage.setItem('__lgl_admin__', '1'); } catch (e) {}
 720          console.log('%c✓ Admin 已啟用 — 重整頁面後會看到直播連結 debug', 'color:#30d158; font-weight:bold;');
 721        }

··· 中間省略 ···

 983        if (lglIsAdmin()) {
 984          const tw = lglTW(nextSession.start);
 985          const liveUrl = String(data["最新連結"] || "").trim();
 986          const dynamicRaw = String(data["動態直播連結"] || "").trim();
 987          const recorded = lglResolveRecordedLink(data, nextSession.start);
 988          const finalUrl = liveUrl || recorded.url;
 989          const source = liveUrl ? '最新連結(真人)' : (recorded.matched ? '每週預錄直播連結' : (recorded.url ? '預錄直播連結(預設)' : '❌ 無'));
 990          console.log('%c[Live URL Debug]', 'color:#0a84ff; font-weight:bold; font-size:13px;');
 991          console.log(`  場次日期:      ${tw.year}/${tw.month}/${tw.date} ${tw.time}`);
 992          console.log(`  最新連結:      ${liveUrl || '(空)'}`);
 993          console.log(`  動態連結原始:  ${dynamicRaw || '(空)'}`);
 994          console.log(`  預錄直播連結:  ${recorded.url || '(空)'}`);
 995          if (recorded.note) console.log(`  後台備註:      ${recorded.note}`);
 996          console.log(`%c  ✓ 會使用:      ${finalUrl || '(無)'}`, 'color:#30d158; font-weight:bold;');
 997          console.log(`  來源:          ${source}`);
 998        }
                            
原始碼證據 P11 實際點擊時仍採相同分支
1096          let liveUrl = String(data["最新連結"] || "").trim();
1097          let urlSource = "live";
1098          let recordedLink = null;
1099          if (!liveUrl) {
1100            const recorded = lglResolveRecordedLink(data, nextSession.start);
1101            recordedLink = recorded;
1102            liveUrl = recorded.url;
1103            urlSource = recorded.source;
1104          }
1105          if (!liveUrl) {
1106            alert("目前沒有可用的直播連結,請稍後再試或聯繫客服。");
1107            return;
1108          }
                            
W3有證據,結論有範圍

外層稱為「直播」,內部卻能分流到預錄

六個等待頁模板都含「進入直播」「直播即將開始,現在可以進入等候」等文字。進入排定時段後的「目前有一場正在直播喔」也是時鐘條件觸發,不是向攝影機或講師查詢是否在線。當次連結設定選中預錄分支,搭配下游影片與預排訊息,支持當次具錄播播放安排。

原始碼證據 P13 按排定時間顯示「正在直播」
1019  
1020        const entryOpenMinutes = lglGetEntryOpenMinutes(data);
1021        const entryCloseMinutes = lglGetEntryCloseMinutes(data);
1022        const entryCutoff = new Date(nextSession.start.getTime() + entryCloseMinutes * 60 * 1000);
1023        function lglTick() {
1024          const now = lglNow();
1025          const diff = nextSession.start - now;
1026          const isPreLive = diff <= entryOpenMinutes * 60 * 1000 && diff > 0;
1027          const isEntryOpen = now >= nextSession.start && now <= entryCutoff && now <= nextSession.end;
1028          const isCutoff = now > entryCutoff && now <= nextSession.end;
1029          document.getElementById("lgl_d").innerText = lglPad(Math.max(0, Math.floor(diff / 86400000)));
1030          document.getElementById("lgl_h").innerText = lglPad(Math.max(0, Math.floor(diff / 3600000) % 24));
1031          document.getElementById("lgl_m").innerText = lglPad(Math.max(0, Math.floor(diff / 60000) % 60));
1032          document.getElementById("lgl_s").innerText = lglPad(Math.max(0, Math.floor(diff / 1000) % 60));
1033          const hintEl = document.getElementById("lgl_openHint");
1034          const cutoffEl = document.getElementById("lgl_cutoffNotice");
1035          const formEl = document.getElementById("lgl_form");
1036          if (isTestMode || isPreLive || isEntryOpen) {
1037            formEl.style.display = "block";
1038            hintEl.style.display = "block";
1039            cutoffEl.style.display = "none";
1040            if (isEntryOpen) {
1041              hintEl.innerHTML = '<i class="fa-solid fa-circle-play"></i> 目前有一場正在直播喔,趕快進入!';
1042              hintEl.classList.add("lgl_open-hint--live");
1043            } else {
1044              hintEl.innerHTML = '<i class="fa-solid fa-video"></i> 直播即將開始,現在可以進入等候!';
1045              hintEl.classList.remove("lgl_open-hint--live");
1046            }
1047          } else if (isCutoff) {
1048            formEl.style.display = "none"; hintEl.style.display = "none"; cutoffEl.style.display = "block";
                            
03

註冊頁與 thankyou

動態場次、電話檢查與轉址資料,發生在這一層。

R1程式/保存畫面可確認

「下一場直播」含以目前時間生成的 on-demand 場次

註冊頁與外層等待頁使用不同排程。保存的註冊程式啟用 JIT:先按 15 分鐘刻度取下一個時間,再每隔 30 分鐘建立一筆,共先產生 24 筆候選場次,標記 wk_on_demand_session = true。之後合併固定排程、排序、排除封鎖時段,通常選最早的一場。

原始碼證據 P14 15 分鐘刻度+30 分鐘間隔+on-demand
  50    if (true) {
  51      let jit_date;
  52  
  53      if (`fifteen_minutes` === 'five_minutes') {
  54        jit_date = round_to_nearest_minute(new Date(), 5);
  55      } else if (`fifteen_minutes` === 'ten_minutes') {
  56        jit_date = round_to_nearest_minute(new Date(), 10);
  57      } else {
  58        jit_date = round_to_nearest_minute(new Date(), 15);
  59      }
  60  
  61      for (let i = 0; i < 24; i++) {
  62        let presentation_date = new Date(jit_date);
  63  
  64        presentation_date.wk_redirect_to = `watch_room`;
  65        presentation_date.wk_in_progress_label = ` - 進行中的直播`;
  66        presentation_date.wk_starts_in_label = ` - 剩 {{time}}`;
  67        presentation_date.wk_on_demand_session = true;
  68  
  69        presentation_dates.push(presentation_date);
  70  
  71        jit_date.setMinutes(jit_date.getMinutes() + 30);
  72      }
  73    }

··· 中間省略 ···

  78  
  79    for (let i = 0; i < webinar_dates.length; i++) {
  80      presentation_dates = presentation_dates.concat(get_presentation_date(webinar_dates[i], duration_ms));
  81    }
  82  
  83    presentation_dates.sort((a, b) => new Date(a).getTime() - new Date(b).getTime());
  84    presentation_dates = presentation_dates.filter(date => !blockout_dates.some(blocked_date => is_date_blocked(date, blocked_date)));

··· 中間省略 ···

 134        let number_of_sessions_to_show = registration_form.getAttribute('data-wk-number-of-sessions-to-show');
 135  
 136        if (!number_of_sessions_to_show || number_of_sessions_to_show === 'all' || element.options.length < parseInt(number_of_sessions_to_show)) {
 137          let clone = option.cloneNode(true);
 138  
 139          wk_reg_options.push(clone);
 140  
 141          element.add(clone);
 142        }
 143      });
 144    }
 145  
 146    let registration_timers = document.querySelectorAll('.wk_registration_timer');
 147  
 148    if (closest_date || show_instant_watch) { // session available
 149      webinar_registration_form_date_selects.forEach(function(element) {
 150        element.style.display = null;
                            
原始碼證據 P15 取下一個時間刻度
 354  function round_to_nearest_minute(date, minutes) {
 355    let ms = 1000 * 60 * minutes;
 356    return new Date(Math.ceil(date.getTime() / ms) * ms);
 357  }
 358  
 359  function get_presentation_date(webinarDate, duration) {
 360    let presentation_dates = [];
 361  
 362    let [hours, minutes] = webinarDate.time.split(':');
 363  
 364    if (hours === '12') {
 365      hours = '00';
 366    }
 367  
 368    if (webinarDate.period === 'PM') {
 369      hours = parseInt(hours, 10) + 12;
 370    }
                            
設定證據 P16 前五組註冊頁排程分析
[
  {
    "file": "adragon_wait_動態直播連結.html",
    "jit_enabled": true,
    "on_demand": true,
    "half_hour_step": true,
    "initial_sessions": 24,
    "rounds_15_minutes": true,
    "duration_minutes": "99.4"
  },
  {
    "file": "ainext_wait_動態直播連結.html",
    "jit_enabled": true,
    "on_demand": true,
    "half_hour_step": true,
    "initial_sessions": 24,
    "rounds_15_minutes": true,
    "duration_minutes": "61.65"
  },
  {
    "file": "idea_wait_動態直播連結.html",
    "jit_enabled": true,
    "on_demand": true,
    "half_hour_step": true,
    "initial_sessions": 24,
    "rounds_15_minutes": true,
    "duration_minutes": "72.86666666666666"
  },
  {
    "file": "n8n_wait_動態直播連結.html",
    "jit_enabled": true,
    "on_demand": true,
    "half_hour_step": true,
    "initial_sessions": 24,
    "rounds_15_minutes": true,
    "duration_minutes": "112.88333333333334"
  },
  {
    "file": "salesking_wait_動態直播連結.html",
    "jit_enabled": true,
    "on_demand": true,
    "half_hour_step": true,
    "initial_sessions": 24,
    "rounds_15_minutes": true,
    "duration_minutes": "73"
  }
]
                            
R2有證據,結論有範圍

手機欄位會擋短數字與連號等無效測試號碼

使用者實測回報,輸入 12345678 或連續數字等測試號碼無法通過報名。保存的前端程式也顯示多層檢查:註冊頁用國碼解析與 iti.isValidNumber() 檢查格式;外層表單要求台灣手機為 09 開頭、共 10 碼,並呼叫 /api/invalid-phones/check 檢查無效號碼。12345678 不符合前端的開頭與位數規則;連號拒絕則是使用者實測結果,因具體判斷在 API 端,保存的前端程式看不到完整規則。兩套檢查分屬不同頁面流程。這些檢查仍不是簡訊 OTP:使用者曾回報自填的格式有效號碼成功到達 thankyou 頁,表示嚴格格式驗證不等於確認號碼由填表者持有。

原始碼證據 P17 註冊頁電話格式檢查
 622    let custom_field_5 = registration_form.querySelector('.wk_registration_form_custom_field_5');
 623    let date_select = registration_form.querySelector('.wk_registration_form_date');
 624  
 625    let webinar_id = `6abe3a08fcf048cd35970ce6`;
 626  
 627    if (!webinar_id) {
 628      return;
 629    }
 630  
 631    if (!form_element.checkValidity()) {
 632      return form_element.reportValidity();
 633    }
 634  
 635    let iti = window.intlTelInputGlobals.getInstance(phone);
 636  
 637    if (phone.value && !iti.isValidNumber()) {
 638      phone.setCustomValidity('Please enter a valid phone number');
 639  
 640      return form_element.reportValidity();

··· 中間省略 ···

 660    let phone_number_country_code_value = '+' + iti.getSelectedCountryData().dialCode;
 661    let phone_number_value = iti.getNumber().replace(phone_number_country_code_value, '');
 662  
 663    let body = {
 664      firstName: first_name ? first_name.value : '',
 665      lastName: last_name ? last_name.value : '',
 666      email: email ? email.value : '',
 667      phoneNumberCountryCode: phone_number_country_code_value,
 668      phoneNumber: phone_number_value,
 669      customField1: custom_field_1 ? custom_field_1.value : '',
 670      customField2: custom_field_2 ? custom_field_2.value : '',
                            
原始碼證據 P18 外層表單檢查 09 格式並呼叫無效手機 API
2310    if (phoneVisible && !/^09\d{8}$/.test(phone)) {
2311        showInlineFieldError('xlabPhone', 'xlabPhoneError', '請填寫正確的臺灣手機號碼');
2312        firstInvalidInput = firstInvalidInput || phoneInput;
2313    }
2314    if (firstInvalidInput) {
2315        firstInvalidInput.focus({ preventScroll: true });
2316        return;
2317    }
… 中間程式略 …
2336    const invalidPhoneMessage = phoneVisible ? await getInvalidPhoneMessage(phone) : '';
2337    if (invalidPhoneMessage) {
2338        xlabSetPublicFormSubmitting(this, btn, false);
2339        showInlineFieldError('xlabPhone', 'xlabPhoneError', invalidPhoneMessage);
2340        phoneInput.focus({ preventScroll: true });
2341        return;
2342    }
… 中間程式略 …
2455    async function getInvalidPhoneMessage(phone) {
2456        try {
2457            const res = await fetch('/api/invalid-phones/check', {
2458                method: 'POST',
2459                headers: { 'Content-Type': 'application/json' },
2460                body: JSON.stringify({ phone })
2461            });
2462            if (res.status !== 422) return '';
2463            const data = await res.json().catch(() => ({}));
2464            return data && data.errors && data.errors.phone ? data.errors.phone : '此號碼無效,請重新輸入';
2465        } catch(e) {
2466            return '';
2467        }
2468    }
                            
R3程式/保存畫面可確認

註冊電話會以 phone_number 參數出現在 thankyou 與直播網址

電話號碼會出現在網址的查詢參數中。使用者提供的 AI-NEXT thankyou 連結含有 phone_number 參數(號碼值經 URL 編碼;使用者表示是測試號碼)。前端也會把國碼與手機放入 JSON,POST 到註冊端點,再依 API 回傳的 data.url 跳轉。thankyou 轉址程式只刪除 r、t、e,其餘參數會帶入 watch 網址,因此 phone_number 仍會出現在直播頁網址中。

表單電話→註冊 POST→API 回傳 thankyou URL→保留 phone_number → watch

直播頁又從 URL 讀取電話,進頁送出 start,之後每 60 秒送出 hold 到「直播觀看頁人流狀況」資料表;payload 同時包含 phone 和完整 URL。這是觀看追蹤。

原始碼證據 P19 電話在註冊 POST 本文,API 回傳含 phone_number 的 thankyou URL
 700    let phone_number_country_code_value = '+' + iti.getSelectedCountryData().dialCode;
 701    let phone_number_value = iti.getNumber().replace(phone_number_country_code_value, '');
 702  
 703    let body = {
 704      firstName: first_name ? first_name.value : '',
 705      lastName: last_name ? last_name.value : '',
 706      email: email ? email.value : '',
 707      phoneNumberCountryCode: phone_number_country_code_value,
 708      phoneNumber: phone_number_value,
 709      customField1: custom_field_1 ? custom_field_1.value : '',
 710      customField2: custom_field_2 ? custom_field_2.value : '',
 711      customField3: custom_field_3 ? custom_field_3.value : '',
 712      customField4: custom_field_4 ? custom_field_4.value : '',
 713      customField5: custom_field_5 ? custom_field_5.value : '',
 714      date: date,
 715      fullDate: date_text,
 716      timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
 717      redirect_to: redirect_to,
 718      on_demand_session: on_demand_session,
 719      referrer: document.referrer
 720    };
 721  

··· 中間省略 ···

 740  function webinarkit_post_registration(id, body) {
 741    let post_url = '/webinar/external/registration/' + id;
 742  
 743    let url_search_params = new URLSearchParams(window.location.search);
 744  
 745    let query = url_search_params.toString();
 746  
 747    if (query) {
 748      post_url = post_url + '?' + query;
 749    }
 750  
 751    fetch(post_url, {
 752      method: 'POST',
 753      headers: {
 754        'Accept': 'application/json',
 755        'Content-Type': 'application/json'
 756      },
 757      body: JSON.stringify(body)
 758    })
 759    .then(response => {
 760      return response.json();
 761    })
 762    .then(data => {
 763      if (data) {
 764        window.top.location.href = data.url;
 765      }
 766    })
 767    .catch(err => {
 768      console.log(err);
                            
原始碼證據 P20 thankyou 只刪 r/t/e,其他參數轉入 watch
 898        let url_search_params = new URLSearchParams(window.location.search);
 899        url_search_params.delete('r');
 900        url_search_params.delete('t');
 901        url_search_params.delete('e');
 902  
 903        let query = url_search_params.toString();
 904  
 905        if (query) {
 906          query = '&' + query;
 907        }
 908  
 909        if (``) {
 910          window.top.location.href = `` + `?t=` + wk_time + '&r=' + wk_registrant_id + query;
 911        } else {
 912          window.top.location.href = `/webinar/watch/` + `6adc6af93d15a12d0688e773` + `?t=` + wk_time + '&r=' + wk_registrant_id + query;
 913        }
                            
原始碼證據 P21 從 URL 讀電話並定期送出 hold
3870    function startViewerTracking() {
3871      var query = new URLSearchParams(window.location.search);
3872      var viewer = {
3873        name: cleanValue(query.get("first_name") || query.get("name")),
3874        phone: cleanValue(query.get("phone_number") || query.get("phone")),
3875        email: cleanValue(query.get("email"))
3876      };
3877  
3878      if (!viewer.name && !viewer.phone && !viewer.email) {
3879        console.warn(
3880          "[viewer-tracking] No viewer identity was found in the URL query."
3881        );
3882        return;
3883      }
3884  
3885      var endpoint =
3886        CONFIG.supabaseUrl.replace(/\/$/, "") +
3887        "/rest/v1/" +
3888        encodeURIComponent(CONFIG.trackingTable);
3889  

··· 中間省略 ···

3902          body: JSON.stringify({
3903            name: viewer.name,
3904            phone: viewer.phone,
3905            email: viewer.email,
3906            type: type,
3907            url: window.location.href
3908          })
3909        }).then(function (response) {

··· 中間省略 ···

3926      writeEvent("start");
3927      trackingTimer = window.setInterval(function () {
3928        if (isPlaybackOwner) {
3929          writeEvent("hold");
3930        }
3931      }, CONFIG.holdIntervalMs);
3932    }
                            
04

直播頁

從播放、畫面人數、預排聊天,到真實訊息的可見範圍。

L1有證據,結論有範圍

播放器將影片位置同步到場次時間

AI-NEXT 播放器載入固定 HLS 來源,並以「現在時間-場次時間」計算應播放的秒數,誤差超過一秒便把播放位置跳到該秒數。配合 on-demand 分支與預排內容,顯示它具備將既有影片包裝成定時場次播放的機制。使用者另外回報比較兩場後,講師話語與影片相同。

原始碼證據 P22 固定影片來源與場次時間同步
   1  function play_webinar() {
   2    player = videojs('video');
   3  
   4    player.src({
   5      src: 'https://vz-3f780a95-e11.b-cdn.net/014239eb-6299-43be-bf7a-e50289000742/playlist.m3u8',
   6      type: 'application/x-mpegURL'
   7    });

··· 中間省略 ···

  70  function sync_player_time() {
  71    time_since_event_start = (Date.now() - event_start_date.getTime()) / 1000;
  72  
  73    if (time_since_event_start > 0) {
  74      let sync_difference = Math.abs(player.currentTime() - time_since_event_start);
  75  
  76      console.log('sync_difference: ' + sync_difference);
  77  
  78      if (sync_difference > 1) {
  79        console.log('Time not synced, changing player currentTime')
  80  
  81        player.currentTime(time_since_event_start);
  82      }
  83    }
  84  }
                            
L2程式/保存畫面可確認

畫面在線人數由 JS 在指定範圍生成

保存的直播頁設定把人數下限、上限定為 235 與 255,並依時間、區間與亂數更新。開場另有從約 30 人爬升的流程。這條顯示路徑不以伺服器實際連線人數為輸入。

原始碼證據 P23 人數上下限及更新邏輯
   5    var CONFIG = {
   6      // ===== 在線人數規則 =====
   7      postStartRampMinutes: 5,
   8      startingCount: 30,
   9      liveMinCount: 235,
  10      liveMaxCount: 255,
  11      rampIntervalMinMs: 1200,
  12      rampIntervalMaxMs: 3200,
  13      changeIntervalMinMs: 3000,
  14      changeIntervalMaxMs: 20000,

··· 中間省略 ···

3819          } else if (difference > 0) {
3820            displayedCount += Math.min(difference, randomInt(1, 4));
3821          } else if (difference < 0) {
3822            displayedCount -= Math.min(Math.abs(difference), randomInt(1, 2));
3823          }
3824  
3825          displayedCount = clamp(
3826            displayedCount,
3827            CONFIG.startingCount - 2,
3828            CONFIG.liveMinCount
3829          );
3830        }
3831        nextDelay = randomInt(
3832          CONFIG.rampIntervalMinMs,
3833          CONFIG.rampIntervalMaxMs
3834        );
3835      } else {
3836        if (displayedCount === null) {
3837          displayedCount = randomInt(
3838            CONFIG.liveMinCount,
3839            CONFIG.liveMaxCount
3840          );
3841        } else {
3842          var direction = chooseOscillationDirection(
3843            CONFIG.liveMinCount,
3844            CONFIG.liveMaxCount
3845          );
3846          displayedCount = clamp(
3847            displayedCount + direction,
3848            CONFIG.liveMinCount,
3849            CONFIG.liveMaxCount
3850          );
3851        }
3852        nextDelay = randomInt(
3853          CONFIG.changeIntervalMinMs,
3854          CONFIG.changeIntervalMaxMs
3855        );
3856      }
3857  
3858      renderAudienceCount();
                            
L3程式/保存畫面可確認

大量聊天室內容已寫在原始碼,按影片秒數出現

預排 chatMessages 內含暱稱、文字與指定分鐘/秒數,角色同時包含「助教」及以 Guest 編號呈現的訪客。JS 用 setTimeout 到點直接呼叫顯示函式,因此不需等某位觀眾當時發訊。內容涵蓋學習反應、詢價、預約、購買與名額提醒。若觀看者把聊天室理解為即時互動,可能會把預排訊息看成當下留言;這是依顯示方式做出的判讀。下方完整列出六個保存直播室的陣列;空陣列也一併保留。

播放室保存樣本 預排則數 輸入列
ADragon 0 隱藏
SalesKing 0 隱藏
AI-NEXT 83 可見
AppIPO 1 隱藏
AI Plus/n8n 225 可見
AI First 59 可見
原始碼證據 P24 按預排時間直接加入聊天畫面
 144    for (let i = 0; i < chatMessages.length; i++) {
 145      let chat_message_display_minute = chatMessages[i].display_minute;
 146  
 147      let chat_message_display_second = chatMessages[i].display_second;
 148  
 149      if ((chat_message_display_minute * 60) + (chat_message_display_second * 1) > time_since_event_start) { // Prevent flood of chat messages on page load
 150        setTimeout(function(chatMessage) {
 151          let item = {
 152            message: chatMessage.text,
 153            id: '',
 154            username: chatMessage.username,
 155            type: 'message'
 156          };
 157  
 158          addMessageUtility(item);
 159        }, ((chat_message_display_minute * 60 * 1000) + (chat_message_display_second * 1000)) - (time_since_event_start * 1000), chatMessages[i]);
 160      }
 161    }
                            
完整陣列 1 ADragon 完整 chatMessages 陣列(0 則)
[]
完整陣列 2 SalesKing 完整 chatMessages 陣列(0 則)
[]
完整陣列 3 AI-NEXT 完整 chatMessages 陣列(83 則)
[
  {
    "username": "Guest 916",
    "text": "+1",
    "display_minute": 0,
    "display_second": 16,
    "id": "0ede5a2d-f33a-46dd-8ba9-584c13576c3e"
  },
  {
    "username": "Guest 66",
    "text": "+1",
    "display_minute": 0,
    "display_second": 18,
    "id": "9a2e0fe3-6a5c-4c12-8d98-de62e6f23742"
  },
  {
    "username": "Guest 861",
    "text": "+1",
    "display_minute": 0,
    "display_second": 22,
    "id": "17b51998-0061-4f8c-acee-30362c5caf9d"
  },
  {
    "username": "助教",
    "text": "歡迎大家在聊天室互動~~",
    "display_minute": 0,
    "display_second": 22,
    "id": "8037a8a3-2072-4a9b-841b-04ddeece00c1"
  },
  {
    "username": "Guest 654",
    "text": "+211111",
    "display_minute": 0,
    "display_second": 23,
    "id": "b24848cd-7c65-4ad6-a280-c3f44035202a"
  },
  {
    "username": "Guest 861",
    "text": "+11!!!",
    "display_minute": 0,
    "display_second": 30,
    "id": "b0a6f668-3df5-43dc-8290-0de2b39e612d"
  },
  {
    "username": "Guest 793",
    "text": "Hi Anna ~~~",
    "display_minute": 0,
    "display_second": 56,
    "id": "dcdd2605-119a-4d20-9708-147441016e12"
  },
  {
    "username": "Guest 37",
    "text": "老師好",
    "display_minute": 1,
    "display_second": 1,
    "id": "7b6bfbab-800f-465f-92d4-8b3f99a3f191"
  },
  {
    "username": "Guest 361",
    "text": "XD",
    "display_minute": 1,
    "display_second": 25,
    "id": "765298c1-16b1-4a46-8d2e-2b56488f9eb8"
  },
  {
    "username": "Guest 861",
    "text": "行政職",
    "display_minute": 2,
    "display_second": 8,
    "id": "4ebb2f75-277f-4838-a6ff-ab61a64b1a72"
  },
  {
    "username": "Guest 317",
    "text": "業務",
    "display_minute": 2,
    "display_second": 11,
    "id": "b72dd005-ee54-491e-9456-3aff08d58bae"
  },
  {
    "username": "Guest 949",
    "text": "設計ㄕ",
    "display_minute": 2,
    "display_second": 15,
    "id": "e2465abd-7ff9-4a52-8fc4-e5b0efa40b35"
  },
  {
    "username": "Guest 660",
    "text": "工程師",
    "display_minute": 2,
    "display_second": 31,
    "id": "b4ae9864-6626-4b71-8175-11b9451a9290"
  },
  {
    "username": "Guest 769",
    "text": "保險",
    "display_minute": 2,
    "display_second": 36,
    "id": "c46d1948-982c-4fd2-89ad-1d7d2781821e"
  },
  {
    "username": "Guest 798",
    "text": "A",
    "display_minute": 2,
    "display_second": 59,
    "id": "e197605d-48f9-4e6a-b78b-974e547de464"
  },
  {
    "username": "Guest 234",
    "text": "B",
    "display_minute": 3,
    "display_second": 1,
    "id": "2876bf42-0f74-439e-a294-a4bdee8a48ed"
  },
  {
    "username": "Guest 852",
    "text": "CCCCC",
    "display_minute": 3,
    "display_second": 5,
    "id": "bb8e036c-1fb8-4d9a-9dd0-71c6cd18be42"
  },
  {
    "username": "Guest 145",
    "text": "A",
    "display_minute": 3,
    "display_second": 12,
    "id": "273c6143-e7d0-4395-bc07-42a5e270bf94"
  },
  {
    "username": "Guest 89",
    "text": "A",
    "display_minute": 3,
    "display_second": 14,
    "id": "256899a1-4a0a-4b09-8ab5-1dd567bf6d45"
  },
  {
    "username": "Guest 764",
    "text": "B",
    "display_minute": 3,
    "display_second": 19,
    "id": "1e5e7563-800b-4254-8dad-e2bd961abece"
  },
  {
    "username": "Guest 822",
    "text": "A",
    "display_minute": 3,
    "display_second": 32,
    "id": "2deffc7b-83d1-473d-915a-483550aa2b77"
  },
  {
    "username": "Guest 256",
    "text": "B",
    "display_minute": 3,
    "display_second": 40,
    "id": "93fe37fc-7e78-4a8a-94ed-270e34d9567c"
  },
  {
    "username": "Guest 167",
    "text": "d",
    "display_minute": 3,
    "display_second": 55,
    "id": "e399a6ef-6fcd-4b59-ac5c-6123504f6a59"
  },
  {
    "username": "Guest 672",
    "text": "想學短影~~",
    "display_minute": 4,
    "display_second": 35,
    "id": "00c22fd3-5576-4aa9-a7f0-e5ec92a113c2"
  },
  {
    "username": "Guest 898",
    "text": "👍",
    "display_minute": 6,
    "display_second": 34,
    "id": "9cc1b173-1ef7-418e-a312-34ab6b56043b"
  },
  {
    "username": "Guest 636",
    "text": "數位遊牧😮",
    "display_minute": 7,
    "display_second": 43,
    "id": "cbe3c1f6-9f36-47ac-a01c-b847e5c91d15"
  },
  {
    "username": "Guest 310",
    "text": "還沒開始做副業",
    "display_minute": 8,
    "display_second": 25,
    "id": "1dee90ec-95b2-4c61-9f18-0aade8b5f370"
  },
  {
    "username": "Guest 249",
    "text": "2ㄍ",
    "display_minute": 8,
    "display_second": 30,
    "id": "c78d9e4b-fa99-4d3d-86fe-27930de52bd4"
  },
  {
    "username": "Guest 839",
    "text": "藍海都沒有",
    "display_minute": 9,
    "display_second": 25,
    "id": "d2ed0a70-400d-4648-aa94-7d66be6548a7"
  },
  {
    "username": "Guest 833",
    "text": "AI",
    "display_minute": 9,
    "display_second": 38,
    "id": "9c3ba1f3-0a3d-483e-8380-b5e9175b4ddb"
  },
  {
    "username": "Guest 118",
    "text": "所以是說開發門檻降低了 人人都可以",
    "display_minute": 12,
    "display_second": 53,
    "id": "b8b189f8-a85c-494d-a7b1-746c866b2bc2"
  },
  {
    "username": "Guest 688",
    "text": "+1",
    "display_minute": 14,
    "display_second": 0,
    "id": "411aea6b-bc7f-4e62-9ddf-ad91c10397b5"
  },
  {
    "username": "Guest 475",
    "text": "+1",
    "display_minute": 14,
    "display_second": 4,
    "id": "a045a4ea-b37c-4b9e-9ccb-8c232d8c7430"
  },
  {
    "username": "Guest 94",
    "text": "+111",
    "display_minute": 14,
    "display_second": 9,
    "id": "6ab95232-0dc6-42a1-b7e8-129fdf475771"
  },
  {
    "username": "Guest 20",
    "text": "+1~~~~~~~~~~~~",
    "display_minute": 14,
    "display_second": 19,
    "id": "4ebb6352-99e0-4295-8905-8af95a4ac031"
  },
  {
    "username": "Guest 399",
    "text": "+1",
    "display_minute": 14,
    "display_second": 29,
    "id": "24d33247-61af-409f-8861-fb995836768c"
  },
  {
    "username": "Guest 692",
    "text": "我是2",
    "display_minute": 16,
    "display_second": 45,
    "id": "18337c73-aed1-4fe5-9f91-a2d259f602cb"
  },
  {
    "username": "Guest 347",
    "text": "找案源比較難",
    "display_minute": 17,
    "display_second": 4,
    "id": "161dd50a-4d46-4d94-9980-b5dd6e97aa66"
  },
  {
    "username": "Guest 738",
    "text": "👍",
    "display_minute": 17,
    "display_second": 20,
    "id": "bb4184f4-d298-43c5-b4ec-8ff2bcfbe0d7"
  },
  {
    "username": "Guest 233",
    "text": "+1",
    "display_minute": 17,
    "display_second": 26,
    "id": "0b206393-171a-4db5-a300-3e7893135978"
  },
  {
    "username": "Guest 355",
    "text": "+1",
    "display_minute": 17,
    "display_second": 31,
    "id": "866d43bf-1c93-4133-bd26-c968b583d01b"
  },
  {
    "username": "Guest 286",
    "text": "不錯ㄛ~~好建議",
    "display_minute": 22,
    "display_second": 54,
    "id": "af8558e5-f670-4b19-9e33-7970b0ee7c47"
  },
  {
    "username": "Guest 277",
    "text": "血淚...><",
    "display_minute": 24,
    "display_second": 7,
    "id": "b2662d0e-74e0-4567-9f8b-eef0f19e8e9a"
  },
  {
    "username": "Guest 685",
    "text": "之前被改到飽",
    "display_minute": 24,
    "display_second": 33,
    "id": "301f7d78-e4dc-47e0-afe1-90641d3947cf"
  },
  {
    "username": "Guest 109",
    "text": "+1",
    "display_minute": 30,
    "display_second": 3,
    "id": "a7fc9a80-2cca-41e6-a793-86a4409747fd"
  },
  {
    "username": "Guest 931",
    "text": "+1",
    "display_minute": 30,
    "display_second": 7,
    "id": "d942a8be-da46-4f27-b03a-a936e6da655f"
  },
  {
    "username": "Guest 331",
    "text": "看起來還真實用噎",
    "display_minute": 33,
    "display_second": 22,
    "id": "b49e6c61-5ac8-4866-9f91-ad65b1dcdec9"
  },
  {
    "username": "Guest 712",
    "text": "cool",
    "display_minute": 34,
    "display_second": 33,
    "id": "31defdc4-5b6e-44cf-9d46-f7381cb7285b"
  },
  {
    "username": "Guest 698",
    "text": "哇年齡層很廣~",
    "display_minute": 35,
    "display_second": 48,
    "id": "af3fd7c4-5537-44b4-a76f-f43e6002ff66"
  },
  {
    "username": "Guest 632",
    "text": "以我目前的實力來說很難..",
    "display_minute": 37,
    "display_second": 7,
    "id": "8a654353-7168-4a19-bc69-aa47dcba508e"
  },
  {
    "username": "助教",
    "text": "不會的!我們這邊有各行各業的學員~都有完成品唷!",
    "display_minute": 37,
    "display_second": 45,
    "id": "9dd85b0e-0dc0-4e1b-b9b6-f6959001377c"
  },
  {
    "username": "Guest 23",
    "text": "😮",
    "display_minute": 38,
    "display_second": 18,
    "id": "51329ce8-0173-4b2f-882c-ac1fd858b6a1"
  },
  {
    "username": "Guest 760",
    "text": "A",
    "display_minute": 39,
    "display_second": 18,
    "id": "ecd93833-fbe1-400b-ab35-9b68e4ea3b47"
  },
  {
    "username": "Guest 379",
    "text": "C",
    "display_minute": 39,
    "display_second": 20,
    "id": "2124a630-1426-4069-a9ff-32fee525fffb"
  },
  {
    "username": "Guest 585",
    "text": "A@@",
    "display_minute": 39,
    "display_second": 26,
    "id": "621df304-a275-4cf9-9e6b-a0f273d5d2e1"
  },
  {
    "username": "Guest 802",
    "text": "BBB",
    "display_minute": 39,
    "display_second": 33,
    "id": "4ccc6ce4-e116-4a19-9dd3-29a6abc63f16"
  },
  {
    "username": "Guest 158",
    "text": "C",
    "display_minute": 39,
    "display_second": 35,
    "id": "47b3223c-031e-43cc-8e7d-e2dfaac36a47"
  },
  {
    "username": "Guest 497",
    "text": "A",
    "display_minute": 39,
    "display_second": 37,
    "id": "0e0fc866-109b-4a3b-b766-48f15ef68107"
  },
  {
    "username": "Guest 663",
    "text": "A",
    "display_minute": 39,
    "display_second": 43,
    "id": "acf799ef-a419-4c2e-8ce2-b91fcf8966ea"
  },
  {
    "username": "Guest 133",
    "text": "c",
    "display_minute": 39,
    "display_second": 52,
    "id": "b538fdb1-3606-4d16-a8fb-5d08c6884cbf"
  },
  {
    "username": "Guest 433",
    "text": "眼花撩亂",
    "display_minute": 41,
    "display_second": 15,
    "id": "c1c036e7-a3a5-4108-89cb-5246a9c1190b"
  },
  {
    "username": "Guest 639",
    "text": "厲害唷!",
    "display_minute": 42,
    "display_second": 24,
    "id": "eb64bd54-0dec-4263-a35a-e5d3f7c94210"
  },
  {
    "username": "Guest 502",
    "text": "2",
    "display_minute": 44,
    "display_second": 35,
    "id": "483aafe1-3b9f-4715-9c18-cd0f49d8616e"
  },
  {
    "username": "Guest 691",
    "text": "2",
    "display_minute": 44,
    "display_second": 39,
    "id": "dc99bc4e-5d68-4c0c-8871-e5d3fe853dd5"
  },
  {
    "username": "Guest 245",
    "text": "3",
    "display_minute": 44,
    "display_second": 40,
    "id": "dee66b32-71c3-4cee-9341-9491a82360cc"
  },
  {
    "username": "Guest 579",
    "text": "1",
    "display_minute": 44,
    "display_second": 41,
    "id": "d8987c23-20df-45dd-9094-bf464b5c5083"
  },
  {
    "username": "Guest 8",
    "text": "1",
    "display_minute": 44,
    "display_second": 42,
    "id": "8aaa2d21-4718-4731-b953-5e871716703b"
  },
  {
    "username": "Guest 547",
    "text": "+1",
    "display_minute": 47,
    "display_second": 31,
    "id": "40fd9369-5ba4-441d-8a12-2cddd4e23cad"
  },
  {
    "username": "Guest 458",
    "text": "+1",
    "display_minute": 47,
    "display_second": 37,
    "id": "f3a16e2d-3ec9-426c-9706-f01d255335a8"
  },
  {
    "username": "助教",
    "text": "官方LINE唷~",
    "display_minute": 49,
    "display_second": 27,
    "id": "08cba930-e293-499e-8951-ce6f517e7b88"
  },
  {
    "username": "Guest 58",
    "text": "想知道加招式的~",
    "display_minute": 51,
    "display_second": 32,
    "id": "4f2a964b-26cb-49b3-9faf-adda79930cbb"
  },
  {
    "username": "Guest 508",
    "text": "已私訊",
    "display_minute": 52,
    "display_second": 26,
    "id": "3c0179b4-063d-43b3-8742-ffa54880badf"
  },
  {
    "username": "Guest 368",
    "text": "拿到ㄌ",
    "display_minute": 52,
    "display_second": 44,
    "id": "a378084c-a951-40c6-89d3-9d88b0a62890"
  },
  {
    "username": "Guest 324",
    "text": "拿",
    "display_minute": 52,
    "display_second": 50,
    "id": "f1aa2ff5-0578-4c79-9985-c7a9fa967653"
  },
  {
    "username": "Guest 38",
    "text": "666",
    "display_minute": 52,
    "display_second": 55,
    "id": "d0cb07b1-ace3-4711-a589-1b91c53dc28a"
  },
  {
    "username": "助教",
    "text": "是在LINE唷!",
    "display_minute": 53,
    "display_second": 8,
    "id": "85689992-3db2-45e5-bfb3-cc3a06fa0b05"
  },
  {
    "username": "助教",
    "text": "第一位同學下單囉!陳O瑜",
    "display_minute": 53,
    "display_second": 26,
    "id": "ace1993d-d2d0-4c8e-a959-06e4654228c2"
  },
  {
    "username": "助教",
    "text": "感謝 張O芯",
    "display_minute": 53,
    "display_second": 46,
    "id": "19b59238-1f63-45dd-9d26-33c78ebebe95"
  },
  {
    "username": "助教",
    "text": "感謝 林O",
    "display_minute": 54,
    "display_second": 4,
    "id": "ac211209-94c5-428f-ac68-4aed3bc64a10"
  },
  {
    "username": "助教",
    "text": "同學陸續下單中!!",
    "display_minute": 54,
    "display_second": 22,
    "id": "e33a0274-f109-444c-9ba9-392af1616983"
  },
  {
    "username": "助教",
    "text": "謝謝老師~",
    "display_minute": 56,
    "display_second": 12,
    "id": "cb4d5f42-e5d0-48d5-9947-7c715a6cad91"
  },
  {
    "username": "Guest 528",
    "text": "有收穫",
    "display_minute": 56,
    "display_second": 13,
    "id": "1a553110-098f-410c-8cbd-3723d07c8363"
  },
  {
    "username": "Guest 953",
    "text": "有收穫!謝謝老師",
    "display_minute": 56,
    "display_second": 21,
    "id": "8a845c03-ba1d-4ebe-a0a0-154ef1492794"
  }
]
完整陣列 4 AppIPO 完整 chatMessages 陣列(1 則)
[
  {
    "username": "助教",
    "text": "嗨 大家記得在Line上面打上簽到,待會留言我們都在Line上面留會有AI做遊戲互動歐!",
    "display_minute": 0,
    "display_second": 0,
    "id": "1783934253172"
  }
]
完整陣列 5 AI Plus/n8n 完整 chatMessages 陣列(225 則)
[
  {
    "username": "Guest 687",
    "text": "嗨嗨",
    "display_minute": 0,
    "display_second": 4,
    "id": "a5aab8ff-7e13-4818-8f84-1249c9b351da"
  },
  {
    "username": "Guest 4",
    "text": "嗨",
    "display_minute": 5,
    "display_second": 1,
    "id": "e7b97a93-5d0c-4914-b52f-17e62733cfce"
  },
  {
    "username": "Guest 974",
    "text": "老師好!",
    "display_minute": 5,
    "display_second": 6,
    "id": "74e7fd49-7b39-4182-8fd9-199f871bdad1"
  },
  {
    "username": "Guest 135",
    "text": "好欸",
    "display_minute": 5,
    "display_second": 17,
    "id": "2911eaf7-6ac4-40a8-827e-a1fcad801cf0"
  },
  {
    "username": "Guest 34",
    "text": "房仲",
    "display_minute": 5,
    "display_second": 34,
    "id": "bf7f3c2b-f9f1-489f-90d1-aa5ba1187375"
  },
  {
    "username": "Guest 425",
    "text": "直銷",
    "display_minute": 5,
    "display_second": 38,
    "id": "9eb2496f-026d-4f46-8fbd-ea8ef793b3cf"
  },
  {
    "username": "Guest 208",
    "text": "餐飲業",
    "display_minute": 5,
    "display_second": 42,
    "id": "f9d26c72-8ccf-407e-a494-69a459bebb15"
  },
  {
    "username": "Guest 653",
    "text": "美業!",
    "display_minute": 5,
    "display_second": 49,
    "id": "f18480d7-e45d-445e-bc27-e714e24e63b7"
  },
  {
    "username": "Guest 65",
    "text": "寵物業可以嗎",
    "display_minute": 5,
    "display_second": 53,
    "id": "ac2ccc83-dccb-4f87-82bb-ac2c556e3d56"
  },
  {
    "username": "Guest 944",
    "text": "老闆",
    "display_minute": 5,
    "display_second": 56,
    "id": "84f42f89-9432-4df3-83a0-b36d0ff1cb92"
  },
  {
    "username": "Guest 181",
    "text": "員工",
    "display_minute": 5,
    "display_second": 59,
    "id": "1107181a-88ac-469c-abf5-975adf54e210"
  },
  {
    "username": "Guest 394",
    "text": "社畜",
    "display_minute": 6,
    "display_second": 1,
    "id": "749ebd62-60d0-408f-a59c-a27d15aa3505"
  },
  {
    "username": "Guest 109",
    "text": "熊貓~",
    "display_minute": 6,
    "display_second": 2,
    "id": "8a2f97de-503c-4fb4-83e9-dbd9a8ae6b35"
  },
  {
    "username": "Guest 113",
    "text": "兼職人員",
    "display_minute": 6,
    "display_second": 5,
    "id": "f317fc41-d9af-4314-b427-b9978d81c512"
  },
  {
    "username": "Guest 910",
    "text": "可憐的保險業",
    "display_minute": 6,
    "display_second": 9,
    "id": "c329749d-cfca-496f-824a-fbec7a052a23"
  },
  {
    "username": "Guest 97",
    "text": "生心靈",
    "display_minute": 6,
    "display_second": 11,
    "id": "159830dc-fa42-4dda-99ba-c30ec32d3940"
  },
  {
    "username": "Guest 324",
    "text": "行政",
    "display_minute": 6,
    "display_second": 11,
    "id": "d3b67c51-94ee-4926-ae0b-9368beb80363"
  },
  {
    "username": "Guest 695",
    "text": "在中山開酒吧",
    "display_minute": 6,
    "display_second": 15,
    "id": "1a0036e2-1388-439d-b348-cf411b82e1a6"
  },
  {
    "username": "Guest 80",
    "text": "護理師",
    "display_minute": 6,
    "display_second": 16,
    "id": "28111bbe-b5f3-4bfa-b420-6a6ea3449c2e"
  },
  {
    "username": "Guest 735",
    "text": "健身",
    "display_minute": 6,
    "display_second": 17,
    "id": "2c401cca-ad23-42f9-87cd-1fe8fc5b62a5"
  },
  {
    "username": "Guest 250",
    "text": "賣水果的",
    "display_minute": 6,
    "display_second": 18,
    "id": "989b2c50-8ff1-46fe-94b3-754fc8d9a334"
  },
  {
    "username": "Guest 765",
    "text": "老師從小看你影片長大",
    "display_minute": 6,
    "display_second": 22,
    "id": "43d9fa71-5262-465c-a4fa-be4715156990"
  },
  {
    "username": "Guest 207",
    "text": "+1",
    "display_minute": 6,
    "display_second": 26,
    "id": "066eba3b-becb-44b1-98b4-683ee57e48c2"
  },
  {
    "username": "Guest 637",
    "text": "直銷~",
    "display_minute": 6,
    "display_second": 26,
    "id": "13989a19-5ac0-43ed-950c-fabb27a42fea"
  },
  {
    "username": "Guest 643",
    "text": "+1",
    "display_minute": 6,
    "display_second": 28,
    "id": "6b6897b9-2513-442d-a082-bcc5b9cd77e1"
  },
  {
    "username": "Guest 751",
    "text": "<3",
    "display_minute": 6,
    "display_second": 32,
    "id": "92414764-c575-4ea6-8d26-076e4f08ffaf"
  },
  {
    "username": "Guest 65",
    "text": "GOGO!",
    "display_minute": 6,
    "display_second": 41,
    "id": "81f2e025-1636-4478-9a66-31a35316c01e"
  },
  {
    "username": "Guest 741",
    "text": "直接開始!",
    "display_minute": 6,
    "display_second": 47,
    "id": "542944fb-405c-4af1-84bb-33e5080e5387"
  },
  {
    "username": "Guest 806",
    "text": "好",
    "display_minute": 6,
    "display_second": 49,
    "id": "22ce6d60-8eb0-4040-ab8d-035a2056a947"
  },
  {
    "username": "Guest 306",
    "text": "$$$$$",
    "display_minute": 7,
    "display_second": 27,
    "id": "e8f6b030-d9ce-4e47-8103-21b0a580c809"
  },
  {
    "username": "Guest 448",
    "text": "$$",
    "display_minute": 8,
    "display_second": 8,
    "id": "3de6e8c5-8e32-417b-9c34-c10df9ecb4e3"
  },
  {
    "username": "Guest 814",
    "text": "想聽!",
    "display_minute": 8,
    "display_second": 37,
    "id": "b6b64be8-8299-4de1-9891-924af21112a6"
  },
  {
    "username": "Guest 256",
    "text": "很需要欸",
    "display_minute": 8,
    "display_second": 43,
    "id": "84bb2c7c-39d1-4784-9206-b8ae597aa92d"
  },
  {
    "username": "Guest 785",
    "text": "老師好!",
    "display_minute": 9,
    "display_second": 43,
    "id": "cd146e9e-c32f-4a2e-965e-3a7b90373f49"
  },
  {
    "username": "Guest 325",
    "text": "🔥",
    "display_minute": 10,
    "display_second": 1,
    "id": "0425b63a-fc6a-43e8-94c5-8d1d3fedf9ed"
  },
  {
    "username": "Guest 667",
    "text": "幾年有上過第一屆高效剪輯課 66很用心教",
    "display_minute": 10,
    "display_second": 19,
    "id": "626272b0-4aa2-4369-89b5-2dce172bcd4d"
  },
  {
    "username": "Guest 240",
    "text": "求老闆",
    "display_minute": 10,
    "display_second": 34,
    "id": "95eae66f-2f46-498f-b82c-23c03225d9cd"
  },
  {
    "username": "Guest 946",
    "text": "XD",
    "display_minute": 10,
    "display_second": 41,
    "id": "19e53410-7cd4-4daf-aead-1b6945167ff3"
  },
  {
    "username": "Guest 37",
    "text": "加班",
    "display_minute": 10,
    "display_second": 56,
    "id": "e2a90ca8-3b87-49d8-b959-8068f2f70596"
  },
  {
    "username": "Guest 748",
    "text": "無名正妹",
    "display_minute": 12,
    "display_second": 31,
    "id": "e881c4e4-96b0-4ff6-b372-2bccf9c870c4"
  },
  {
    "username": "Guest 923",
    "text": "暴露年紀",
    "display_minute": 13,
    "display_second": 12,
    "id": "e37a9071-e9b5-4c24-afae-19ce955ee806"
  },
  {
    "username": "Guest 866",
    "text": "太難了",
    "display_minute": 14,
    "display_second": 52,
    "id": "8160f1de-1c56-48f7-a475-623f3f7d14d3"
  },
  {
    "username": "Guest 505",
    "text": "😢",
    "display_minute": 15,
    "display_second": 16,
    "id": "179cc202-1f93-4d5f-942b-cf0f484541e0"
  },
  {
    "username": "Guest 873",
    "text": "😭",
    "display_minute": 15,
    "display_second": 18,
    "id": "a4c9c818-75e9-4ebb-951f-dbd4f56c4213"
  },
  {
    "username": "Guest 519",
    "text": "😢",
    "display_minute": 15,
    "display_second": 30,
    "id": "f24107f7-77c1-4024-8e7c-a3f4b54a5233"
  },
  {
    "username": "Guest 91",
    "text": "+1",
    "display_minute": 18,
    "display_second": 55,
    "id": "4978798d-ef4c-441b-9633-92f7286e964b"
  },
  {
    "username": "Guest 207",
    "text": "+1",
    "display_minute": 19,
    "display_second": 7,
    "id": "a14095ae-a88f-40f6-805b-558666e8c28a"
  },
  {
    "username": "Guest 643",
    "text": "+1",
    "display_minute": 19,
    "display_second": 12,
    "id": "ecd2a8b6-c0c0-485b-ae8b-1e6eee5fcf86"
  },
  {
    "username": "Guest 15",
    "text": "+1",
    "display_minute": 19,
    "display_second": 20,
    "id": "7874a816-e5ec-43ed-acbf-1bd8e4f07c4b"
  },
  {
    "username": "Guest 179",
    "text": "懶+1",
    "display_minute": 19,
    "display_second": 26,
    "id": "bc45df1f-147c-4c5e-a3be-d4d586befe29"
  },
  {
    "username": "Guest 127",
    "text": "懶",
    "display_minute": 19,
    "display_second": 40,
    "id": "4a9ffadb-efd1-4672-b50a-ea68d865b603"
  },
  {
    "username": "Guest 905",
    "text": "+1",
    "display_minute": 19,
    "display_second": 51,
    "id": "fb5eb823-66f6-4667-a5a4-4bddcf626413"
  },
  {
    "username": "Guest 407",
    "text": "有聽過",
    "display_minute": 20,
    "display_second": 25,
    "id": "aecb578e-fbd0-45d5-8d2d-7be880f3d2d6"
  },
  {
    "username": "Guest 282",
    "text": "我要我要",
    "display_minute": 22,
    "display_second": 51,
    "id": "6d0bd68d-9060-4bb2-9489-c82b4c39e7b8"
  },
  {
    "username": "Guest 141",
    "text": "五星XDD",
    "display_minute": 25,
    "display_second": 8,
    "id": "4d091c64-cbe1-4665-8651-280251e960fb"
  },
  {
    "username": "Guest 69",
    "text": "🤩",
    "display_minute": 26,
    "display_second": 18,
    "id": "9df87250-3d35-4935-aa1a-dc3c6475b5f3"
  },
  {
    "username": "Guest 270",
    "text": "想學~",
    "display_minute": 26,
    "display_second": 45,
    "id": "63f64c66-cdd1-4bde-9520-ffc6936e1ec2"
  },
  {
    "username": "Guest 477",
    "text": "神",
    "display_minute": 27,
    "display_second": 56,
    "id": "0f4ce1c2-e2ce-4bca-a7c2-587572415a53"
  },
  {
    "username": "Guest 495",
    "text": "我需要這個QQ",
    "display_minute": 28,
    "display_second": 42,
    "id": "8d7c87fd-c3c9-4c57-9def-1a4eebc9c80b"
  },
  {
    "username": "Guest 110",
    "text": "左下",
    "display_minute": 30,
    "display_second": 53,
    "id": "c5d464a1-fa2b-4881-ab69-60a1d4e1b751"
  },
  {
    "username": "Guest 494",
    "text": "WOW",
    "display_minute": 31,
    "display_second": 54,
    "id": "0fd64ad6-2975-46e9-9408-d7e4fb6231d8"
  },
  {
    "username": "Guest 237",
    "text": "!!!",
    "display_minute": 32,
    "display_second": 40,
    "id": "d6b713fd-8c97-4e6e-9dde-0ac25d0a9299"
  },
  {
    "username": "Guest 38",
    "text": "需要~",
    "display_minute": 32,
    "display_second": 54,
    "id": "cccc4552-f031-497b-80bc-df32ceb8d8c2"
  },
  {
    "username": "Guest 984",
    "text": "素材自動找!?",
    "display_minute": 33,
    "display_second": 21,
    "id": "fd56f9db-b6ba-466f-91cb-58801884803c"
  },
  {
    "username": "Guest 433",
    "text": "帥",
    "display_minute": 34,
    "display_second": 51,
    "id": "e83ddeff-78a4-4d11-9409-5572018a9e07"
  },
  {
    "username": "Guest 844",
    "text": "😮",
    "display_minute": 35,
    "display_second": 0,
    "id": "bbc06e8e-2649-4d3a-9e37-d5dcc40093f1"
  },
  {
    "username": "Guest 877",
    "text": "想當薪水小偷",
    "display_minute": 37,
    "display_second": 2,
    "id": "fcdcc583-d5d7-48d2-90dd-f76ce3cd650e"
  },
  {
    "username": "Guest 531",
    "text": "+1",
    "display_minute": 38,
    "display_second": 13,
    "id": "271adaee-dcbf-404a-8abc-1359dc4024e2"
  },
  {
    "username": "Guest 535",
    "text": "幫助我",
    "display_minute": 39,
    "display_second": 30,
    "id": "86ffa63e-f886-4706-841e-a8e4a6327567"
  },
  {
    "username": "Guest 496",
    "text": "我們家就是做易經的",
    "display_minute": 40,
    "display_second": 27,
    "id": "1509e268-9d72-4e34-9132-97331e694ddb"
  },
  {
    "username": "Guest 171",
    "text": "XD",
    "display_minute": 41,
    "display_second": 13,
    "id": "79be151d-c404-4d4a-8caa-5fae889ff27c"
  },
  {
    "username": "Guest 725",
    "text": "屌",
    "display_minute": 44,
    "display_second": 19,
    "id": "53146cc6-ad6c-4c6d-a437-603a10e49f93"
  },
  {
    "username": "Guest 639",
    "text": "做不出來",
    "display_minute": 44,
    "display_second": 25,
    "id": "a67f6e75-a28b-4183-92f4-e988a4e0aaa3"
  },
  {
    "username": "Guest 951",
    "text": "請問也可以不學 直接讓老師的團隊幫我們直接服務操作嗎?\n我們有大概20W預算",
    "display_minute": 44,
    "display_second": 26,
    "id": "617990e8-8816-4ab2-85be-a982cac0e9d7"
  },
  {
    "username": "Guest 769",
    "text": "做不出來",
    "display_minute": 44,
    "display_second": 35,
    "id": "cd0e31a3-5f1e-494e-a676-08b558e6f732"
  },
  {
    "username": "Guest 396",
    "text": "500",
    "display_minute": 44,
    "display_second": 35,
    "id": "9f90f3f8-2ff3-429a-bf77-8652b88f93c8"
  },
  {
    "username": "Guest 525",
    "text": "做不出來",
    "display_minute": 44,
    "display_second": 41,
    "id": "f340f96d-e9ff-4d50-89aa-54dfd311df20"
  },
  {
    "username": "Guest 4",
    "text": "1200",
    "display_minute": 44,
    "display_second": 41,
    "id": "c1d8706d-8c66-454b-a3c4-a70ad97803aa"
  },
  {
    "username": "Guest 880",
    "text": "難",
    "display_minute": 44,
    "display_second": 53,
    "id": "209c2bab-5ad6-4c48-9df3-7e16a4f1fe92"
  },
  {
    "username": "Guest 954",
    "text": "600",
    "display_minute": 44,
    "display_second": 54,
    "id": "3f87cadb-44af-4a9e-be99-61b59aee4a24"
  },
  {
    "username": "Guest 63",
    "text": "250",
    "display_minute": 45,
    "display_second": 0,
    "id": "8d52d71a-945d-4afb-ad07-39971309cdd3"
  },
  {
    "username": "Guest 795",
    "text": "+1",
    "display_minute": 45,
    "display_second": 7,
    "id": "4f5dd8e9-4264-48cc-b301-960b1df2e8d1"
  },
  {
    "username": "Guest 689",
    "text": "3XX",
    "display_minute": 45,
    "display_second": 11,
    "id": "0b20e56e-0184-49f6-9d60-75a11a01c3a2"
  },
  {
    "username": "Guest 93",
    "text": "+1",
    "display_minute": 45,
    "display_second": 12,
    "id": "2dee7686-44da-42d1-953a-93330ffc736a"
  },
  {
    "username": "Guest 781",
    "text": "+1",
    "display_minute": 45,
    "display_second": 14,
    "id": "91525d05-710f-438c-8ade-d11b942f4711"
  },
  {
    "username": "Guest 1",
    "text": "+1",
    "display_minute": 45,
    "display_second": 17,
    "id": "6c3a008f-f70e-48b4-ba0b-70eda5699471"
  },
  {
    "username": "Guest 199",
    "text": "800",
    "display_minute": 45,
    "display_second": 27,
    "id": "4f836150-c3c8-415a-9682-d308302e4a60"
  },
  {
    "username": "Guest 36",
    "text": "百萬",
    "display_minute": 45,
    "display_second": 47,
    "id": "0e0365b6-47c8-4807-b532-058cb17ecaf7"
  },
  {
    "username": "Guest 923",
    "text": "250",
    "display_minute": 45,
    "display_second": 59,
    "id": "3ae6d015-ff81-440d-93e7-0198f67ea1ca"
  },
  {
    "username": "Guest 524",
    "text": "之前找網紅超貴...",
    "display_minute": 46,
    "display_second": 15,
    "id": "25448579-9843-42e9-b518-a0e757ed49a2"
  },
  {
    "username": "Guest 748",
    "text": "找素人要幾萬吧",
    "display_minute": 46,
    "display_second": 16,
    "id": "18d3fec9-fa66-4130-8550-d42691d28c81"
  },
  {
    "username": "Guest 36",
    "text": "台灣口音 需要!",
    "display_minute": 46,
    "display_second": 47,
    "id": "9647034f-c45c-4aea-9464-8bcb5b4146f7"
  },
  {
    "username": "Guest 208",
    "text": "!",
    "display_minute": 46,
    "display_second": 58,
    "id": "05d2183c-1092-46b8-979f-6c78a3f47495"
  },
  {
    "username": "Guest 495",
    "text": "好便宜",
    "display_minute": 47,
    "display_second": 4,
    "id": "05643a64-6a5a-4e03-9827-692cdaa442c1"
  },
  {
    "username": "Guest 161",
    "text": "🤯",
    "display_minute": 47,
    "display_second": 14,
    "id": "ed5e58c6-0bc6-4294-8082-1a83040db5b8"
  },
  {
    "username": "Guest 96",
    "text": "好心動",
    "display_minute": 47,
    "display_second": 25,
    "id": "b4d6f005-8921-4feb-9ae6-4100a601de82"
  },
  {
    "username": "Guest 322",
    "text": "怎麼學",
    "display_minute": 47,
    "display_second": 33,
    "id": "ae5e3ec3-1add-47bb-883c-ea66af4e249c"
  },
  {
    "username": "Guest 61",
    "text": "數位垃圾 哈哈",
    "display_minute": 48,
    "display_second": 51,
    "id": "3ae236c6-e5a5-4bef-8436-562e2b46bf38"
  },
  {
    "username": "Guest 198",
    "text": "偶像",
    "display_minute": 49,
    "display_second": 43,
    "id": "753f4f21-9d1c-4422-85e0-b7f659db0e7b"
  },
  {
    "username": "Guest 563",
    "text": "一次性",
    "display_minute": 50,
    "display_second": 6,
    "id": "ac14db22-551d-48b1-9b19-40b352765775"
  },
  {
    "username": "Guest 157",
    "text": "左",
    "display_minute": 50,
    "display_second": 10,
    "id": "ec859996-9a45-45bd-ba37-39cdbe0cea2d"
  },
  {
    "username": "Guest 154",
    "text": "WOWW",
    "display_minute": 51,
    "display_second": 59,
    "id": "d16525fa-3178-478f-ab84-5fd169b9cde8"
  },
  {
    "username": "助教",
    "text": "幫大家截了剛剛那頁~ https://ad360-assets.hipro.cc/ad-creative-flow/asset-library/file/2026-08/d8397d66-5286-4113-8992-b6426a5d257c-%E6%88%AA%E5%9C%96-2026-08-07-%E6%99%9A%E4%B8%8A7.19.39.jpg",
    "display_minute": 52,
    "display_second": 21,
    "id": "1ccf1703-e907-4940-9ead-8f2527179ff6"
  },
  {
    "username": "Guest 681",
    "text": "想要自動做圖片做影片的!",
    "display_minute": 53,
    "display_second": 48,
    "id": "f9ef670c-5b09-417e-b79f-51aa55232ca7"
  },
  {
    "username": "Guest 333",
    "text": "心動",
    "display_minute": 57,
    "display_second": 8,
    "id": "d9d9156e-5db6-4e9e-a8d9-9ba6ec3462ef"
  },
  {
    "username": "Guest 827",
    "text": "之前我們老闆花了快 30 萬做 CRM 自動導入系統 結果 bug 一堆 找新的工程師來就整個重做 真的就要重花甚至比 40 萬更多的錢 白白花了很多冤枉錢...",
    "display_minute": 58,
    "display_second": 27,
    "id": "54b22baf-5212-4d25-84b5-1a6d81040e9f"
  },
  {
    "username": "Guest 935",
    "text": "好",
    "display_minute": 61,
    "display_second": 3,
    "id": "b8c63de1-b6a0-4605-8ef8-ebd85f35b5ac"
  },
  {
    "username": "Guest 741",
    "text": "可是之前請AI想出來的笑話都很糟 老師怎麼解決",
    "display_minute": 62,
    "display_second": 57,
    "id": "6652f95b-c928-4964-a9be-d5c0bc2225bc"
  },
  {
    "username": "Guest 214",
    "text": "+1",
    "display_minute": 64,
    "display_second": 19,
    "id": "ac2b1379-4e1e-43d1-8f4d-93ef2e80a1f9"
  },
  {
    "username": "Guest 191",
    "text": "+1",
    "display_minute": 64,
    "display_second": 22,
    "id": "4eb851b5-b1b1-48bb-9813-5b58444e7b67"
  },
  {
    "username": "Guest 178",
    "text": "+1",
    "display_minute": 64,
    "display_second": 28,
    "id": "e3a2afaf-58f8-41a2-9e55-49556ffe9825"
  },
  {
    "username": "Guest 172",
    "text": "+1",
    "display_minute": 64,
    "display_second": 31,
    "id": "26f8a010-fa58-4841-9952-8c60ebf5fa40"
  },
  {
    "username": "Guest 986",
    "text": "+1",
    "display_minute": 64,
    "display_second": 34,
    "id": "dc80330f-d82d-4b39-a9a5-87d5ffbd9414"
  },
  {
    "username": "Guest 422",
    "text": "+1",
    "display_minute": 64,
    "display_second": 36,
    "id": "d2952830-3419-4090-bbcf-5a4c5f6c4a4f"
  },
  {
    "username": "Guest 589",
    "text": "+1",
    "display_minute": 64,
    "display_second": 38,
    "id": "957511ea-9212-4e8c-8c36-4718927caf13"
  },
  {
    "username": "Guest 340",
    "text": "+1",
    "display_minute": 64,
    "display_second": 40,
    "id": "1715f027-c8b7-4168-a795-a8ebdba322c6"
  },
  {
    "username": "Guest 91",
    "text": "+2",
    "display_minute": 64,
    "display_second": 42,
    "id": "98d0c524-3af4-429e-b29f-488093b651ca"
  },
  {
    "username": "Guest 704",
    "text": "+1",
    "display_minute": 64,
    "display_second": 46,
    "id": "d7542b0c-59a4-4cea-898b-798890b34929"
  },
  {
    "username": "Guest 270",
    "text": "+1",
    "display_minute": 64,
    "display_second": 49,
    "id": "3d9ea079-5e02-4442-bd35-25b6e70f70b5"
  },
  {
    "username": "Guest 924",
    "text": "+1",
    "display_minute": 64,
    "display_second": 52,
    "id": "d2f3e715-90d2-44e7-aaaf-052ef3175427"
  },
  {
    "username": "Guest 27",
    "text": "+33",
    "display_minute": 64,
    "display_second": 57,
    "id": "9873e961-0bea-477c-8e10-a92138e40f57"
  },
  {
    "username": "Guest 110",
    "text": "+1",
    "display_minute": 65,
    "display_second": 0,
    "id": "ac164dc9-c0e9-4f55-a9ad-698c98bc1da0"
  },
  {
    "username": "Guest 513",
    "text": "+1",
    "display_minute": 65,
    "display_second": 3,
    "id": "b81c352a-ebc9-40ea-bf76-a056d408cc4d"
  },
  {
    "username": "Guest 672",
    "text": "+1",
    "display_minute": 65,
    "display_second": 5,
    "id": "a63b4ee0-e7d8-4cca-adbe-a925c863eb5e"
  },
  {
    "username": "Guest 545",
    "text": "+1",
    "display_minute": 65,
    "display_second": 7,
    "id": "7c963289-6bff-4fcf-af16-2ec188c0a7f8"
  },
  {
    "username": "Guest 371",
    "text": "+1",
    "display_minute": 65,
    "display_second": 10,
    "id": "be1c89aa-db0c-4d51-99b8-17899e810b0d"
  },
  {
    "username": "Guest 908",
    "text": "+1",
    "display_minute": 65,
    "display_second": 13,
    "id": "aa319dcd-a352-4ead-ba81-95ce4a1ff65a"
  },
  {
    "username": "Guest 597",
    "text": "+1",
    "display_minute": 65,
    "display_second": 16,
    "id": "3c769bd1-7f6c-4cb9-95cb-1d2da40073be"
  },
  {
    "username": "Guest 448",
    "text": "1",
    "display_minute": 65,
    "display_second": 29,
    "id": "daaa8bec-a30e-4151-bc97-410464405426"
  },
  {
    "username": "Guest 342",
    "text": "+1",
    "display_minute": 65,
    "display_second": 35,
    "id": "1cc144c2-02bc-4c95-afe2-635f6934c7af"
  },
  {
    "username": "Guest 90",
    "text": "...",
    "display_minute": 66,
    "display_second": 8,
    "id": "697617ce-2e3c-4add-9a42-ef74015712a8"
  },
  {
    "username": "Guest 727",
    "text": "❤️",
    "display_minute": 69,
    "display_second": 53,
    "id": "25be7ef5-1a17-4446-bbed-d2f2292388f5"
  },
  {
    "username": "Guest 956",
    "text": "❤️",
    "display_minute": 69,
    "display_second": 57,
    "id": "a539eca5-80dd-4521-9a25-3f27b05d6232"
  },
  {
    "username": "Guest 488",
    "text": "❤️",
    "display_minute": 70,
    "display_second": 2,
    "id": "19e01093-79fd-49d4-9f88-b7160463d2d5"
  },
  {
    "username": "Guest 371",
    "text": "🎉",
    "display_minute": 70,
    "display_second": 6,
    "id": "dceb7d14-922f-4f60-95f7-cda27b188e3c"
  },
  {
    "username": "Guest 500",
    "text": "❤️",
    "display_minute": 70,
    "display_second": 11,
    "id": "0c2efdab-1503-4d3f-9e82-4e7af9ddbd25"
  },
  {
    "username": "Guest 237",
    "text": "❤️❤️❤️❤️❤️",
    "display_minute": 70,
    "display_second": 21,
    "id": "8a93c779-df99-4913-bb96-531ee5fcea97"
  },
  {
    "username": "Guest 200",
    "text": "❤️",
    "display_minute": 70,
    "display_second": 24,
    "id": "20907dec-e485-4f68-bb5d-fc59f2a0649c"
  },
  {
    "username": "Guest 633",
    "text": "❤️",
    "display_minute": 70,
    "display_second": 26,
    "id": "6b74666f-a354-4dcd-a90e-84c720054392"
  },
  {
    "username": "Guest 465",
    "text": "❤️",
    "display_minute": 70,
    "display_second": 36,
    "id": "75cb136e-0f98-478e-b8af-ea2b023dd44f"
  },
  {
    "username": "Guest 721",
    "text": "❤️",
    "display_minute": 70,
    "display_second": 40,
    "id": "6a93989d-477c-4623-81f1-830cfd0ae1a2"
  },
  {
    "username": "Guest 54",
    "text": "居然可以這樣用",
    "display_minute": 72,
    "display_second": 17,
    "id": "78a36814-5676-4ebf-86e4-e9e6e9b18ac8"
  },
  {
    "username": "Guest 805",
    "text": "好方便",
    "display_minute": 72,
    "display_second": 26,
    "id": "a4c45c87-505f-4b4c-a8a6-eb3ab5cff60d"
  },
  {
    "username": "Guest 360",
    "text": "蘇胡~",
    "display_minute": 72,
    "display_second": 50,
    "id": "d10d8ff1-e24b-4cad-8525-4525b131c7ef"
  },
  {
    "username": "Guest 226",
    "text": "兇",
    "display_minute": 74,
    "display_second": 58,
    "id": "096c3862-ce75-47c2-b7c5-d1aed8c7e7de"
  },
  {
    "username": "Guest 267",
    "text": "好好玩",
    "display_minute": 75,
    "display_second": 18,
    "id": "65f0fbfa-5ba4-4855-b13a-227ac3b0c829"
  },
  {
    "username": "Guest 719",
    "text": "經典笑話XD",
    "display_minute": 78,
    "display_second": 26,
    "id": "b6b09a7b-72da-4e4b-bf32-06064e04b2a7"
  },
  {
    "username": "Guest 908",
    "text": "很台灣味啊",
    "display_minute": 78,
    "display_second": 41,
    "id": "faa14150-4a65-4ffd-ae67-0f27354bb394"
  },
  {
    "username": "Guest 136",
    "text": "喜歡 Enjoy 哈哈",
    "display_minute": 78,
    "display_second": 58,
    "id": "dee23d01-31e7-4aa8-acb5-f8e471cf3f7d"
  },
  {
    "username": "Guest 743",
    "text": "好ㄔ",
    "display_minute": 81,
    "display_second": 33,
    "id": "e3d3b019-ec0b-4209-a45c-43ee98ed1f53"
  },
  {
    "username": "Guest 744",
    "text": "好強",
    "display_minute": 82,
    "display_second": 38,
    "id": "f887a462-2296-4afd-8249-f148d6ac1288"
  },
  {
    "username": "Guest 31",
    "text": "厲害!",
    "display_minute": 82,
    "display_second": 43,
    "id": "669df166-4114-4913-8e8a-707b26f2c2a2"
  },
  {
    "username": "Guest 526",
    "text": "👏",
    "display_minute": 82,
    "display_second": 59,
    "id": "530beb7d-0682-4d3b-aaf2-4871d19cd230"
  },
  {
    "username": "Guest 186",
    "text": "老師我待會有事 可以先問Line小編 怎麼報名嗎",
    "display_minute": 84,
    "display_second": 47,
    "id": "2b208c43-8d64-4f98-85a4-b77a8c9a9f1f"
  },
  {
    "username": "Guest 489",
    "text": "❤️",
    "display_minute": 84,
    "display_second": 54,
    "id": "e40afb46-652a-43c9-8d30-36dca09deb9d"
  },
  {
    "username": "Guest 96",
    "text": "厲害!",
    "display_minute": 84,
    "display_second": 55,
    "id": "8bdaabcb-e069-4e3d-87fd-1dde819d9668"
  },
  {
    "username": "Guest 358",
    "text": "❤️❤️",
    "display_minute": 85,
    "display_second": 3,
    "id": "5759b446-4f63-47e0-a73a-10f931675f65"
  },
  {
    "username": "Guest 425",
    "text": "屌",
    "display_minute": 85,
    "display_second": 5,
    "id": "3d5e1821-0477-45b8-89be-6a65e4452f05"
  },
  {
    "username": "Guest 509",
    "text": "❤️",
    "display_minute": 85,
    "display_second": 7,
    "id": "15972c25-a327-40eb-9463-f402b9ea488c"
  },
  {
    "username": "Guest 76",
    "text": "❤️",
    "display_minute": 85,
    "display_second": 10,
    "id": "4c9629ff-e870-483b-820b-adcc56ec7552"
  },
  {
    "username": "Guest 912",
    "text": "屌",
    "display_minute": 85,
    "display_second": 12,
    "id": "2035aca3-93d0-4500-8726-7dda53957990"
  },
  {
    "username": "Guest 790",
    "text": "❤️",
    "display_minute": 85,
    "display_second": 17,
    "id": "24840cde-5203-4405-a143-182eb6e82ea4"
  },
  {
    "username": "Guest 329",
    "text": "❤️",
    "display_minute": 85,
    "display_second": 20,
    "id": "ddb8653e-9423-4ded-a147-236e84aed97c"
  },
  {
    "username": "Guest 722",
    "text": "屌XD",
    "display_minute": 85,
    "display_second": 20,
    "id": "21b54cbb-220f-424c-ba65-1f477aae618a"
  },
  {
    "username": "Guest 944",
    "text": "❤️",
    "display_minute": 85,
    "display_second": 25,
    "id": "94ab12f6-5e99-4ff1-a53e-2c911e580475"
  },
  {
    "username": "Guest 656",
    "text": "超級厲害",
    "display_minute": 85,
    "display_second": 32,
    "id": "f081d32b-aaad-4af3-9d0a-a7bf1b561905"
  },
  {
    "username": "Guest 923",
    "text": "❤️❤️❤️❤️❤️❤️❤️❤️",
    "display_minute": 85,
    "display_second": 46,
    "id": "a995f6a9-f209-4b84-a7df-053f08625cc7"
  },
  {
    "username": "Guest 123",
    "text": "屌",
    "display_minute": 86,
    "display_second": 2,
    "id": "32af024a-49bd-4969-8b9c-e7d84216752b"
  },
  {
    "username": "Guest 372",
    "text": "屌",
    "display_minute": 86,
    "display_second": 22,
    "id": "4964d4f3-8c2f-4d86-a870-f4be83db6afe"
  },
  {
    "username": "Guest 252",
    "text": "❤️",
    "display_minute": 87,
    "display_second": 43,
    "id": "ba372b62-b632-4506-965b-2604bb357627"
  },
  {
    "username": "Guest 649",
    "text": "媒體",
    "display_minute": 89,
    "display_second": 29,
    "id": "d64fbf88-6cfd-4a13-902a-efbdc5645c70"
  },
  {
    "username": "Guest 62",
    "text": "怎麼報名",
    "display_minute": 89,
    "display_second": 53,
    "id": "846b96ed-c84a-4bfa-8d6d-51d23151bbae"
  },
  {
    "username": "Guest 243",
    "text": "是線上課還是實體課",
    "display_minute": 90,
    "display_second": 24,
    "id": "9516d7e2-4422-4a9e-b30d-94021b0429e7"
  },
  {
    "username": "Guest 453",
    "text": "用心推+1",
    "display_minute": 91,
    "display_second": 27,
    "id": "7c460a42-6f80-499c-b92e-3752a652c8e7"
  },
  {
    "username": "Guest 886",
    "text": "+1",
    "display_minute": 93,
    "display_second": 16,
    "id": "9ab8a6c2-16b1-4335-bf1e-d35d5d8e3c3e"
  },
  {
    "username": "Guest 175",
    "text": "+1",
    "display_minute": 93,
    "display_second": 20,
    "id": "c5cda5c5-c77a-43f3-b5a5-e962b9f668bb"
  },
  {
    "username": "Guest 315",
    "text": "+1",
    "display_minute": 93,
    "display_second": 24,
    "id": "7cde057c-1a40-485e-9702-34deb5a8804f"
  },
  {
    "username": "Guest 328",
    "text": "+1",
    "display_minute": 93,
    "display_second": 26,
    "id": "7fc60659-412a-48c7-aadf-f0c99346fe60"
  },
  {
    "username": "Guest 667",
    "text": "+1",
    "display_minute": 93,
    "display_second": 27,
    "id": "fe997586-4c1c-45e4-aa32-04a397d51255"
  },
  {
    "username": "Guest 557",
    "text": "+1",
    "display_minute": 93,
    "display_second": 30,
    "id": "56828fae-161b-4681-aad0-a986d1199bfd"
  },
  {
    "username": "Guest 312",
    "text": "+1",
    "display_minute": 93,
    "display_second": 32,
    "id": "a86bf613-7dde-4c8b-82ea-ca02caca5e1f"
  },
  {
    "username": "Guest 520",
    "text": "+1",
    "display_minute": 93,
    "display_second": 33,
    "id": "138e6d33-9d76-4cfb-a581-f08764fc4dc2"
  },
  {
    "username": "Guest 691",
    "text": "+1",
    "display_minute": 93,
    "display_second": 36,
    "id": "d7324d0b-e711-4043-9e0a-33eca1bda12b"
  },
  {
    "username": "Guest 359",
    "text": "+1+1",
    "display_minute": 93,
    "display_second": 41,
    "id": "9f8b26bc-d2d9-4d2c-9813-e32d875ec4b3"
  },
  {
    "username": "Guest 974",
    "text": "+111",
    "display_minute": 93,
    "display_second": 45,
    "id": "e57a422c-3ab9-4790-bd0d-39836ca3d9c9"
  },
  {
    "username": "Guest 565",
    "text": "+1",
    "display_minute": 93,
    "display_second": 48,
    "id": "9c0f2d13-c06f-42c6-b2fd-40454a4f73b0"
  },
  {
    "username": "Guest 769",
    "text": "+100",
    "display_minute": 93,
    "display_second": 57,
    "id": "97fceaa6-8dd7-4caa-a32d-022713a2053f"
  },
  {
    "username": "Guest 667",
    "text": "+1",
    "display_minute": 93,
    "display_second": 58,
    "id": "3f59b488-2faa-45ed-a08c-13a3b748c12f"
  },
  {
    "username": "Guest 621",
    "text": "+1",
    "display_minute": 94,
    "display_second": 0,
    "id": "f942a638-d56d-4453-856c-cd6d40591452"
  },
  {
    "username": "Guest 29",
    "text": "+1",
    "display_minute": 94,
    "display_second": 1,
    "id": "82b0e726-2e5f-4a15-b103-cf889e0a52bb"
  },
  {
    "username": "Guest 341",
    "text": "+1",
    "display_minute": 94,
    "display_second": 5,
    "id": "44d45c9d-a6ce-4b0b-bf91-582f78eac086"
  },
  {
    "username": "Guest 991",
    "text": "+1",
    "display_minute": 94,
    "display_second": 6,
    "id": "55ada0c3-8318-40df-87b3-ea60e4beb654"
  },
  {
    "username": "Guest 141",
    "text": "+1",
    "display_minute": 94,
    "display_second": 10,
    "id": "cfc44281-57dd-4385-8bf5-06b605c4bc6d"
  },
  {
    "username": "Guest 353",
    "text": "+1",
    "display_minute": 94,
    "display_second": 11,
    "id": "454b8917-027f-48b9-9c0b-06e3d2566818"
  },
  {
    "username": "Guest 979",
    "text": "+1",
    "display_minute": 94,
    "display_second": 13,
    "id": "9578dfa5-06ba-4d67-8f8d-97d82ffbe42b"
  },
  {
    "username": "Guest 412",
    "text": "+1",
    "display_minute": 94,
    "display_second": 15,
    "id": "93518b00-d8e5-4724-b21c-776a99779286"
  },
  {
    "username": "Guest 990",
    "text": "+1",
    "display_minute": 94,
    "display_second": 16,
    "id": "727aae59-1f6f-4900-94c0-5f1e16067c19"
  },
  {
    "username": "Guest 796",
    "text": "+1",
    "display_minute": 94,
    "display_second": 23,
    "id": "ec0d6735-4c2f-43b8-9080-32ae60a4210e"
  },
  {
    "username": "Guest 636",
    "text": "我信用卡準備好了",
    "display_minute": 96,
    "display_second": 26,
    "id": "9e112c31-5b3f-4057-bb23-bc92e676fcc6"
  },
  {
    "username": "Guest 408",
    "text": "喜歡",
    "display_minute": 97,
    "display_second": 4,
    "id": "7c1d1981-d8c4-4707-a457-e209f6e4cf3b"
  },
  {
    "username": "Guest 390",
    "text": "零經驗+1",
    "display_minute": 97,
    "display_second": 46,
    "id": "adafa019-963a-48b4-8c3d-d5e1078338db"
  },
  {
    "username": "Guest 1",
    "text": "有優惠嗎",
    "display_minute": 98,
    "display_second": 40,
    "id": "4b71a3fb-defb-4f95-9ec1-d7cb27638f3c"
  },
  {
    "username": "Guest 167",
    "text": "怎麼下單",
    "display_minute": 99,
    "display_second": 31,
    "id": "e4f0357c-2946-4630-8f78-4ed47ee9bc14"
  },
  {
    "username": "Guest 405",
    "text": "老師我有私訊Line 要打統編",
    "display_minute": 100,
    "display_second": 41,
    "id": "1d79d3dd-1f29-400d-931f-be254622722a"
  },
  {
    "username": "Guest 170",
    "text": "好",
    "display_minute": 101,
    "display_second": 24,
    "id": "b19548f2-587f-4c46-aa4e-f1816c282549"
  },
  {
    "username": "Guest 773",
    "text": "BB384",
    "display_minute": 102,
    "display_second": 24,
    "id": "0bf890ab-1823-4e87-b929-e0f92787a18d"
  },
  {
    "username": "Guest 296",
    "text": "BB384",
    "display_minute": 102,
    "display_second": 28,
    "id": "0b60d2d1-4d08-43c2-a0fd-f1a657dd9d18"
  },
  {
    "username": "Guest 903",
    "text": "BB384",
    "display_minute": 102,
    "display_second": 39,
    "id": "5086c975-6bc3-4d9e-8264-bb7d9205cfb6"
  },
  {
    "username": "助教",
    "text": "掃 Qrcode 或點這個連結都可以歐!\nhttps://all.99agent.app/q/p/BAAAAS",
    "display_minute": 102,
    "display_second": 41,
    "id": "15e4525c-bf11-406a-ba09-d79c0d11e560"
  },
  {
    "username": "Guest 141",
    "text": "我下單了",
    "display_minute": 104,
    "display_second": 55,
    "id": "cf9690b4-cd07-439f-86d1-fe3b8bb5d6c0"
  },
  {
    "username": "Guest 112",
    "text": "國泰可以分幾期",
    "display_minute": 105,
    "display_second": 23,
    "id": "6e1fb46d-b625-4fcb-9f8f-96783f124d39"
  },
  {
    "username": "助教",
    "text": "同學可以在Line留言 我幫大家處理歐",
    "display_minute": 106,
    "display_second": 36,
    "id": "3f5f11f5-f657-4b62-99cb-3b24a0c14a0a"
  },
  {
    "username": "Guest 540",
    "text": "已下單",
    "display_minute": 107,
    "display_second": 6,
    "id": "9ca8070a-306e-4e1a-ba67-f6245bce88b4"
  },
  {
    "username": "Guest 809",
    "text": "家裡網路慢 好塞QQ",
    "display_minute": 108,
    "display_second": 56,
    "id": "b008d2e1-22a4-4abd-8c78-303fab4e57c2"
  },
  {
    "username": "Guest 480",
    "text": "搶到了!",
    "display_minute": 109,
    "display_second": 14,
    "id": "502949d1-d157-4b51-a6da-1b93ded2ac97"
  },
  {
    "username": "Guest 665",
    "text": "+1",
    "display_minute": 109,
    "display_second": 49,
    "id": "95064d6d-c075-48cb-97af-9243a1251aff"
  },
  {
    "username": "Guest 149",
    "text": "期待上課^^",
    "display_minute": 110,
    "display_second": 18,
    "id": "d5defae6-b665-426a-9dfb-7614ca82a14e"
  },
  {
    "username": "Guest 684",
    "text": "預約",
    "display_minute": 110,
    "display_second": 36,
    "id": "24a26baa-722f-461e-9ff6-c4abb042500d"
  },
  {
    "username": "Guest 582",
    "text": "預約",
    "display_minute": 110,
    "display_second": 51,
    "id": "ca548fdc-17dd-4a08-8af2-e98069b3db44"
  },
  {
    "username": "助教",
    "text": "同學在Line上面打預約歐",
    "display_minute": 111,
    "display_second": 11,
    "id": "e7d5f043-6a1c-4f90-8b7b-c19339e27b92"
  },
  {
    "username": "Guest 846",
    "text": "已私 想問無卡的問題",
    "display_minute": 112,
    "display_second": 8,
    "id": "2694d4d0-c167-44eb-a43f-8ad0266e2de0"
  },
  {
    "username": "Guest 745",
    "text": "已下單!",
    "display_minute": 112,
    "display_second": 27,
    "id": "89296464-7453-48ba-813d-83dedd50d3a4"
  },
  {
    "username": "Guest 3",
    "text": "謝謝老師",
    "display_minute": 112,
    "display_second": 37,
    "id": "7c14518d-f6e6-40a8-b331-9dccaab34945"
  },
  {
    "username": "Guest 993",
    "text": "88",
    "display_minute": 112,
    "display_second": 46,
    "id": "111e88b3-2529-475d-b7a4-667a8b8723e6"
  },
  {
    "username": "Guest 323",
    "text": "謝!",
    "display_minute": 112,
    "display_second": 51,
    "id": "d9ae040c-0ff0-4e01-915e-5c9867c25812"
  }
]
完整陣列 6 AI First 完整 chatMessages 陣列(59 則)
[
  {
    "username": "助教",
    "text": "嗨 大家記得在Line上面打上簽到,待會留言我們都在Line上面留會有AI做遊戲互動歐!",
    "display_minute": 0,
    "display_second": 0,
    "id": "1783934253172"
  },
  {
    "username": "Guest 952",
    "text": "嗨!",
    "display_minute": 0,
    "display_second": 8,
    "id": "5b19a253-0da1-453c-a5ed-d8c54406b3c8"
  },
  {
    "username": "助教",
    "text": "Wade老師好",
    "display_minute": 0,
    "display_second": 22,
    "id": "fd3f1d82-68e2-4908-933d-b4112cf27781"
  },
  {
    "username": "Guest 304",
    "text": "hi",
    "display_minute": 0,
    "display_second": 26,
    "id": "33d37360-de80-426e-ab4f-8f4c53f422e8"
  },
  {
    "username": "Guest 401",
    "text": "剛吃飽",
    "display_minute": 0,
    "display_second": 36,
    "id": "2347331e-89ce-444e-8888-a543f2fca300"
  },
  {
    "username": "Guest 290",
    "text": "321",
    "display_minute": 0,
    "display_second": 59,
    "id": "4ea60ef4-4090-4d40-a053-3bd7b4df80f1"
  },
  {
    "username": "Guest 359",
    "text": "Hi 偉哥",
    "display_minute": 1,
    "display_second": 6,
    "id": "b5f33950-85de-460b-a53c-ee7f541853c1"
  },
  {
    "username": "Guest 717",
    "text": "期待🤩",
    "display_minute": 2,
    "display_second": 35,
    "id": "c277ea58-819b-409e-9f7b-2f4975971dcc"
  },
  {
    "username": "Guest 577",
    "text": "不行 我要留下",
    "display_minute": 2,
    "display_second": 53,
    "id": "ec0caa97-ec1c-4175-bdf1-1377a25edc49"
  },
  {
    "username": "助教",
    "text": "提醒!大家記得留到最後~~~有驚喜",
    "display_minute": 3,
    "display_second": 19,
    "id": "755aa4e0-12e3-428e-a5d6-426d72298e0d"
  },
  {
    "username": "Guest 415",
    "text": "想要諮詢",
    "display_minute": 4,
    "display_second": 23,
    "id": "2b9488cf-a1f0-4fb8-bd09-b3f012ca63ad"
  },
  {
    "username": "Guest 843",
    "text": "好酷",
    "display_minute": 5,
    "display_second": 20,
    "id": "b8ba4e89-ad13-4b29-a5f6-3b1fde9a3f6f"
  },
  {
    "username": "Guest 919",
    "text": "路上好多工程師....",
    "display_minute": 8,
    "display_second": 2,
    "id": "83eeef94-fa31-410b-9f57-e2ace18b26f2"
  },
  {
    "username": "Guest 469",
    "text": "天啊🤯",
    "display_minute": 9,
    "display_second": 22,
    "id": "e564b352-04fa-47aa-8fec-4334d2b6d897"
  },
  {
    "username": "Guest 654",
    "text": "被取代了嗎?",
    "display_minute": 9,
    "display_second": 37,
    "id": "a37d2f67-7940-45d7-9e09-d7300cac4ce0"
  },
  {
    "username": "Guest 682",
    "text": "我目前只會問問題",
    "display_minute": 10,
    "display_second": 50,
    "id": "061bcaeb-c7ec-4d38-93e8-7d0f8ecef694"
  },
  {
    "username": "Guest 525",
    "text": "有",
    "display_minute": 11,
    "display_second": 31,
    "id": "f5e6c1b7-1a78-4406-8399-66d7b46d6d73"
  },
  {
    "username": "Guest 378",
    "text": "有",
    "display_minute": 11,
    "display_second": 35,
    "id": "684790d1-7832-41d2-9f7c-e2558f5664dd"
  },
  {
    "username": "Guest 506",
    "text": "有",
    "display_minute": 11,
    "display_second": 37,
    "id": "445632ff-7fdc-413d-b866-d94d8b63c8ea"
  },
  {
    "username": "助教",
    "text": "在Line喔!",
    "display_minute": 11,
    "display_second": 50,
    "id": "eb3736a5-ebad-4741-bc04-745821bdfc23"
  },
  {
    "username": "Guest 547",
    "text": "我要",
    "display_minute": 12,
    "display_second": 59,
    "id": "cf632fe6-16eb-4853-bcea-210f0fa08175"
  },
  {
    "username": "Guest 456",
    "text": "我ㄧㄠ",
    "display_minute": 13,
    "display_second": 11,
    "id": "b3970df2-2991-4990-af8d-e34eedf018c0"
  },
  {
    "username": "Guest 690",
    "text": "重新洗牌的機會",
    "display_minute": 14,
    "display_second": 4,
    "id": "4c503659-86b5-402e-8f06-72cb291d8440"
  },
  {
    "username": "Guest 296",
    "text": "我要",
    "display_minute": 14,
    "display_second": 7,
    "id": "f7f48ec2-f8b8-4fee-bef8-edf93f298a47"
  },
  {
    "username": "Guest 573",
    "text": "需要私訊分流",
    "display_minute": 15,
    "display_second": 57,
    "id": "3607343c-6951-4522-b55a-cc7d78ce58a7"
  },
  {
    "username": "Guest 420",
    "text": "😮😮😮",
    "display_minute": 16,
    "display_second": 34,
    "id": "defd922d-9b21-4a22-abc4-de4e8ee44c1e"
  },
  {
    "username": "助教",
    "text": "這是我們來自各行各業的學生~",
    "display_minute": 18,
    "display_second": 42,
    "id": "c5b4e965-932d-47aa-b3f8-74039db98e22"
  },
  {
    "username": "Guest 127",
    "text": "這也可以自己做?",
    "display_minute": 18,
    "display_second": 55,
    "id": "a13a28f8-6165-4404-9b72-a5c99042436d"
  },
  {
    "username": "Guest 776",
    "text": "有想法的人",
    "display_minute": 21,
    "display_second": 16,
    "id": "bd5e1f2b-bf9a-4d1e-a068-6c616b80dbb9"
  },
  {
    "username": "Guest 707",
    "text": "讚攢!!!!",
    "display_minute": 22,
    "display_second": 23,
    "id": "0b8ca785-b16d-4581-8bf0-85ff2b355a74"
  },
  {
    "username": "Guest 950",
    "text": "是純線上的嗎?",
    "display_minute": 24,
    "display_second": 33,
    "id": "4c0b562f-6196-41f9-ae1a-72a58d11f7bd"
  },
  {
    "username": "Guest 345",
    "text": "好酷喔0w0",
    "display_minute": 24,
    "display_second": 48,
    "id": "daf61685-d49f-4a94-ad4c-9cdba7931a46"
  },
  {
    "username": "Guest 192",
    "text": "想問老師有推薦要訂閱哪些工具嗎?",
    "display_minute": 26,
    "display_second": 11,
    "id": "caafe4e7-ee05-4f83-b9c5-6ff42ac26864"
  },
  {
    "username": "Guest 664",
    "text": "省錢省人力👍",
    "display_minute": 27,
    "display_second": 48,
    "id": "0b861d2c-1b8b-49bc-8630-c4c8427b58f7"
  },
  {
    "username": "Guest 979",
    "text": "我有信!心!可!以!",
    "display_minute": 29,
    "display_second": 8,
    "id": "4643af2f-6035-4124-bdd5-3f49a703cc84"
  },
  {
    "username": "Guest 781",
    "text": "我要我要!!!預約",
    "display_minute": 30,
    "display_second": 15,
    "id": "e957f3e6-5b85-4b26-a76d-2866a62032b6"
  },
  {
    "username": "Guest 775",
    "text": "預約",
    "display_minute": 30,
    "display_second": 22,
    "id": "433080d3-ef3a-4d5a-ad32-52e5cc32e1f9"
  },
  {
    "username": "Guest 198",
    "text": "預約",
    "display_minute": 30,
    "display_second": 31,
    "id": "3d78842c-01a3-4541-99d6-59d49b2b6fb3"
  },
  {
    "username": "助教",
    "text": "大家記得是在LINE上喔!!!!打[預約]",
    "display_minute": 30,
    "display_second": 59,
    "id": "b8c97d92-52b1-46cc-b8ed-590fe88ddfcb"
  },
  {
    "username": "助教",
    "text": "剩下2位囉!",
    "display_minute": 31,
    "display_second": 18,
    "id": "17c46591-1b0b-4727-8001-afc39d082896"
  },
  {
    "username": "助教",
    "text": "額滿!謝謝大家~",
    "display_minute": 31,
    "display_second": 41,
    "id": "1e6c8914-0f9d-4190-9079-455e37dffe37"
  },
  {
    "username": "Guest 160",
    "text": "請問要做到這樣,要重買電腦嗎?",
    "display_minute": 34,
    "display_second": 44,
    "id": "e62b68c1-31da-44c6-ad17-427252f0bb84"
  },
  {
    "username": "Guest 639",
    "text": "有興趣",
    "display_minute": 37,
    "display_second": 20,
    "id": "17ea8ac6-cd33-459b-90e7-c2015b0fde6e"
  },
  {
    "username": "Guest 300",
    "text": "聽起來還蠻完整的",
    "display_minute": 40,
    "display_second": 22,
    "id": "98b04741-9c78-4df1-b42f-c5de3ab6a570"
  },
  {
    "username": "Guest 682",
    "text": "所以說課程會送這些?",
    "display_minute": 41,
    "display_second": 14,
    "id": "925ab554-5fe6-492c-9b17-5377fbe7ae09"
  },
  {
    "username": "Guest 528",
    "text": "!?",
    "display_minute": 43,
    "display_second": 4,
    "id": "df367b84-e3ac-4a3a-a7ad-797a7db855b8"
  },
  {
    "username": "Guest 514",
    "text": "差好多",
    "display_minute": 43,
    "display_second": 7,
    "id": "16a66b8e-25eb-423d-97a0-a6af8b303781"
  },
  {
    "username": "Guest 356",
    "text": "😮",
    "display_minute": 43,
    "display_second": 22,
    "id": "b0fec706-0404-4c74-a930-53483b2a3e98"
  },
  {
    "username": "Guest 548",
    "text": "已打",
    "display_minute": 46,
    "display_second": 25,
    "id": "2da6a740-357f-4430-a324-83fa2306bae8"
  },
  {
    "username": "助教",
    "text": "LINE上輸入[666]!",
    "display_minute": 46,
    "display_second": 43,
    "id": "c44ec346-ebe0-4699-b4c1-6093412426a8"
  },
  {
    "username": "助教",
    "text": "恭喜第一位同學:陳O芳!",
    "display_minute": 47,
    "display_second": 6,
    "id": "2d7c6e25-0f2a-4377-8db4-8902c1365332"
  },
  {
    "username": "助教",
    "text": "張O琳 感謝加入~",
    "display_minute": 48,
    "display_second": 8,
    "id": "3db0f002-d6f6-4c6e-948c-03687e01fdfe"
  },
  {
    "username": "Guest 955",
    "text": "已購買!係謝老師",
    "display_minute": 49,
    "display_second": 2,
    "id": "4991556d-5c3f-416f-b8f4-4a814060929a"
  },
  {
    "username": "助教",
    "text": "林O宜 感謝加入~",
    "display_minute": 49,
    "display_second": 33,
    "id": "d5e4d905-40fb-41ec-abe1-54dcc91265d0"
  },
  {
    "username": "Guest 645",
    "text": "感謝回答",
    "display_minute": 51,
    "display_second": 1,
    "id": "7d2d38ea-dfb9-4935-bb2d-8f0f92542d4c"
  },
  {
    "username": "助教",
    "text": "最後3位!",
    "display_minute": 52,
    "display_second": 12,
    "id": "011d74e2-8fe7-415c-8a7d-95d14eb4c649"
  },
  {
    "username": "Guest 853",
    "text": "謝謝老師",
    "display_minute": 52,
    "display_second": 27,
    "id": "a66c32f1-2256-423f-a341-31418044b3d6"
  },
  {
    "username": "Guest 534",
    "text": "謝謝!!!!!!!",
    "display_minute": 52,
    "display_second": 36,
    "id": "7d8eecb2-272c-4cf1-a602-0b850183283a"
  },
  {
    "username": "Guest 577",
    "text": "謝謝老師~",
    "display_minute": 53,
    "display_second": 8,
    "id": "e028bab5-906d-4d81-9051-b46313c2d040"
  }
]
設定證據 P25 ainext 原始預排訊息節選
                            {
  "總數": 83,
  "節選": [
    {
      "username": "Guest 916",
      "text": "+1",
      "display_minute": 0,
      "display_second": 16,
      "id": "0ede5a2d-f33a-46dd-8ba9-584c13576c3e"
    },
    {
      "username": "Guest 66",
      "text": "+1",
      "display_minute": 0,
      "display_second": 18,
      "id": "9a2e0fe3-6a5c-4c12-8d98-de62e6f23742"
    },
    {
      "username": "Guest 861",
      "text": "+1",
      "display_minute": 0,
      "display_second": 22,
      "id": "17b51998-0061-4f8c-acee-30362c5caf9d"
    },
    {
      "username": "助教",
      "text": "第一位同學下單囉!陳O瑜",
      "display_minute": 53,
      "display_second": 26,
      "id": "ace1993d-d2d0-4c8e-a959-06e4654228c2"
    },
    {
      "username": "助教",
      "text": "同學陸續下單中!!",
      "display_minute": 54,
      "display_second": 22,
      "id": "e33a0274-f109-444c-9ba9-392af1616983"
    }
  ]
}
                        
設定證據 P26 n8n 原始預排訊息節選
                            {
  "總數": 225,
  "節選": [
    {
      "username": "Guest 687",
      "text": "嗨嗨",
      "display_minute": 0,
      "display_second": 4,
      "id": "a5aab8ff-7e13-4818-8f84-1249c9b351da"
    },
    {
      "username": "Guest 4",
      "text": "嗨",
      "display_minute": 5,
      "display_second": 1,
      "id": "e7b97a93-5d0c-4914-b52f-17e62733cfce"
    },
    {
      "username": "Guest 974",
      "text": "老師好!",
      "display_minute": 5,
      "display_second": 6,
      "id": "74e7fd49-7b39-4182-8fd9-199f871bdad1"
    },
    {
      "username": "Guest 636",
      "text": "我信用卡準備好了",
      "display_minute": 96,
      "display_second": 26,
      "id": "9e112c31-5b3f-4057-bb23-bc92e676fcc6"
    },
    {
      "username": "Guest 167",
      "text": "怎麼下單",
      "display_minute": 99,
      "display_second": 31,
      "id": "e4f0357c-2946-4630-8f78-4ed47ee9bc14"
    }
  ]
}
                        
L4程式/保存畫面可確認

程式替本頁訪客編號時會避開預排留言使用的號碼

程式掃描頁面腳本裡的 Guest 數字,建立保留清單;從 1~999 尚未用到的號碼選一個給本頁使用者,並存入 sessionStorage。若號碼已用滿,再從 1000 起找空號。這項邏輯會避免本頁分配的編號與預排留言編號重複。原始註解使用「模擬留言」「真實觀眾」等字眼。

原始碼證據 P27 蒐集腳本暱稱、排除後再給本頁觀眾
 518    function collectSimulatedGuestNumbers() {
 519      var reserved = Object.create(null);
 520  
 521      Array.prototype.forEach.call(document.scripts, function (script) {
 522        var source = script.src ? "" : String(script.textContent || "");
 523        var matches = source.match(/\bGuest\s+\d+\b/gi) || [];
 524  
 525        // WebinarKit 的模擬留言資料集中在同一段腳本;單一 Guest 則是本頁真實觀眾名稱。
 526        if (matches.length < 2) {
 527          return;
 528        }
 529  
 530        matches.forEach(function (value) {
 531          var numberMatch = value.match(/\d+/);
 532          if (numberMatch) {
 533            reserved[Number(numberMatch[0])] = true;
 534          }
 535        });
 536      });
 537  
 538      return reserved;
 539    }
 540  
 541    function chooseAvailableRealGuestNumber(reserved) {
 542      var available = [];
 543      var number;
 544  
 545      for (number = 1; number <= 999; number += 1) {
 546        if (!reserved[number]) {
 547          available.push(number);
 548        }
 549      }
 550  
 551      if (!available.length) {
 552        // 1~999 全被模擬留言使用時,改從四位數開始找第一個空號。

··· 中間省略 ···

 590    function ensureRealViewerGuestNumber() {
 591      if (realViewerGuestNumberChecked || typeof window.username !== "string") {
 592        return;
 593      }
 594  
 595      var currentMatch = window.username.match(/^Guest\s+(\d+)$/i);
 596      if (!currentMatch) {
 597        realViewerGuestNumberChecked = true;
 598        return;
 599      }
 600  
 601      var reserved = collectSimulatedGuestNumbers();
 602      if (!Object.keys(reserved).length) {
 603        return;
 604      }
 605  
 606      // 每位真實觀眾都從模擬留言未使用的號碼中取號;同一瀏覽器場次會沿用已選號碼。
 607      window.username =
 608        "Guest " + String(chooseAvailableRealGuestNumber(reserved));
 609  
 610      realViewerGuestNumberChecked = true;
                            
L5有證據,結論有範圍

保存版本含 Socket.IO 發送程式與接收端顯示限制

送出處理器呼叫 Socket.IO 的 socket.emit('chat_message', …)。接收處理器在保存版本只將管理員或「與本頁使用者 ID 相同」的訊息加入畫面;其他一般觀眾訊息不會走入這個顯示分支。預排訊息則直接呼叫顯示函式,走另一條路徑。

因此程式設計支持「自己的訊息可能出現,其他一般觀眾不會看到」的結果。不過使用者先前發送 123 的 Network 畫面沒有顯示 WebSocket 連線或聊天封包,只有畫面出現文字;尚不能寫成那一次訊息已成功送達伺服器。

原始碼證據 P28 Socket 發送程式
   9  var send_chat_message_button = document.getElementById('send_chat_message_button');
  10  
  11  if (send_chat_message_button) {
  12    send_chat_message_button.onclick = send;
  13  }
  14  
  15  var chat_message = document.getElementById('chat_message');
  16  
  17  if (chat_message) {
  18    chat_message.addEventListener('keypress', function(event) {
  19      if (event.key === 'Enter') {
  20        event.preventDefault();
  21        send();
  22      }
  23    });
  24  }
  25  
  26  function send() {
  27    let message = $('#chat_message').val();
  28  
  29    if (message) {
  30      socket.emit('chat_message', JSON.stringify({
  31        id: `[本頁使用者ID]`,
  32        username: username,
  33        email: registrant_email,
  34        event_date: event_timestamp,
  35        messageID: Date.now(),
  36        message: message
  37      }));
  38  
  39      $('#chat_message').val('');
  40  
  41      engaged_in_event_chat = true;
  42    }
                            
原始碼證據 P29 接收後僅顯示管理員或本人;初始化 WebSocket
  64    socket.on('chat_message', function(msg) {
  65      var item = JSON.parse(msg);
  66  
  67      if (false) {
  68        addMessageUtility(item);
  69      } else {
  70        if (item.is_admin || `[本頁使用者ID]` === item.id) {
  71          addMessageUtility(item);
  72        }
  73      }
  74    });

··· 中間省略 ···

  83  function initialize_socket() {
  84    if (socket) {
  85      socket.disconnect();
  86    }
  87  
  88    socket = io(window.location.origin, {
  89      query: 'r_var=' + `6adc6af93d15a12d0688e773`,
  90      transports: ['websocket']
  91    });
  92  
  93    initialize_socket_events();
  94  
  95    socket.emit('username', JSON.stringify({
  96      id: `[本頁使用者ID]`,
  97      username: username,
  98      privilege: 'attendee',
  99      message: `已加入聊天室` ? `已加入聊天室` : 'has joined the chat'
 100    }));
 101  }
 102  
 103  initialize_socket();
                            
L6程式/保存畫面可確認

部分播放室只是把聊天輸入列隱藏

ADragon、SalesKing、AppIPO 保存樣本設定 hideViewerChatInput: true,用 CSS 隱藏輸入列並在原聊天容器插入資訊公告。AI-NEXT、n8n、AI First 的保存樣本則為 false。看不到輸入框不能推成網站沒有聊天室功能。

原始碼證據 P30 隱藏輸入列的設定與 CSS
  25  
  26      // ===== 資訊分頁 =====
  27      hideViewerChatInput: true,
  28      pinnedMessages: [
  29        {
  30          text: "歡迎來到直播!重要資訊會統一放在這邊,推薦用電腦觀看直播,比較不會有播放問題"
  31        },
  32        {
  33          text: "進來直播,請記得在Line上面留言「簽到」,待會重要的互動都在Line上面留言,會有AI回覆客製化的體驗歐!",
  34          url: "",
  35          linkText: "查看詳情"

··· 中間省略 ···

 103      style.id = "wk-audience-style";
 104      style.textContent =
 105        (CONFIG.hideViewerChatInput
 106          ? "#messagerow{display:none!important;}" +
 107            ".webinarkit-chat-emoji-popover{display:none!important;}"
 108          : "") +
 109        "body.wk-mobile-browser-gated{overflow:hidden!important;touch-action:none!important;}" +
                            
05

新聞外觀與課程背書

沿著 LINE、新聞頁、搜尋結果與舊活動脈絡,檢查背書從何而來。

N1使用者提供的觀察

LINE 的「相關報導」把課程引到一個新聞外觀網站

使用者提供的 AI Plus 官方帳號截圖顯示「相關報導」按鈕;其操作紀錄指出點擊後開啟 daynews.app。後續截圖顯示站名「今日時報」、新聞分類、編輯台與日期,並刊載與 AI Plus 講師及團隊規模有關的文章。

這一連串素材能呈現課程導流與新聞式背書的路徑。單張 LINE 截圖本身不能證明按鈕的實際 href;這段跳轉關係的來源是使用者的操作敘述。

相關報導:https://daynews.app/investment/blog/2026-08-14/ai-freelance-team-scaling-sixfinger-yuan

N2截圖可確認

Google 搜尋結果第一頁未看到 daynews.app

使用者提供的 Google 搜尋截圖中,搜尋結果第一頁沒有出現 daynews.app。

N3有證據,結論有範圍

新聞照片指向 Intel 活動脈絡,不能拿來證明文中業績

使用者以圖搜圖的截圖指向 Intel《AI PC 創作新世代》相關報導。Intel 官方資料可獨立確認活動在 2024/3/14~3/17 舉辦,並列出六指淵等受邀創作者。這支持「照片有歷史活動脈絡」的查核方向。

目前尚未完成這張照片與 2024 原始照片的逐一比對,所以報告不把以圖搜圖結果寫成已確認的同張原圖。照片本身也不能證明文章中的客戶數與營收;這些數字需另以營運資料核實。

·

N4仍待核實

今日時報的獨立性與文章數字仍待外部證實

使用者提供的操作紀錄顯示,課程帳號的「相關報導」按鈕導向 daynews.app 一篇採新聞版型的文章。文章以編輯台名義發布,提及 5 人團隊、60 多名包月客戶及單月約 300 萬元營收;本次未取得可供讀者獨立重算的原始營運資料。網站設有關於、編輯與來源政策頁,但這些頁面本身不能核實文章數字。現有資料不足以確認文章是否經獨立採訪、網站與課程方有無利益關係,以及數字由誰提供、如何查核。

設定證據 P31 新聞查核來源與限度
{
  "文章URL": "https://daynews.app/investment/blog/2026-08-14/ai-freelance-team-scaling-sixfinger-yuan",
  "查核日": "2026-11-02",
  "獨立確認": "Intel於2024/3/14~3/17舉辦AI PC創作新世代活動",
  "未完成": "照片逐一比對、網站法律主體與課程方關係、營運數字原始文件"
}
                            
放大的圖證