feat(minimax): add Group ID support to fix rate limit quota

Pass GroupId query param to Minimax T2A v2 API — required for paid
plan quota allocation. Without it, Minimax defaults to (0/0 used).

- shared/schema.ts: groupId field on minimaxConfig table
- server/migrate.ts: ADD COLUMN IF NOT EXISTS group_id
- server/routes/reels.ts: fetch and pass groupId alongside apiKey
- server/services/ffmpeg.ts: minimax_group_id in request interface/body
- ffmpeg-service/main.py: GroupId in URL, threaded through all call sites
- client/src/pages/settings.tsx: Group ID input in Minimax settings card
This commit is contained in:
Michael committed 2026-05-18 13:50:41 +02:00
1 parent cf20b0a264
commit 0209c3eacf
6 files changed
+61 -9

No files matched your search

+8 -1
View File
@@ -15,6 +15,7 @@ interface FFmpegReelRequest {
tts_voice?: string; // Voix TTS (ex: fr-FR-VivienneNeural)
tts_provider?: string; // Provider TTS: "edge_tts" (défaut) ou "minimax"
minimax_api_key?: string; // Clé API Minimax (requis si tts_provider=minimax)
minimax_group_id?: string; // Group ID Minimax (requis pour quotas corrects)
word_duration?: number; // Durée par mot (default: 0.6s)
font_size?: number; // Taille police (default: 24)
music_volume?: number; // Volume musique (default: 0.25)
@@ -76,6 +77,7 @@ export class FFmpegService {
ttsVoice?: string;
ttsProvider?: string;
minimaxApiKey?: string;
minimaxGroupId?: string;
wordDuration?: number;
fontSize?: number;
musicVolume?: number;
@@ -97,6 +99,7 @@ export class FFmpegService {
tts_voice: options.ttsVoice,
tts_provider: options.ttsProvider,
minimax_api_key: options.minimaxApiKey,
minimax_group_id: options.minimaxGroupId,
word_duration: options.wordDuration ?? 0.6,
font_size: options.fontSize ?? 64,
music_volume: options.musicVolume ?? 0.25,
@@ -181,6 +184,7 @@ export class FFmpegService {
ttsVoice?: string;
ttsProvider?: string;
minimaxApiKey?: string;
minimaxGroupId?: string;
wordDuration?: number;
fontSize?: number;
musicVolume?: number;
@@ -202,6 +206,7 @@ export class FFmpegService {
tts_voice: options.ttsVoice,
tts_provider: options.ttsProvider,
minimax_api_key: options.minimaxApiKey,
minimax_group_id: options.minimaxGroupId,
word_duration: options.wordDuration ?? 0.6,
font_size: options.fontSize ?? 64,
music_volume: options.musicVolume ?? 0.25,
@@ -304,7 +309,8 @@ export class FFmpegService {
text: string,
voice: string,
ttsProvider?: string,
minimaxApiKey?: string
minimaxApiKey?: string,
minimaxGroupId?: string
): Promise<{ success: boolean; audioBase64?: string; error?: string }> {
const config = this.ensureConfigured();
@@ -320,6 +326,7 @@ export class FFmpegService {
tts_voice: voice,
tts_provider: ttsProvider,
minimax_api_key: minimaxApiKey,
minimax_group_id: minimaxGroupId,
}),
});