Show HN: YTPics – Download pictures from YouTube videos (ytpics.com)
Lack of yt-dlp+ffmpeg and screenshots' limited size on my mobile phone prompted me to build a simple tool to download pictures from YouTube videos. Check it out. hope you guys find it useful
40 comments
[ 3.1 ms ] story [ 82.4 ms ] threadYou can also just install vlc in termux and use the command line interface:
ffmpeg -ss ${seconds} -i "${first_url_from_yt-dlp}" -t 1 -r 4/1 -q:v 2 -vf scale="0:-1" ${target}
-r 4/1: 4 frames per second
Again this app is for mobile devices which lack yt-dlp+ffmpeg
Keep in mind you need to make sure to use input seeking, though (-ss before -i).
Also I'm not sure why they need `-vf scale="0:-1"` part.
If yes, could you please share for me here, it'd be really helpful, thanks
But with a little bit extra work you could make that one liner into a script that will extract a range of frames surrounding the chosen timestamp.
When you stop the frame, the video can download the highest res version without any problem, so you get crystal clear glimpse when paused, but blurry images when film is rolling.
If this were the case, when the player is paused and the "higher resolution frame" downloaded, there would be a discernable delay due to network and download latency, which I'm 100% certain is not the case. Pause any YT video and it is instantaneous with no perceivable delay or jank.
Edit: @teitoklien thank you for the correction about Adaptive Bitrate Streaming, I've removed this part of my reply so as to not spread misinformation. Sorry for any confusion!
Look into Adaptive Bitrate Streaming [0]. From what I’ve read HLS does work this way, when combined with Adaptive Bitrate streaming, the segment files are swapped midway depending on user device and connection quality (with each video segment being kept encoded at various qualities to change between as connection quality varies)
The screenshot thing is a fair question tho, why pausing leads to higher res. I think some players, do it custom, for User Experience, so that they can produce clean screenshots on pausing. I’ve seen YouTube do it for sure.
But for you’re main point, you’re objectively wrong, adaptive bit rates and swappable segment files are a thing.
Edit: (Don’t worry about it, being wrong is good hehe, i was wrong 7 times today while doing my work, helped me learn new things 3 out of those times, you helped me question myself and look back at my knowledge too, it’s been dusty for a while. Have a great day!)
[0] https://en.m.wikipedia.org/wiki/Adaptive_bitrate_streaming
With a good DMCA takedown story and compliance, you could potentially claim the copyright is responsibility of your users. And maybe you'll be too small, and the content, in general you are making too inconsequential, or even helpful (marketing wise) for anyone to care. But this is definitely be a project I would get a proper legal analysis of and have clear procedures and plans in place for any issues that may show up.
looks like it just renders the current frame to a canvas element and saves it. https://github.com/gurumukhi/youtube-screenshot/blob/master/...