Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
Transcrição com timestamps de vídeos do YouTube via CLI, API HTTP e página web
Translation pending
Developer toolsPython · JavaScriptGitHub @LucasLouvemOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Transcrição com timestamps de vídeos do YouTube, a partir das legendas existentes. Funciona pelo terminal (CLI) e por uma página web servida por uma API HTTP, na porta 3000.
[00:00:12] Antes de investir em uma empresa,
precisamos analisar seus fundamentos.
[00:00:19] O preço de uma ação não determina,
sozinho, se ela está barata ou cara.
asdf install, versão em .tool-versions).venv)python -m venv .venv
.venv/bin/pip install -r requirements-dev.txt
.venv/bin/pip install -e .
source .venv/bin/activate
ytscript "https://www.youtube.com/watch?v=VIDEO_ID"
ytscript "https://youtu.be/VIDEO_ID" > transcricao.txt # salvar em TXT
Transcrição no stdout; erros no stderr. Saída: 0 sucesso, 1 erro, 2 argumentos inválidos.
uvicorn ytscript.api:app --port 3000
Abra http://localhost:3000, cole a URL e clique em Transcrever. A página mostra título, canal, duração e idioma do vídeo, e permite escolher idioma, formato (.txt/.srt/.md), timestamps, copiar e baixar. A API fica em POST /api/transcripts ({"url": "...", "language"?, "translate_to"?}) e GET /api/health. O POST é limitado por IP a 10 requisições por minuto e 100 por dia, com teto global de 2000 por dia (YTSCRIPT_RATE_LIMIT, YTSCRIPT_RATE_WINDOW, YTSCRIPT_DAILY_LIMIT, YTSCRIPT_GLOBAL_DAILY_LIMIT); acima disso responde 429. Detalhes em architecture.md.
Para scripts e automações, gere uma chave e informe-a no servidor:
python -c "import secrets; print(secrets.token_urlsafe(32))" # gera a chave
export YTSCRIPT_API_KEYS="chave1,chave2" # no servidor (várias, separadas por vírgula)
curl -X POST http://localhost:3000/api/transcripts \
-H "Content-Type: application/json" -H "X-API-Key: chave1" \
-d '{"url": "https://youtu.be/VIDEO_ID"}'
Com chave valem limites próprios: 30 por minuto e 1000 por dia por chave, 5000 por dia no total (YTSCRIPT_KEY_RATE_LIMIT, YTSCRIPT_KEY_DAILY_LIMIT, YTSCRIPT_KEY_GLOBAL_DAILY_LIMIT). Chave inválida responde 401; chaves com menos de 32 caracteres são ignoradas. Para revogar, retire a chave da lista e faça novo deploy. Nunca commite as chaves.
O FastAPI roda como função Python (entrypoint app.py) e public/ é servida pelo CDN. Como cada requisição pode cair numa instância diferente, o rate limit precisa do Redis: adicione a integração Upstash Redis ao projeto (Marketplace da Vercel) e confira em Settings → Environment Variables se UPSTASH_REDIS_REST_URL e UPSTASH_REDIS_REST_TOKEN (ou KV_REST_API_URL e KV_REST_API_TOKEN) foram criadas. Não há banco de dados nem cron: os contadores expiram sozinhos. Sem essas variáveis o limite cai para a memória do processo e deixa de valer na prática.
black --check .
pytest
Documentação em docs/: arquitetura, commits, código, testes, erros.
youtube-transcript-api usa endpoints não oficiais.