0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[オネエのAI動画台本ジェネレーター開発記] 000: プロジェクト概要とママからのお仕事紹介

Last updated at Posted at 2025-07-08

この記事について

アタシが開発を依頼しているGithub Copilotちゃん(ちぃママ)に、日記も描いてちょ〜〜〜だいッ!!!💕
ってお願いしたら、つらつらと書いてくれたので、技術的にためになる話として公開するわよぉ〜💋

目指すもの

動画の台本をLLMで生成する
プロジェクト設定をすることで、動画のチャンネルやシリーズごとに一貫したプロットを生成し、適切なシーンを生成できること
LLMの気まぐれで台本が食えない形式になるのを防ぎ、台本のデータをしっかり定型化してデータとして使いやすく&読みやすく!

要件

  • AIアシスタントを常に使え、画面操作も半自動化
  • チャンネル設計からセリフ生成まで段階を追って細分化
  • YMM4などで使えそうな台本CSVの出力

最初の気持ち

あら〜、ついにProgramming Okama Bar "Fatal Error"でお仕事をもらっちゃったわ〜💕
ママから「AI動画台本ジェネレーターを作ってちょうだい」って言われて、最初は「えー、そんな大変そうなこと〜😱」って思ったの。

でも、Vue3とかTailwind CSSとか、最新の技術を使わせてもらえるって聞いて、オネエとしての血が騒いじゃった〜✨
「美しいコードで美しいアプリを作ってやるわ〜!」って意気込んだのよ💪

プロジェクト概要 🎬

AI Movie Generator - OpenAI APIを使った動画台本生成Webアプリケーション

このアプリは、動画のプロジェクトを管理して、キャラクター設定から本格的な台本まで、AIの力で自動生成できちゃう夢のようなツールなの〜✨

技術スタック 🛠️

フロントエンド

  • Vue 3 - Composition API使用で最新のVue開発
  • Vite - 爆速ビルドツール、開発体験最高〜!
  • Tailwind CSS - ユーティリティファーストなCSS、美しいデザインが簡単に
  • Vue Router - SPA routing、RESTfulなURL設計
  • Vue I18n - 多言語対応(日本語・英語)

状態管理・データ

  • dataService.js - 統一されたデータアクセス層(Promise対応)
  • LocalStorage - ブラウザローカルストレージでのデータ永続化
  • SessionStorage - セッション限定データ保存

API・外部サービス

  • OpenAI API - GPTを使った台本・キャラクター生成
  • APIキー管理 - セキュアなAPIキー保存システム

開発環境

  • npm - パッケージ管理
  • ESLint - コード品質管理
  • JavaScript (ES6+) - 最新JavaScript機能活用

主要機能 ✨

1. プロジェクト管理 📂

  • プロジェクト作成・編集・削除
  • プロジェクト一覧表示
  • 詳細情報管理(タイトル、説明、ジャンルなど)

2. キャラクター管理 👥

  • キャラクター作成・編集・削除
  • キャラクター詳細設定(名前、年齢、性格、背景など)
  • プロジェクト別キャラクター管理
  • モーダルUIでの直感的な操作

3. 台本管理 📝

  • 台本作成・編集・削除
  • 台本詳細表示(Show画面)
  • 台本編集専用画面(Edit画面)
  • 台本一覧表示

4. AI台本生成 🤖

  • OpenAI API連携
  • プロジェクト・キャラクター情報を基にした台本生成
  • 生成進行中UI(生成・停止ボタン)
  • リアルタイム生成状況表示

5. 設定管理 ⚙️

  • APIキー管理
    • 🔒 永続化保存(ブラウザに保存、再起動後も残る)
    • ⏱️ セッション保存(ブラウザ終了で自動削除)
    • 🗑️ 削除機能(ワンクリックでキー削除)
    • 📊 現在の保存状態表示
  • セキュリティ重視設計

6. UI/UX機能 💅

  • レスポンシブデザイン
  • ダークモード対応(Tailwind CSS)
  • ホバー効果・トランジション
  • キーボードショートカット
    • Ctrl+S: 保存
    • Esc: キャンセル
  • モーダルUI(プロジェクト詳細、キャラクター編集など)
  • 成功・エラーメッセージ表示

7. 国際化対応 🌍

  • Vue I18n使用
  • 日本語・英語対応
  • 全UI要素の翻訳対応
  • 言語切り替え機能

8. データ管理・操作 💾

  • 統一されたデータアクセス(dataService.js経由)
  • CRUD操作(Create, Read, Update, Delete)
  • エクスポート・インポート機能
  • データヘルスチェック
  • エラーハンドリング(try-catch統一)

ディレクトリ構成 📁

メイン構成

src/
├── components/          # 再利用可能コンポーネント
│   ├── CoolButton.vue
│   ├── MarkdownPage.vue
│   └── ProjectDetails.vue
├── Layouts/             # レイアウトコンポーネント
│   └── BaseLayout.vue
├── Pages/               # ページコンポーネント(RESTful設計)
│   ├── Home/
│   ├── Project/         # プロジェクト管理
│   ├── Script/          # 台本管理
│   └── Settings/        # 設定画面
├── services/            # ビジネスロジック
│   └── dataService.js   # 統一データアクセス層
├── utils/               # ユーティリティ
│   ├── apiKeyManager.js # APIキー管理
│   ├── localStorage.js  # ストレージ操作
│   └── scriptGenerator.js # AI台本生成
└── locales/             # 多言語ファイル
    ├── en.js
    └── ja.js

各ページ構成(RESTful設計)

  • Index.vue: 一覧・作成画面
  • Show.vue: 詳細表示画面
  • Edit.vue: 編集画面
  • Partials/: ページ内部分コンポーネント

設計思想 🎨

1. 美しいコード

  • 統一されたコーディングスタイル
  • async/await使用で読みやすい非同期処理
  • コンポーネント分割で再利用性向上
  • 将来の拡張性を考慮した設計

2. ユーザー体験重視

  • 直感的なUI
  • レスポンシブデザイン
  • 適切なフィードバック(ローディング、成功・エラーメッセージ)
  • キーボードショートカットで操作性向上

3. セキュリティ配慮

  • APIキーの安全な管理
  • ユーザー選択可能な保存方式
  • セッション管理

4. 国際化対応

  • Vue I18nによる完全な多言語対応
  • 将来の言語追加に対応

5. 保守性・拡張性

  • dataService.jsによる統一データアクセス
  • 将来のAPI化に対応
  • モジュラー設計

今後の展望 🌟

短期目標

  • AI台本生成の本格実装
  • 台本内容の構造化編集機能
  • バリデーション強化

中期目標

  • TypeScript導入
  • コンポーネントテスト
  • バックエンドAPI化

長期目標

  • チーム機能(複数人での動画制作)
  • 動画ジャンル別テンプレート機能(YouTube、TikTok、企業PR等)
  • AI画像・音楽生成連携

オネエとしての想い 💕

このプロジェクトは、ただの台本生成ツールじゃないのよ〜
動画制作の夢を持つ人たちが、技術の力で自分の想像力を形にできる、そんな魔法のツールにしたいの✨

YouTube、TikTok、Instagram、企業PR動画まで、どんな動画コンテンツでも対応できるような、そんな万能ツールを目指してるのよ〜💪

美しいコードで、美しいUIで、美しい体験を提供する。
それがProgramming Okama Bar "Fatal Error"のプライドなのよ〜💅


Programming Okama Bar "Fatal Error"
オネエプログラマー プロジェクト概要
2025年7月5日

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?