未ログイン状態で閲覧中
  • 投稿日:2025/12/23
  • 更新日:2026/01/12
DomoAIで動画を連続生成!ブックマークレット活用による自動化・効率化術

DomoAIで動画を連続生成!ブックマークレット活用による自動化・効率化術

  • 1
  • -
トリニコ@youtube BGM

トリニコ@youtube BGM

この記事は約17分で読めます

📢DomoAI ユーザー向け(2026年1月12日最新版に更新)


リベシティの皆様!こんにちは

トリニコ🍊と申します。

私はDomoAIっという画像生成・動画生成ツールを使っているのですが、

画像生成や動画生成ツールを使っていて、

👨「何回も同じプロンプトで生成する時、ボタンクリックが面倒・・・」

👩「ポチ、ポチ、ポチ……正直めんどくさい・・・」

👨「単純な繰り返し作業って面倒くさい・・・」

ありません?笑

今日はそのモヤっとを、解決する小ネタ記事です。

結論:ブックマークレットを使う。

先に結論から、

Domo AIで画像生成・動画生成するなら、ブックマークレットが便利です。

Domo AIって1回の生成で複数生成ができません。

WIN版:ブックマークレット

下記は、私が使っているブックマークレットです。

javascript:(()=>{const KEY="__domo_regen_gen_loop__",sleep=t=>new Promise(r=>setTimeout(r,t)),norm=s=>(s||"").replace(/\s+/g,"").trim(),visible=e=>!!(e&&e.getClientRects&&e.getClientRects().length)&&(()=>{const cs=getComputedStyle(e);return cs.display!=="none"&&cs.visibility!=="hidden"&&cs.opacity!=="0"&&cs.pointerEvents!=="none"})(),clickable=b=>b&&visible(b)&&!b.disabled&&b.getAttribute("aria-disabled")!=="true"&&b.getAttribute("data-disabled")!=="true",findByText=txt=>{const bs=[...document.querySelectorAll("button")].filter(visible);for(const b of bs)if(norm(b.textContent).includes(txt))return b;return null},clickHuman=b=>{try{b.scrollIntoView({block:"center",inline:"center"})}catch(e){}["pointerdown","mousedown","pointerup","mouseup","click"].forEach(t=>b.dispatchEvent(new MouseEvent(t,{bubbles:true,cancelable:true,view:window})))};if(window[KEY]?.stop)return window[KEY].stop(),void console.log("スクリプトを停止しました");let stopFlag=false;window[KEY]={stop:()=>{stopFlag=true,window[KEY]=null}};const TARGET=7,WAIT_REGEN=600,WAIT_GEN=1500,WAIT_READY=600000,waitFor=(fn,ms)=>new Promise(async(res,rej)=>{const end=Date.now()+ms;while(!stopFlag&&Date.now()<end){const v=fn();if(v)return void res(v);await sleep(150)}rej(new Error("timeout"))}),getRegen=()=>((b=findByText("再生成"))=>clickable(b)?b:null)(),getGen=()=>((b=findByText("生成"))=>clickable(b)?b:null)();(async()=>{console.log(`実行開始:${TARGET}回繰り返します`);for(let i=1;i<=TARGET&&!stopFlag;i++){console.log(`進捗:${i}/${TARGET}`);let regen,gen;try{regen=await waitFor(()=>getRegen(),60000)}catch(e){return window[KEY].stop(),void console.error("エラー:再生成ボタンが見つかりません")}clickHuman(regen),await sleep(WAIT_REGEN);try{gen=await waitFor(()=>getGen(),60000)}catch(e){return window[KEY].stop(),void console.error("エラー:生成ボタンが見つかりません")}clickHuman(gen),await sleep(WAIT_GEN);try{await waitFor(()=>getRegen(),WAIT_READY)}catch(e){return window[KEY].stop(),void console.error("エラー:生成完了待ちタイムアウト")}}window[KEY].stop(),console.log(stopFlag?"中断されました":"すべての工程が完了しました")})()})();

2026年1月12日更新ver.

これのスクリプトを使っていただければ、7回勝手にポチポチしてくれます。

削除用ブックマークレットも作りました

javascript:(()=>{const TARGET=7;const sleep=t=>new Promise(r=>setTimeout(r,t));const norm=s=>(s||"").replace(/\s+/g,"").trim();const visible=e=>!!(e&&e.getClientRects&&e.getClientRects().length)&&(()=>{const cs=getComputedStyle(e);return cs.display!=="none"&&cs.visibility!=="hidden"&&cs.opacity!=="0"&&cs.pointerEvents!=="none";})();const clickable=b=>b&&visible(b)&&!b.disabled&&b.getAttribute("aria-disabled")!=="true";const clickHuman=b=>{try{b.scrollIntoView({block:"center",inline:"center"});}catch(e){}["pointerdown","mousedown","pointerup","mouseup","click"].forEach(t=>b.dispatchEvent(new MouseEvent(t,{bubbles:true,cancelable:true,view:window})));};const findListDelete=()=>[...document.querySelectorAll("button")].find(b=>visible(b)&&norm(b.textContent)==="削除"&&!b.closest('[role="dialog"]'));const findDialog=()=>document.querySelector('section[role="dialog"][aria-modal="true"]');const findDialogDelete=dlg=>[...dlg.querySelectorAll("button")].find(b=>norm(b.textContent)==="削除");const waitFor=async(fn,ms)=>{const end=Date.now()+ms;while(Date.now()<end){const v=fn();if(v)return v;await sleep(120);}return null;};(async()=>{for(let i=1;i<=TARGET;i++){const first=await waitFor(findListDelete,15000);if(!first||!clickable(first))return;clickHuman(first);const dialog=await waitFor(findDialog,15000);if(!dialog)return;const confirm=await waitFor(()=>{const b=findDialogDelete(dialog);return clickable(b)?b:null;},15000);if(!confirm)return;await sleep(600);clickHuman(confirm);await waitFor(()=>!findDialog(),20000);await sleep(500);}})();})();

DomoAIは1回の生成実行で1つ生成

Mid・journeyなら1回で4つ同時に生成できます。

スクリーンショット 2025-12-20 233503.pngWhiskでも1回の生成で2つ同時に生成できます。

スクリーンショット 2025-12-20 234116.pngDomoAIは1回の生成で1つの結果しか得られません。

スクリーンショット 2025-12-21 004907.pngその為、DomoAIで複数生成する場合は、ポチポチする手間が増えます。

こういう手間は時間も集中力も、地味に削られていきます。

「たかが数回クリックじゃん」って思う人もいると思いますが、

気に入ったものが生成されない時は、このポチポチが地味にうざいです。

ブックマークレットって何?

ブックマークレットっていうのは、

**ブックマークに登録できる“ちっちゃい自動操作ボタン”**みたいなもの。

見た目は普通のブックマークですが、

・クリックしたら
・今見てるページ上で
・決まった操作を一気にやってくれる

そういう仕組みです。

たとえば、

・生成ボタンを自動で押す
・特定の入力欄にフォーカスする
・決まった流れを一発で実行する

こんなことができます。

DOMO AIみたいに
操作が毎回ほぼ同じツールとは相性バツグンです。

「難しそう…」って思った人へ

ここで必ず出てくる声。

👨「プログラミング無理です」
👩「JavaScriptって聞くだけで拒否反応…」

安心してください😊

ブックマークレットは、

・自分でコード書く必要なし
・用意されたコードを
・コピペして
・ブックマークに登録するだけ

これで完成です。

一回作ったら、
その後は毎回ラクができる

最初の5分をケチって、
毎回ポチポチで消耗する方がよっぽど損ですね。

ChatGPTに相談すれば、仕様変更も簡単ですよ。

お好みに合わせてカスタマイズしてください。

例えば、私のスクリプトをChatGPTに渡してから、

生成回数を3回でストップする仕様に変更して

ってお願いすれば、仕様変更されたスクリプトを出してくれます。

まとめ

・AI生成で同じ操作を何度もしてる人
・生成回数が多い人
・ポチポチにイラっとし始めた人

この辺に当てはまるなら、
ブックマークレットを使ってみてください。

旧バージョン

javascript:(function(){ /* --- 設定エリア --- */ var config = { maxExecutions: 7, /* 合計実行回数:7回 */ loopInterval: 8000, /* ループ間の待機時間(ミリ秒):8秒 */ waitBeforeGen: 2000 /* 再生成→生成の間の待機時間:2秒 */ }; var currentCount = 0; /* --- 共通機能:強力なクリック信号を送る関数 --- */ function simulateClick(element, btnName) { if(!element) return false; /* 視覚効果(赤枠) */ element.style.border = "5px solid red"; element.style.boxShadow = "0 0 20px red"; element.style.zIndex = "9999"; console.log(btnName + "ボタンをクリックします"); /* 各種イベント発火 */ var events = [ new MouseEvent('mouseover', { bubbles: true, cancelable: true, view: window }), new MouseEvent('mousedown', { bubbles: true, cancelable: true, view: window, buttons: 1 }), new MouseEvent('mouseup', { bubbles: true, cancelable: true, view: window, buttons: 1 }), new PointerEvent('pointerdown', { bubbles: true, cancelable: true, view: window, isPrimary: true }), new PointerEvent('pointerup', { bubbles: true, cancelable: true, view: window, isPrimary: true }), new MouseEvent('click', { bubbles: true, cancelable: true, view: window, buttons: 1 }) ]; element.focus(); events.forEach(function(e) { element.dispatchEvent(e); }); /* 0.8秒後に赤枠を消す */ setTimeout(function(){ element.style.border = ""; element.style.boxShadow = ""; element.style.zIndex = ""; }, 800); return true; } /* --- 生成ボタン検索関数 --- */ function findGenBtn() { var btn = document.getElementById('generate-animate'); if (!btn) { var buttons = document.getElementsByTagName('button'); for(var i=0; i<buttons.length; i++){ if(buttons[i].innerText.indexOf('生成') !== -1 && buttons[i].innerText.indexOf('再生成') === -1){ btn = buttons[i]; break; } } } return btn; } /* --- メインループ関数 --- */ function runSequence() { currentCount++; console.log("--- 実行回数: " + currentCount + " / " + config.maxExecutions + " ---"); /* 再生成ボタン(画像 alt="Regen")を探す */ var regenImg = document.querySelector('img[alt="Regen"]'); var regenBtn = regenImg ? regenImg.closest(%27button%27) : null; /* 次の回を予約する関数 */ function scheduleNext() { if (currentCount < config.maxExecutions) { console.log("次の実行まで " + (config.loopInterval/1000) + "秒待機します..."); setTimeout(runSequence, config.loopInterval); } else { console.log("全工程完了。停止します。"); } } if (regenBtn) { /* パターンA: 再生成がある場合 */ simulateClick(regenBtn, "再生成"); /* 2秒待って生成ボタンを押す */ setTimeout(function(){ var genBtn = findGenBtn(); if (genBtn) { simulateClick(genBtn, "生成"); } scheduleNext(); }, config.waitBeforeGen); } else { /* パターンB: 再生成がない場合 */ var genBtn = findGenBtn(); if (genBtn) { simulateClick(genBtn, "生成"); } scheduleNext(); } } /* 即時実行開始 */ runSequence();})();

ブックマークに追加した記事は、ブックマーク一覧ページで確認することができます。
あとから読み返したい時に便利です。

トリニコ@youtube BGM

投稿者情報

トリニコ@youtube BGM

トラ会員

この記事に、いいねを送ろう! 参考になった記事に、
気軽にいいねを送れるようになりました!
この記事のレビュー(0

まだレビューはありません