Try using this: --merge-output-format MP4 I guess this will preserve the original webm video stream, and just pack the AV stream into MP4 container. Do let me know if this worked for you. Answer from Deleted User on reddit.com
🌐
Reddit
reddit.com › r/youtubedl › how to embed thumbnail in yt-dlp?
r/youtubedl on Reddit: How to embed thumbnail in yt-dlp?
January 4, 2022 -

Disclaimer: I just want to mention that I'm not a techy person and I don't really know how to code so please explain as simple as possible!

So I recently changed from youtube-dl to yt-dlp and so far I'm having issues with embedding the thumbnail to my videos

Here is the command I use:

yt-dlp -f bestvideo*+bestaudio/best --sleep-interval 10 --write-sub --sub-lang en --embed-subs --add-metadata --embed-thumbnail https://www.youtube.com/watch?v=Ht4MUoQsRnI -o "[%(upload_date)s] %(title)s.%(ext)s"

However I always get this issue:

"WARNING: webm doesn't support embedding a thumbnail, mkv will be used"

Does anyone know how to fix this?

🌐
GitHub
github.com › yt-dlp › yt-dlp
GitHub - yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader · GitHub
6 days ago - (Alias: --ppa) -k, --keep-video Keep the intermediate video file on disk after post-processing --no-keep-video Delete the intermediate video file after post-processing (default) --post-overwrites Overwrite post-processed files (default) --no-post-overwrites Do not overwrite post-processed files --embed-subs Embed subtitles in the video (only for mp4, webm and mkv videos) --no-embed-subs Do not embed subtitles (default) --embed-thumbnail Embed thumbnail in the video as cover art --no-embed-thumbnail Do not embed thumbnail (default) --embed-metadata Embed metadata to the video file.
Starred by 169K users
Forked by 14.2K users
Languages   Python
🌐
VideoHelp
forum.videohelp.com › forum home › video conversion
YouTube-DL - Embedding Thumbnail in MKV File - VideoHelp Forum
August 15, 2020 - @echo off cd /D "%~dp0" setlocal enableDelayedExpansion set /p video="Paste the video link to download: " youtube-dl ^ -f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best --write-thumbnail --embed-thumbnail ^ --o "L:/VideoSharingSites/%%(title)s.%%(ext)s" ^ !video! PAUSE For the MKV downloaded I then dragged it into MKV Toolnix GUI. I resized the thumbnail file to various sizes as mentioned below. I renamed the file as "cover_land" and dragged it into the attachments tab.
🌐
Reddit
reddit.com › r/youtubedl › youtube thumbnail is being properly embedded to video file, but thumbnail is not being displayed
r/youtubedl on Reddit: YouTube Thumbnail is being properly embedded to video file, but thumbnail is not being displayed
May 11, 2024 -

The goal was to download a 720 resolution video with the best audio available, embed the thumbnail to the file, and save it as an mp4. I'm not sure why the file was saved as an mkv. But it seems like the proper thumbnail was written to the file, but VLC is not displaying the thumbnail as it's "cover art". I used Tag Editor to extract the thumbnail to view it (it is the correct thumbnail). I wanted to ask what I missed in regards to it being saved as an mkv vs. mp4, and also wanted to make sure I'm not missing something else in regards to the thumbnail.

picture of the yt thumbnail

picture showing the thumbnail is attached to the file

picture showing vlc is not identifying the album art

picture of the file

verbose log below:

C:\Users\Mike\Downloads\youtubedl>yt-dlp -f "bestvideo[height<=720][ext=mp4]+bestaudio/mp4" --embed-thumbnail --verbose https://youtu.be/RjO0JCSR7K0?si=mP-qqd_PVG3seshA [debug] Command-line config: ['-f', 'bestvideo[height<=720][ext=mp4]+bestaudio/mp4', '--embed-thumbnail', '--verbose', 'https://youtu.be/RjO0JCSR7K0?si=mP-qqd_PVG3seshA'] [debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8 [debug] yt-dlp version stable@2024.04.09 from yt-dlp/yt-dlp [ff0779267] (pip) [debug] Python 3.11.0 (CPython AMD64 64bit) - Windows-10-10.0.22631-SP0 (OpenSSL 1.1.1q 5 Jul 2022) [debug] exe versions: ffmpeg git-2020-03-12-675bb1f, ffprobe git-2020-03-12-675bb1f [debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.47.0, requests-2.31.0, sqlite3-3.38.4, urllib3-2.1.0, websockets-12.0 [debug] Proxy map: {} [debug] Request Handlers: urllib, requests, websockets [debug] Loaded 1810 extractors [youtube] Extracting URL: https://youtu.be/RjO0JCSR7K0?si=mP-qqd_PVG3seshA [youtube] RjO0JCSR7K0: Downloading webpage [youtube] RjO0JCSR7K0: Downloading ios player API JSON [youtube] RjO0JCSR7K0: Downloading android player API JSON WARNING: [youtube] Skipping player responses from android clients (got player responses for video "aQvGIIdgFDM" instead of "RjO0JCSR7K0") [debug] Loading youtube-nsig.17fd9675 from cache [debug] [youtube] Decrypted nsig ghxr4G0-lNlobt => sH2E3Mkt3Qp5Uw [debug] Loading youtube-nsig.17fd9675 from cache [debug] [youtube] Decrypted nsig Gw6mrP8U7koxMg => 86gcavseAv4_Xg [youtube] RjO0JCSR7K0: Downloading m3u8 information [debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto [debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id [info] RjO0JCSR7K0: Downloading 1 format(s): 609+251 [info] Downloading video thumbnail 41 ... [info] Writing video thumbnail 41 to: $2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].webp WARNING: webm doesn't support embedding a thumbnail, mkv will be used [debug] Invoking hlsnative downloader on "https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1715483004/ei/HN0_ZoLPIvKJkucP-cWBgAE/ip/##.###.###.##/id/4633b4242491ecad/itag/609/source/youtube/requiressl/yes/ratebypass/yes/pfa/1/wft/1/sgovp/clen%3D73044674%3Bdur%3D783.733%3Bgir%3Dyes%3Bitag%3D247%3Blmt%3D1712792024826659/rqh/1/hls_chunk_host/rr4---sn-ab5l6nrl.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/mh/Bt/mm/31,26/mn/sn-ab5l6nrl,sn-p5qddn7d/ms/au,onr/mv/m/mvi/4/pl/19/initcwndbps/1035000/vprv/1/playlist_type/DVR/dover/13/txp/5537434/mt/1715461251/fvip/3/short_key/1/keepalive/yes/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,pfa,wft,sgovp,rqh,xpc,vprv,playlist_type/sig/AJfQdSswRAIgR6ocnVw4ER1n6EXi2PT7eqn7Xyau4ABGB-eEyw-CUOQCIFXz8x5NGnrSl1w_B2w5f-tIDuxczvywe53NN8wOxbJE/lsparams/hls_chunk_host,mh,mm,mn,ms,mv,mvi,pl,initcwndbps/lsig/AHWaYeowRQIgfaI4px16KeTeCC5uKNa_E1RqJ4IubYGgBH6IrAWhXf8CIQChwP8Xt9jXxkqnQ47Umt_Yre89LYTAKYd6slo1JrgOtg%3D%3D/playlist/index.m3u8" [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 150 [download] Destination: $2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].f609.mp4 [debug] File locking is not supported. Proceeding without locking [download] 100% of 69.78MiB in 00:00:58 at 1.19MiB/s [debug] Invoking http downloader on "https://rr4---sn-ab5l6nrl.googlevideo.com/videoplayback?expire=1715483002&ei=Gt0_ZpvfK6WLkucPzr2luA4&ip=##.###.###.##&id=o-AFjz7IvhPDA5H_pzLxQwrM3mGkihGCefLMR-mLo2RYW8&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=Bt&mm=31%2C26&mn=sn-ab5l6nrl%2Csn-p5qlsndr&ms=au%2Conr&mv=m&mvi=4&pl=19&initcwndbps=966250&bui=AWRWj2T85zReDOY9HWPYf6tdOenoiCdc1o6rjolkvSs4zCReCAcI79BEoO93pl8mqZVfUyoWw0Dbj6jo&spc=UWF9f4ujdoBYqeNVesocytj3VP8ek94CeocF37RUEb5VpR81YtD2d3k&vprv=1&svpuc=1&mime=audio%2Fwebm&ns=sK2e2ucooPr_VSkN-EZ2LCEQ&rqh=1&gir=yes&clen=13955530&dur=783.761&lmt=1712780508447942&mt=1715461010&fvip=3&keepalive=yes&c=WEB&sefc=1&txp=5532434&n=86gcavseAv4_Xg&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIhAN72cGHB1PiwC815dFPgk-OyaiIOlLHugGe_960ejsRLAiAwiKv562Me496Se9nxu6MFpqZyCjipKzmjbNfQgsvRpw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AHWaYeowRAIgeX_Q9PQOh1gx83b_8AP2g-_rp1xW_G6hVJX9swYTGnICIBPGW2jyjlZ0JugsVdxyl_QlQNeHpNB75t6Q51-UPzuX" [download] Destination: $2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].f251.webm [download] 100% of 13.31MiB in 00:00:01 at 8.85MiB/s [Merger] Merging formats into "$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].mkv" [debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i "file:$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].f609.mp4" -i "file:$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].f251.webm" -c copy -map 0:v:0 -map 1:a:0 -movflags +faststart "file:$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].temp.mkv" Deleting original file $2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].f609.mp4 (pass -k to keep) Deleting original file $2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].f251.webm (pass -k to keep) [debug] ffprobe command line: ffprobe -hide_banner -show_format -show_streams -print_format json "file:$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].mkv" [EmbedThumbnail] ffmpeg: Adding thumbnail to "$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].mkv" [debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i "file:$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].mkv" -map 0 -dn -ignore_unknown -c copy -attach "file:$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].webp" -metadata:s:2 "mimetype=image/webp" -metadata:s:2 "filename=cover.webp" -movflags +faststart "file:$2 Cheesy Bread Meal Prep for Fat Loss [RjO0JCSR7K0].temp.mkv"

🌐
GitHub
github.com › yt-dlp › yt-dlp › issues › 730
[Question] Possible to embed custom thumbnail (from image)? · Issue #730 · yt-dlp/yt-dlp
August 19, 2021 - But when I do so, I get the following: ['-i', 'thumbnail.jpg', '-map', '1', '-map', '0', '-disposition:0', 'attached_pic', '-c', 'copy'] [debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8 [debug] yt-dlp version 2021.08.10 [debug] Python version 3.7.0 (CPython 64bit) - Darwin-19.6.0-x86_64-i386-64bit [debug] exe versions: ffmpeg 4.4, ffprobe 4.4, rtmpdump 2.4 [debug] Optional libraries: mutagen, pycryptodome, sqlite, websockets [debug] Proxy map: {} [debug] [ParamountPlus] Extracting URL: https://www.paramountplus.com/shows/uefa-champions-league/video/QAwKIRrc1jjTN47xDhAfCBexYklc1
Author   yt-dlp
🌐
Reddit
reddit.com › r/youtubedl › goal is to download audio only and embed thumbnail from yt vids as the album art. best way to do this?
r/youtubedl on Reddit: Goal is to download audio only and embed thumbnail from YT vids as the album art. Best way to do this?
December 9, 2022 -

Need some advice here--up til recently, I used YouTube-dl but I stopped since my old computer broke. On my old computer, I was using YouTube-dl + ffmpg + atomic parsley so I could download the audio only of songs on YouTube, and also get the album art embedded from the video's thumbnail. This all took a lot of effort and struggling over two years ago when I got it set up, since I am not tech savvy so doing stuff in my Mac's Terminal was not easy.

Now, my new computer doesnt have that software installed and I also know YT-dl was getting super slow. Has YT-dlp been the main replacement? Or should I use something else?

All I want to be able to do is: download files that are 1) audio only, 2) the actual audio quality of the file that was uploaded to YouTube (not downgraded even more) and 3) retain the thumbnail art. Any suggestions? Really appreciate it!!

🌐
GitHub
github.com › yt-dlp › yt-dlp › issues › 14041
[Feature] Better way to handle thumbnails · Issue #14041 · yt-dlp/yt-dlp
August 16, 2025 - I'm using the following command to download audio files to crop album art and embed it with artist name: yt-dlp -f251 -x <LINK> --embed-thumbnail --convert-thumbnail jpg --exec-before-download "ffmpeg -i %(thumbnails.-1.filepath)q -vf crop=\"'if(gt(ih,iw),iw,ih)':'if(gt(iw,ih),ih,iw)'\" _%(thumbnails.-1.filepath)q" --exec-before-download "rm %(thumbnails.-1.filepath)q" --exec-before-download "mv _%(thumbnails.-1.filepath)q %(thumbnails.-1.filepath)q" -o "%(title)s.%(ext)s" What I've noticed is the thumbnail is comparatively worse than if you open the video in the highest quality.
Author   yt-dlp
🌐
MusicBrainz
community.metabrainz.org › musicbrainz
Question about YouTube cover art - MusicBrainz - MetaBrainz Community Discourse
March 8, 2024 - Can a print screen from youtube be used for cover art? It is not an official cover but the start of a youtube clip
Find elsewhere
🌐
OmicX
omicx.cc › posts › 2022-08-30-install-and-usage-of-yt-dlp
Install and Usage of yt-dlp - OmicX
August 30, 2022 - $ yt-dlp --format "bv*+ba/b" ... works only for mp4, webm and mkv videos. To embed thumbnail into the video: The option --embed-thumbnail embed thumbnail (if available) on the video as cover art....
🌐
Reddit
reddit.com › r/youtubedl › correct method to add cover art(not only thumbnail) to mp3 files using youtube-dl
r/youtubedl on Reddit: Correct method to add cover art(not only thumbnail) to mp3 files using youtube-dl
November 12, 2021 -

I am trying to extract audio as mp3 from youtube with metadata and the cover art. Currently I am using the below command from bash shell in termux.

youtube-dl -f $audioformat --extract-audio --audio-format mp3 $url -o $storagepath --embed-thumbnail --add-metadata --postprocessor-args "write_id3v1 1 -id3v2_version 3"

This actually downloads mp3 with embedded thumbnail. But when I am downloading multiple mp3 files afterwards the cover art gets messed up(the new mp3 replaces cover art of the first one). I tried several music players in android that uses the cover art of the first mp3 files as cover art of the others. If I move the mp3 files to different location then cover art gets blank. What am I missing here.

In windows I tried Windows Media Player and cover art shows correctly(so the problem is in android only). Also in android file manager thumbnail is correct but the cover art during playing the file is incorrect. Any help is appreciated.

🌐
Luxian
notes.luxian.ro › node › 68
youtube-dl: How to convert landscape thumbnails to square by adding blur using ffmpeg filtering | Luxian's Notes
February 21, 2024 - After spending a few hours researching, here's the final result: a bash function that downloads a video/audio file from a URL supported by yt-dlp, converts it to mp3 320kpbs, and adds the metadata, including the picture, which was transformed to a square by adding blur to fill in the missing parts (similar to the way YouTube adds blur to the vertical videos on the desktop). You can find the code on Github (in case the embedded JS does not load): https://gist.github.com/Luxian/...
🌐
Zorin Forum
forum.zorin.com › customization
Any Ideas? Show embedded mp4 coverart as video Thumbnail in files - Customization - Zorin Forum
July 18, 2024 - For months I am trying to use embedded coverart from mp4 files as the thumbnail for the respective file in the files app (nautilus I assume). All videos were downloaded with the yt-dlp utility and the "--embed-thumbnail" flag enabled.
🌐
GitHub
github.com › yt-dlp › yt-dlp › issues › 6245
Embed the corresponding thumbnail image of the chapter when splitting chapters instead of the same cover image for all chapters · Issue #6245 · yt-dlp/yt-dlp
February 16, 2023 - For example on youtube those thumbnails are shown on the right: I don't know if youtube or the other websites provides a public url for those images, but I guess that those pictures are the first non black keyframes from each the video chapter. Even if youtube or the other websites do not provide it, it would be easy to extract it with ffmpeg and embed it as a cover in the corresponding chapter.
Author   yt-dlp
🌐
Reddit
reddit.com › r/youtubedl › having trouble getting thumbnail and metadata to embed with dlp
r/youtubedl on Reddit: Having trouble getting thumbnail and metadata to embed with dlp
May 12, 2025 -

I always pass the "--embed-thumbnail --embed-metadata" arguments, but DLP never actually does it.

In the CLI output, it'll indicate that it will use mkv since webm doesn't support thumbnails, and I can see the [Metadata] and [EmbedThumbnail] processes executing, but the final file is always missing the thumbnail, and the Details tab in Properties only has the video title, length, and url. Frame rate, resolution, and any other data are missing, and total bitrate is always displayed as 0kbps.

I can't tell what's going wrong. DLP is updated, and I didn't think I needed to specify a container. For reference, here is the full command I usually use:

"yt-dlp --embed-thumbnail --embed-metadata --abort-on-unavailable-fragment --ignore-errors [URL]"

Does anybody know what could be going wrong?

🌐
Linus Tech Tips
linustechtips.com › software › operating systems › windows
[SOLVED] How to display embedded thumbnail of video file instead of auto generated one? - Windows - Linus Tech Tips
April 16, 2022 - I use youtube-dlp to download Youtube videos. yt-dlp is also able to download and embed the original thumbnail in the video file. Sure enough, checking it with mp3tag a 1280x720 png image is in it.
🌐
GitHub
github.com › yt-dlp › yt-dlp › issues › 6861
is it possible to download thumbnails of youtube videos + soundcloud songs along with the video/song itself · Issue #6861 · yt-dlp/yt-dlp
April 18, 2023 - is it possible to download thumbnails of youtube videos + soundcloud songs along with the video/song itself#6861 ... I've verified that I'm running yt-dlp version 2023.03.04 (update instructions) or later (specify commit) I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates ... ive been trying to archive some deleted soundcloud songs and it really sucks to not have the og cover, same with youtube videos.
Author   yt-dlp