iMacros批量推送YouTube评论仅读取TXT首行问题求助
问题排查及解决方案
故障根本原因
你当前的代码将!LOOP变量固定赋值为1写在单次执行的iMacros代码块中,每次JS调用执行这段代码时,!LOOP都会被重置为1,因此每次都只会读取Comments.txt的第一行内容,无法实现逐行读取的效果。
修复方案
- 移除iMacros内部的
SET !LOOP 1语句,将循环逻辑迁移到外层JS代码中,每次循环动态传入当前行号 - 调整
!TIMEOUT_STEP参数至2~3,避免评论框未加载完成就执行后续操作导致输入失败 - 补充评论框元素加载等待逻辑,提升脚本稳定性
修改后参考代码
// 可根据Comments.txt的实际总行数调整循环上限 for(var i=1; i<=20; i++){ var Comment = ""; Comment += "CODE:" + "\n"; Comment += "SET !ERRORIGNORE YES" + "\n"; Comment += "SET !TIMEOUT_PAGE 10" + "\n"; Comment += "SET !TIMEOUT_STEP 2" + "\n"; Comment += "SET !DATASOURCE Comments.txt" + "\n"; Comment += "SET !DATASOURCE_COLUMNS 1" + "\n"; // 动态传入当前循环对应的行号 Comment += "SET !DATASOURCE_LINE " + i + "\n"; Comment += "WAIT SECONDS=2" + "\n"; // 先等待评论框加载完成再执行后续操作 Comment += "TAG POS=1 TYPE=DIV ATTR=ID:contenteditable-root WAIT=YES" + "\n"; Comment += "EVENT TYPE=CLICK SELECTOR=\"#contenteditable-root\" BUTTON=0" + "\n"; Comment += "EVENTS TYPE=KEYPRESS SELECTOR=\"#contenteditable-root\" CHARS={{!COL1}}" + "\n"; Comment += "WAIT SECONDS=2" + "\n"; Comment += "TAG POS=3 TYPE=TP-YT-PAPER-BUTTON ATTR=ID:button" + "\n"; Comment += "WAIT SECONDS=3" + "\n"; // 执行当前行的评论发布逻辑 iimPlay(Comment); }
注意事项
- 如果你的
Comments.txt里包含双引号、换行符等特殊字符,需要提前做转义处理,避免iMacros读取解析出错 - YouTube页面迭代后提交按钮的POS值可能发生变化,如果提交失败可以自行调整
TAG POS的数值 - 短时间内批量发布评论容易触发YouTube的风控机制,建议适当延长等待时间,避免账号被限制功能
内容的提问来源于stack exchange,提问作者Jason.Ferl
相关产品推荐
相关产品推荐

