Repository navigation
Add the Baixa.ai MVP for public media downloads - #1
Merged
Merged
Conversation
A FastAPI service extracts Instagram, TikTok, and X links with yt-dlp and streams the file, and a Next.js page in Brazilian Portuguese sends people to those downloads. Co-authored-by: Natália Granato <nataliagranato@ufmg.br>
Single YouTube videos can be remuxed up to 1080p or saved as MP3, and the site now follows a black-and-white layout in light and dark mode. Co-authored-by: Natália Granato <nataliagranato@ufmg.br>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
Public, ad-free page where someone pastes a link from Instagram (post, Reel, or public Story), TikTok, X, or YouTube and downloads the media. The API never logs in, never sends cookies, and does not keep the file after the response finishes.
api/: FastAPI plus pinned yt-dlp. Host allowlist now includesyoutube.com,m.youtube.com, andyoutu.be, including Shorts. Playlists and live streams are rejected. YouTube video options keep the progressive file and add merged H.264 + AAC up to 1080p (ffmpeg remux,-c copy, no video re-encode). Every video also gets Baixar MP3 (192 kbps, one ffmpeg thread). Temp files are deleted after streaming.MAX_FILE_BYTESand the download timeout still apply.Sign in to confirm you're not a bot) returns a Portuguese explanation. Datacenter IPs such as Render's are often blocked; the README says so. The API does not try to log in around it.web/: same single page, now in a monochrome layout (Geist Sans and Geist Mono, 1px borders, system light/dark). No Vercel logos or assets.Verification
tsc --noEmit, andnext build.Página clara
Página escura
Opções de vídeo e MP3
Playlist do YouTube recusada no celular
The preview card uses a local stand-in response so the screenshot does not pull a real video. The API tests build that same shape from mocked yt-dlp data. The playlist error is the live API.
Still needs a person
render.yaml(or the Docker service inapi/). Ifplan: freeis rejected, use the smallest web instance. YouTube downloads from that IP may fail the bot check.web,NEXT_PUBLIC_API_URL=https://api.baixa.nataliagranato.xyz.baixa.nataliagranato.xyzandapi.baixa.nataliagranato.xyz.DOWNLOAD_TOKEN_SECRETfrom the blueprint. Do not commit it.uvicornneeds ffmpeg on the PATH for MP3 and YouTube remux.To show artifacts inline, enable in settings.