@danhachuel/thunderbolt 0.2.31 → 0.2.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MANUAL-INSTALACAO.md +4 -1
- package/README.md +5 -5
- package/app/main.py +12 -0
- package/hermes_ui/storage.py +3 -0
- package/package.json +1 -1
package/MANUAL-INSTALACAO.md
CHANGED
|
@@ -351,8 +351,11 @@ Na primeira execução, a barra lateral apresenta **Início**, **Pipeline**, **A
|
|
|
351
351
|
| YouTube upload principal | Lógica do `youtube-automation-agent` adaptada e executada dentro do Thunderbolt |
|
|
352
352
|
| OAuth directo de redundância | Caminho alternativo accionado automaticamente se o agente falhar |
|
|
353
353
|
| TikTok Client ID/Secret | Credenciais da aplicação; Redirect URI, scopes e autorização ficam no TikTok for Developers Playground |
|
|
354
|
+
| Kaggle Username | Nome da conta Kaggle usada para publicar e executar a kernel remota |
|
|
355
|
+
| Kaggle API Key | Chave da conta Kaggle, guardada mascarada apenas em `storage/state/settings.json` |
|
|
356
|
+
| Slug da kernel Kaggle | Identificador da kernel remota, por padrão `thunderbolt-niche-finder` |
|
|
354
357
|
|
|
355
|
-
As credenciais devem ser inseridas apenas na configuração local. A Data API Key, o OAuth Client ID e o OAuth Client Secret são valores diferentes; Client ID + Secret não geram uma API Key nem um token OAuth até a conta ser autorizada. Não coloque nenhum deles no GitHub, no `package.json`, em blueprints ou em ficheiros de estado versionados.
|
|
358
|
+
As credenciais devem ser inseridas apenas na configuração local. A Kaggle API Key é usada somente pelo executor remoto para publicar a kernel, consultar o estado e obter os resultados pequenos; o dataset não é descarregado para `storage/data/niches`. A Data API Key, o OAuth Client ID e o OAuth Client Secret são valores diferentes; Client ID + Secret não geram uma API Key nem um token OAuth até a conta ser autorizada. Não coloque nenhum deles no GitHub, no `package.json`, em blueprints ou em ficheiros de estado versionados.
|
|
356
359
|
|
|
357
360
|
## 9. Testar as áreas principais
|
|
358
361
|
|
package/README.md
CHANGED
|
@@ -21,12 +21,12 @@ A primeira versão implementa a camada UI independente com:
|
|
|
21
21
|
| Upload | YouTube via `youtube-automation-agent` adaptado internamente, OAuth directo de redundância, Upload directo experimental, TikTok, Instagram e Facebook Pages no front end |
|
|
22
22
|
| MCP | Catálogo local opcional de Short Video Maker, AutoVio, OpenMontage e OpenCut, com portas editáveis e activação |
|
|
23
23
|
| Limpador de Metadados | Upload isolado de vídeos terceiros, limpeza FFmpeg, edição de título/descrição/tags e manifesto JSON |
|
|
24
|
-
| Configurações Técnicas | Provedores LLM, TTS/voz, preview de vozes, Suno, materiais, Whisper, FFmpeg, OAuth YouTube, Data API Key opcional, Upload directo, TikTok Client ID/Secret e Upload-Post |
|
|
24
|
+
| Configurações Técnicas | Provedores LLM, TTS/voz, preview de vozes, Suno, materiais, Whisper, FFmpeg, OAuth YouTube, Data API Key opcional, Kaggle Username/API Key, Upload directo, TikTok Client ID/Secret e Upload-Post |
|
|
25
25
|
| Launcher | Execução via `npx`, instalação assistida, diagnóstico e preparação para distribuição |
|
|
26
26
|
|
|
27
27
|
Os adaptadores do MoneyPrinterTurbo e de publicação nas plataformas são ligados pelas configurações locais e pelos pontos de integração em `integrations/`. A UI não inventa dados quando um serviço externo ou credencial não está disponível.
|
|
28
28
|
|
|
29
|
-
## Navegação da UI 0.2.
|
|
29
|
+
## Navegação da UI 0.2.32
|
|
30
30
|
|
|
31
31
|
A barra lateral mantém apenas os cinco níveis principais, nesta ordem: **Início**, **Pipeline**, **Automação**, **Niche Finder** e **Configurações**. **Pipeline** é expansível e contém **Criação de Vídeos**, **Criação de Músicas**, **Upload** e **Limpador de Metadados**. **Configurações** é expansível e contém **Canais**, **Blueprints**, **MCP** e **Configurações Técnicas**. O Início reúne o dashboard e as filas do Pipeline, sem botões de acções rápidas.
|
|
32
32
|
|
|
@@ -109,9 +109,9 @@ thunderbolt
|
|
|
109
109
|
No Windows PowerShell, se `npx` for bloqueado por `npx.ps1`, use directamente `npx.cmd`:
|
|
110
110
|
|
|
111
111
|
```powershell
|
|
112
|
-
npx.cmd --yes @danhachuel/thunderbolt@0.2.
|
|
113
|
-
npx.cmd --yes @danhachuel/thunderbolt@0.2.
|
|
114
|
-
npx.cmd --yes @danhachuel/thunderbolt@0.2.
|
|
112
|
+
npx.cmd --yes @danhachuel/thunderbolt@0.2.32 install
|
|
113
|
+
npx.cmd --yes @danhachuel/thunderbolt@0.2.32 doctor
|
|
114
|
+
npx.cmd --yes @danhachuel/thunderbolt@0.2.32
|
|
115
115
|
```
|
|
116
116
|
|
|
117
117
|
Como alternativa, pode permitir scripts para o seu utilizador:
|
package/app/main.py
CHANGED
|
@@ -1028,6 +1028,17 @@ def render_settings():
|
|
|
1028
1028
|
youtube_client_id = text_setting("YouTube OAuth Client ID", "youtube_client_id", help_text="Client ID do OAuth 2.0 criado no Google Cloud. É usado para iniciar a autorização da conta YouTube.")
|
|
1029
1029
|
with youtube_cols[1]:
|
|
1030
1030
|
youtube_client_secret = text_setting("YouTube OAuth Client Secret", "youtube_client_secret", secret=True, help_text="Client Secret do mesmo cliente OAuth 2.0. Não é uma API Key.")
|
|
1031
|
+
|
|
1032
|
+
with st.expander("Niche Finder — execução remota no Kaggle", expanded=True):
|
|
1033
|
+
st.caption("O dataset permanece no Kaggle. O Thunderbolt usa estas credenciais apenas para publicar/executar a kernel e obter os resultados pequenos da análise.")
|
|
1034
|
+
kaggle_cols = st.columns(3)
|
|
1035
|
+
with kaggle_cols[0]:
|
|
1036
|
+
kaggle_username = text_setting("Kaggle Username", "kaggle_username", help_text="Nome de utilizador da sua conta Kaggle, sem @ e sem URL.")
|
|
1037
|
+
with kaggle_cols[1]:
|
|
1038
|
+
kaggle_api_key = text_setting("Kaggle API Key", "kaggle_api_key", secret=True, help_text="Chave criada em Kaggle > Settings > API. Nunca é incluída no notebook ou no GitHub.")
|
|
1039
|
+
with kaggle_cols[2]:
|
|
1040
|
+
kaggle_kernel_slug = text_setting("Slug da kernel", "kaggle_kernel_slug", help_text="Identificador da kernel remota, por exemplo thunderbolt-niche-finder.")
|
|
1041
|
+
|
|
1031
1042
|
with st.expander("Consulta oficial de métricas — opcional"):
|
|
1032
1043
|
st.caption("A YouTube Data API Key é uma credencial Google Cloud separada do OAuth. Só é necessária se escolher o método YouTube Data API para consultar métricas oficiais. Não é necessária para Página pública — sem API Key, para autorizar OAuth ou para fazer upload.")
|
|
1033
1044
|
youtube_api_key = text_setting("YouTube Data API Key (opcional)", "youtube_api_key", secret=True, help_text="Credencial separada, criada em Google Cloud > APIs e serviços > Credenciais > Chave de API. Não cole aqui o Client ID nem o Client Secret.")
|
|
@@ -1148,6 +1159,7 @@ def render_settings():
|
|
|
1148
1159
|
settings.update({
|
|
1149
1160
|
"port": port, "moneyprinter_path": moneyprinter_path, "youtube_api_key": youtube_api_key,
|
|
1150
1161
|
"youtube_client_id": youtube_client_id, "youtube_client_secret": youtube_client_secret,
|
|
1162
|
+
"kaggle_username": kaggle_username.strip(), "kaggle_api_key": kaggle_api_key.strip(), "kaggle_kernel_slug": kaggle_kernel_slug.strip() or "thunderbolt-niche-finder",
|
|
1151
1163
|
"direct_cookie_sid": direct_cookie_sid, "direct_cookie_ssid": direct_cookie_ssid, "direct_cookie_hsid": direct_cookie_hsid, "direct_cookie_apisid": direct_cookie_apisid, "direct_cookie_sapisid": direct_cookie_sapisid, "direct_session_info": direct_session_info, "direct_innertube_api_key": direct_innertube_api_key, "direct_chunk_size": direct_chunk_size,
|
|
1152
1164
|
"log_level": log_level, "listen_host": listen_host, "listen_port": listen_port, "video_source": video_source,
|
|
1153
1165
|
"endpoint": endpoint, "proxy_http": proxy_http, "proxy_https": proxy_https, "match_materials_to_script": match_materials_to_script,
|
package/hermes_ui/storage.py
CHANGED
|
@@ -81,6 +81,9 @@ DEFAULTS: dict[str, Any] = {
|
|
|
81
81
|
"youtube_api_key": "",
|
|
82
82
|
"youtube_client_id": "",
|
|
83
83
|
"youtube_client_secret": "",
|
|
84
|
+
"kaggle_username": "",
|
|
85
|
+
"kaggle_api_key": "",
|
|
86
|
+
"kaggle_kernel_slug": "thunderbolt-niche-finder",
|
|
84
87
|
"llm_provider": "moonshot",
|
|
85
88
|
"moonshot_api_key": "",
|
|
86
89
|
"moonshot_base_url": "",
|
package/package.json
CHANGED