App.razor tinha <!DOCTYPE html> + blazor.web.js que conflitavam com
blazor.photino.js do index.html. App.razor montado dentro de #app
não pode ter wrapper HTML — simplificado para apenas <Routes />.
- App.razor: remove HTML/head/body/blazor.web.js
- index.html: adiciona Bootstrap, traduz para pt-BR, fix #blazor-error-ui
- MainLayout.razor: remove link Semantic Kernel e #blazor-error-ui duplicado
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Photino.Blazor busca wwwroot em bin/Debug/net8.0/wwwroot/.
Content Update garante cópia sem conflito com itens implícitos do SDK.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Redirecionar stderr sem consumir o buffer causa deadlock quando FFmpeg
escreve muito (codec info, progress). Removida a redireção — stderr
vai para o processo pai (API console).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove projetos mortos: VideoStudy.Native (MAUI), Controllers/LicenseController
- Remove serviços não usados: FFmpegService, HardwareIdService, LicenseManager,
PdfGeneratorService, ScreenshotService, TranscriptionService do UI
- Remove dependências pesadas do UI: Whisper.net, YoutubeExplode, QuestPDF
- Remove PuppeteerSharp e SkiaSharp do API (150MB Chromium não é mais necessário)
- Screenshots agora usam FFmpeg diretamente (mais simples, mais confiável)
- YouTubeService reescrito para chamar /api/video-info em vez de YoutubeExplode
- Adiciona campo UserContext em AnalysisRequest (contexto livre do usuário)
- UI traduzida para português; aba de arquivo local removida (nunca funcionou)
- YouTubeProcessor simplificado: sem modo Advanced/Whisper
- GetYtDlpPath busca yt-dlp.exe subindo até 7 níveis de diretório
- Cookies do yt-dlp configuráveis via YtDlp:CookiesBrowser no appsettings
- Chave Groq agora lida de env var GROQ_API_KEY (appsettings.json sem segredos)
- VideoStudy.Linux (Photino) adicionado à solução como host multiplataforma
- yt-dlp atualizado de 2025.01.26 para 2026.03.17 (fix do nsig extraction)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>