
Youtube Video, Shorts & MP3 Downloader
Pricing
$9.99/month + usage

Youtube Video, Shorts & MP3 Downloader
[𝗖𝗵𝗲𝗮𝗽𝗲𝘀𝘁 𝗣𝗿𝗶𝗰𝗲] YouTube Video, Shorts & MP3 Downloader effortlessly extracts download links from YouTube videos in multiple resolutions: 8K to 360p. It provides separate video, audio & a merged Video link along with detailed metadata. Bulk Processing (Support 1000+ URLs & TXT file)
5.0 (1)
Pricing
$9.99/month + usage
7
Monthly users
29
Runs succeeded
>99%
Response time
21 hours
Last modified
5 days ago
HTTP Error 403: Forbbiden When Trying to Download the video from the download link
Open
Hi,
We keep getting http eror 403 when downloading from the download link. We are using python and triggering it via code. We are downloading results to a CSV reading the csv into pandas, and then triggering downloading

Thanks for reaching out. To help troubleshoot the 403 error you're seeing, could you please share a screenshot of the code you're using and any relevant logs? That'll help me understand exactly where the issue might be happening.
light_grimace
I tried many things but the main error is this one:
Streaming videos: 0%| | 0/26 [00:00<?, ?it/s] ❌ Failed: 403 Client Error: Forbidden for url: https://rr2---sn-p5qs7nzk.googlevideo.com/videoplayback?expire=1745453903&ei=7y4JaIO6OIelir4Ps8OV6AM&ip=38.158.178.30&id=o-AJA8sksSkvqws7LrW6qW6y1H1uh9nHhMSRhqnmzI7Gow&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&bui=AccgBcPyZlZzLJoeKKd1V7OHO6j1W3p3SpikBZpDve_bc7uJkv-preyU-pweSoWHB2uiwKpalclWDPrk&vprv=1&svpuc=1&mime=video%2Fmp4&ns=NqLl1kSb_VAN6JhwupyoGHEQ&rqh=1&gir=yes&clen=531233551&ratebypass=yes&dur=29175.222&lmt=1743910615767301&lmw=1&c=TVHTML5&sefc=1&txp=5438534&n=q-m8Rp608sJieg&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRAIgWQ55CSa6BdICCnhRyPqJ-7Tu7qKD44rl90YL50oFQX4CIAmqmLy8Qe8IhK9Wu3FeZhFhurcF7tCqLYY8AnwDaDNy&rm=sn-ounjvhh-acce7z,sn-q4fell7l&rrc=79,104&fexp=24350590,24350737,24350827,24350961,24351173,24351431,24351495,24351528,24351542,24351545,24351638,24351643,24351672,24351704&req_id=23a3748db20736e2&rms=rdu,au&redirect_counter=2&cms_redirect=yes&cmsv=e&ipbypass=yes&met=1745443496,&mh=PU&mip=44.192.64.3&mm=29&mn=sn-p5qs7nzk&ms=rdu&mt=1745442338&mv=u&mvi=2&pl=18&lsparams=ipbypass,met,mh,mip,mm,mn,ms,mv,mvi,pl,rms&lsig=ACuhMU0wRQIgf07V2apN3y063zQ-z5dqWF2K2eXvXFtoqshR4VtalCECIQDV2wRQuA9ksYskmys6HZcZnam3Zp_IYeQWq1XoOOcvcw%3D%3D Streaming videos: 4%|▍ | 1/26 [00:01<00:33, 1.33s/it]

I totally understand how frustrating it can be to run into errors. While I can’t provide a specific solution without seeing the code, it does seem like the issue might be related to saving the video from Google’s server.
If you can share the relevant part of your code, I’d be happy to take a closer look and help debug it.
light_grimace
What part of the code do you need? I am just doing a simple function to get the video out of broswer
def stream_to_s3(mp4_url: str, s3_key: str): headers = { "User-Agent": ( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " "AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/114.0.0.0 Safari/537.36" ), "Referer": "https://www.youtube.com", "Origin": "https://www.youtube.com", "Range": "bytes=0-" } url = clean_url(mp4_url) with requests.get(url, stream=True, headers=headers, timeout=30) as r: r.raise_for_status() s3.upload_fileobj(r.raw, BUCKET, s3_key)
light_grimace
That is the latest version so not what I started with

The code you shared doesn’t seem to be the complete version. It would be really helpful if you could share the full code, a screenshot, or even push it to a repo and send the link.
Also, from what you've shared, I don't see how you're using an Apify Actor to retrieve the data.
Pricing
Pricing model
RentalTo use this Actor, you have to pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage.
Free trial
2 hours
Price
$9.99