7 ms·
Show HN: YTPics – Download pictures from YouTube videos
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
- hiAndrewQuinn 3y agoThis is exactly the kind of thing I need for grabbing images for my Finnish news backup and studying site. Thank you!
- darrenf 3y agoBy "pictures" does this mean individual frames? FYI on desktop using an up to date Chrome, you can right click twice – slowly, not a double-click – and choose "Save video frame as..." (on macOS, at least)
- web0_cc 3y agoThats true. its for mobile devices which lack desktop browser features and extentsions
- explaingarlic 3y agoStill helps to know that you have a consistent way of doing it, especially if you do it a lot.
- abrugsch 3y agoAlso works on Windows, Firefox (labeled as "Take Snapshot" though)
- Brajeshwar 3y agoI tend to use VLC for this. http://www.videolan.org/ http://www.videolan.org/
- cyrusmg 3y agoHow is that done ?
- Brajeshwar 3y agoVLC has the option to “Take Snapshot” and it can play online media. This is unless I'm missing something very obvious!
- gsky 3y agoIn the description it says app is for mobile devices
- Brajeshwar 3y agoMy bad; I'm sorry for jumping into conclusions.
- the_third_wave 3y agoVLC runs on mobile devices: https://www.videolan.org/vlc/download-android.html https://www.videolan.org/vlc/download-android.html
- pxeger1 3y agoIt’s nowhere near as powerful though, and I don’t think it can do this particular task.
- the_third_wave 3y agoIt is a full port of VLC so it should be able to handle this task. You're probably referring to the frontend which differs from the ones used on desktop but that does not mean the functionality is not available. It is, you just access it differently. Either enable the 'Take a screenshot' option (Controls Settings -> Take a screenshot) and use that or send an intent to do so. The former works while watching videos, the latter makes it possible to automate this task from within termux, Tasker or Automagic. You can also just install vlc in termux and use the command line interface: ~ $ apt search vlc Sorting... Done Full Text Search... Done vlc/stable 3.0.18-7 aarch64 A popular libre and open source media player and multimedia engine vlc-qt/x11 3.0.18-7 aarch64 A popular libre and open source media player and multimedia engine vlc-qt-static/x11 3.0.18-7 aarch64 Static libraries for vlc-qt vlc-static/stable 3.0.18-7 aarch64 Static libraries for vlc
- Qwertas 3y agoThis addon works perfectly for this https://chrome.google.com/webstore/detail/screenshot-youtube/gjoijpfmdhbjkkgnmahganhoinjjpohk https://chrome.google.com/webstore/detail/screenshot-youtube...
- bastijn 3y agoI giggled at "This extension does not contain any malicious or tracking code. No viruses. No ads. Only good software.". If only everybody added this statement we would not have malicious addons.
- 55555 3y agoA one line combination of YouTube-dl and ffmpeg can do this btw (without downloading the whole video)
- KeplerBoy 3y agoThis would be a good place to share that one line.
- web0_cc 3y agoyt-dlp ${youtube_video_url} --get-url 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
- tjoff 3y agoNice, if you install termux (from fdroid) you can run it directly on your android.
- vitehozonage 3y agoDoes this really not download the whole video? I havent checked but im just surprised that it's possible
- thrdbndndn 3y agoNo it doesn't. FFMPEG can seek video directly without loading all the content, even for Dash/HLS (but in this case yt-dlp typically returns a plain HTTP source, which I assume internally FFMPEG uses HTTP header range to seek?) 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.
- edotrajan 3y agoIs it possible to get one screenshot from different periods of the same video like 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80% with just one command. If yes, could you please share for me here, it'd be really helpful, thanks
- KomoD 3y agoJust works, no complaints from me
- Beijinger 3y agoI have extracted frames with vlc before before. They always look like shit. Like with a lower resolution. Why? Like if you freeze a youtube video the pic looks clean.
- lupusreal 3y agoI think that's just VLC being VLC, or maybe VLC's youtube support doesn't get the high quality streams. When I play youtube videos with mpv (which uses yt-dlp), 's' to snapshot produces clean images.
- thebruce87m 3y agoIf you use ffmpeg with png you will get sharper images. I was trying to extract a numberplate once and this worked out best.
- Retr0id 3y agoIt's basically an optical illusion. When things are in motion, your brain is better at ignoring the compression artifacts. When they're still, they're glaringly obvious.
- throawayonthe 3y agoparent comment specifically said that when frozen in player it looks clean
- teitoklien 3y agoDuring streaming, lower res image frames are sent, to avoid buffering as much as possible, depending on your internet speed the res increases or decreases 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.
- metadat 3y ago> 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!
- veggieWHITES 3y agoVery cool. Just curious, is this legal? I would assume the legality falls on the user of the service?
- SamBam 3y agoDo any armchair lawyers (I know, I get what I pay for) want to chime in on the legality of creating user-definable 3-5 second gifs of YouTube videos, which link back to the video in question, for an online video curation library thing?
- Arelius 3y agoI mean, you will almost certainly be in a constant state of creating material in violation or copyright. Depending on the details of any specific copyright violation, it may be protected by Fair-use, and the length and lack of audio will likely help in your favor. But you'd have to defend those cases individually in court to even begin to make a fair-use argument. And I dont see how you could ever win any blanket decision in your favor. 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.
- rkagerer 3y agoIt would be neat if your UI let you step through frames (visually) to find the exact one you want.
- adellsworth 3y agoI use this ff add-on which adds a handy button direct to the player itself: https://github.com/gurumukhi/youtube-screenshot https://github.com/gurumukhi/youtube-screenshot looks like it just renders the current frame to a canvas element and saves it. https://github.com/gurumukhi/youtube-screenshot/blob/master/content_script.js#L35-L46 https://github.com/gurumukhi/youtube-screenshot/blob/master/...