Files
video-create/.claude/skills/setup.js

99 lines
3.2 KiB
JavaScript

#!/usr/bin/env node
/**
* 素材生产系统 - 环境配置工具
*
* 自动检测本地路径,生成 config.json。
* 新机器首次使用时运行一次即可。
*
* 用法: node setup.js
*/
const fs = require('fs')
const path = require('path')
const os = require('os')
const CONFIG_PATH = path.join(__dirname, 'config.json')
// ============================================================================
// 自动检测
// ============================================================================
function detectJianyingDraftPath() {
const username = os.userInfo().username
const candidates = [
`C:/Users/${username}/AppData/Local/JianyingPro/User Data/Projects/com.lveditor.draft`,
`C:/Users/${username}/AppData/Local/CapCut/User Data/Projects/com.lveditor.draft`,
]
for (const p of candidates) {
if (fs.existsSync(p)) return p
}
return candidates[0] // 默认返回剪映路径(即使不存在)
}
function detectCapcutMateDir() {
const username = os.userInfo().username
const candidates = [
`C:/Users/${username}/capcut-mate`,
path.join(os.homedir(), 'capcut-mate'),
]
for (const p of candidates) {
if (fs.existsSync(p)) return p
}
return candidates[0]
}
function detectCapcutMateApiBase() {
return 'http://capcut.muyetools.cn/openapi/capcut-mate/v1'
}
// ============================================================================
// 主流程
// ============================================================================
function main() {
console.log('素材生产系统 - 环境配置\n')
if (fs.existsSync(CONFIG_PATH)) {
console.log('config.json 已存在,跳过生成')
console.log(` 路径: ${CONFIG_PATH}`)
console.log(' 如需重新配置,删除 config.json 后重跑\n')
return
}
const config = {
jianyingDraftPath: detectJianyingDraftPath(),
capcutMateDir: detectCapcutMateDir(),
capcutMateApiBase: detectCapcutMateApiBase(),
imgbbApiKey: 'deprecated',
geminiApiBaseUrl: '',
geminiModel: 'gemini-3.1-flash-image-preview',
geminiApiKey: '',
}
// 检测结果标注
const jianyingExists = fs.existsSync(config.jianyingDraftPath)
const capcutExists = fs.existsSync(config.capcutMateDir)
console.log('自动检测结果:')
console.log(` 剪映草稿目录: ${config.jianyingDraftPath} ${jianyingExists ? '[存在]' : '[未找到,请确认剪映已安装]'}`)
console.log(` CapCut Mate: ${config.capcutMateDir} ${capcutExists ? '[存在]' : '[未找到,需安装]'}`)
console.log(` API 地址: ${config.capcutMateApiBase}`)
console.log('')
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), 'utf-8')
console.log(`已生成: ${CONFIG_PATH}`)
console.log('')
console.log('请补充以下必填项:')
console.log(' ossRegion - 阿里云 OSS Region')
console.log(' ossAccessKeyId - 阿里云 OSS AccessKeyId')
console.log(' ossAccessKeySecret - 阿里云 OSS AccessKeySecret')
console.log(' ossBucket - 阿里云 OSS Bucket')
console.log(' geminiApiBaseUrl - Gemini API 地址')
console.log(' geminiApiKey - Gemini API Key')
console.log('')
console.log('编辑 config.json 后即可使用。')
}
main()