Ok, this will be a tad long but I want to share how I am downloading YouTube videos so everything makes sense and I will note I am doing this all from Windows 11:
I have created a directory on my machine called yt-dlp and in that directory I have the following files and all these files will be without quotes in the name but using them here for explanation:
-
a blank file named ‘archive.txt’
-
a blank file named ‘list.txt’
-
ffmpeg files from the ffmpeg bin folder extracted which you can grab the latest release here Builds - CODEX FFMPEG @ gyan.dev and extract the three files from the bin directory ffmpeg-release-full.7z version
-
Grab the latest yt-dlp.exe file from this location and place it in the same directory Releases · yt-dlp/yt-dlp · GitHub
-
I created a batch file named yt-dlp.bat (create a text document and include in that text document the following without quotes ‘yt-dlp.exe’ and save the file called yt-dlp.bat and change the ‘Save as Type’ to All Files so it doesn’t save it as a .txt document instead as a .bat file.
So in this directory named yt-dlp (doesn’t matter where it is located on your machine just that all the files are in the directory) archive.txt, ffmpeg.exe, ffplay.exe, ffprobe.exe, list.txt, yt-dlp.bat, and yt-dlp.exe
So in that ‘list.txt’ document you can add any youtube file or playlist to download url. For an example I want to grab all the Doug DeMuro content that gets uploaded to youtube so I place in that text file the following: https://www.youtube.com/@DougDeMuro/videos and you can add whatever playlist, youtube file or channel you want and it will grab any new content that is made available. If you want multiple playlists or channels just add it to the next line right below the previous one.
Now this is where the magic happens and the content gets downloaded correctly in the format needed:
In your user folder location 'C:\Users{user id}\AppData\Roaming directory create a new directory called ‘yt-dlp’ without quotes
In this directory create a text document called config.txt and you want to put the following items in this directory (just copy and paste):
# Self-Updater command
-U
# Save all videos from a uploader to a seperate uploader folder
-o "O:/Youtube/%(uploader)s - [%(channel_id)s]/%(title)s - [%(id)s].%(ext)s"
# Save all playlist videos to a single folder named of the playlist no matter the uploader
#-o "O:/Youtube Playlists/%(playlist_uploader)s - %(playlist_title)s/%(title)s - [%(id)s].%(ext)s"
--embed-thumbnail
--write-thumbnail
--convert-thumbnail jpg
--embed-metadata
--embed-chapters
--embed-info-json
--embed-subs
--write-info-json
--download-archive archive.txt URL
-a list.txt
#End playlist up to 50 of the latest videos
--playlist-end 50
#After download everything (video, audio, and subtiles), merge them all into an mkv container. You can use mp4 if you prefer that
--merge-output-format mp4
So where the directory listed in this item says -o "O:/Youtube/%(uploader)s - [%(channel_id)s]/%(title)s - [%(id)s].%(ext)s"
Just change that to the directory you want the videos to save (change the O: to whatever drive you are going to use)
The command right below that: #-o "O:/Youtube Playlists/%(playlist_uploader)s - %(playlist_title)s/%(title)s - [%(id)s].%(ext)s"
If you want to use that directory structure if you are setting up a playlist from the list.txt file will download it to the playlist folder. Just remove the # from that item, and put it in front of the one above so it rems that command out.
Once you have that config.txt file saved in the directory above in your user id folder, go back to your yt-dlp directory you had all the files located in and launch the yt-dlp.bat file and yt-dlp command window should launch and grab the content you specified in the list.txt file.
First the -U will make sure you have the latest yt-dlp and will download the latest if you don’t so this will self update. Then the archive.txt will add the videos it has downloaded and add it to this file (as an example of one: youtube MR212FJIEpE) which will make it so Youtube doesn’t grab that video again and skips it with you launch the yt-dlp.bat the next time. The --playlist-end 50 command if you change the 50 to whatever number you want that will only grab the last 50 videos in the playlist or channel. So you can change that to whatever you want, or you can put a # in front of it and it will grab all the videos.
Then in Plex, create a brand new video library and just use the ‘Other Videos’ and then include both the (from my example) O:/Youtube and O:/Youtube Playlists from the ‘Add folders’ and then in advanced you don’t need to change anything there (I unchecked ‘Enable Cinema Trailers’ since I didn’t want to see a Trailer before the videos.
Once this scans in, it should show the Youtube Metadata grabbed from the config.txt script above without needing to have a metadata agent installed in Plex. If you are not seeing the correct metadata on the video files once it scans just do click the three dots hamburger menu on the video and ‘refresh metadata’ which should bring back the metadata.
This was the longest post I have wrote but this seems to have fixed youtube videos not showing metadata. The only downside to this, any youtube videos you grabbed before doing this, you will need to regrab so the data is provided for the video files.
If you have any other questions I will try my best to answer, but I have spent the last week doing different things to try to get metadata back into Plex and this seems to have fixed it for me. ![]()
Update: Doing this method, the youtube member channel you have scanned into Plex will be the actor for that channel. So back to my Doug DeMuro example, all the videos from Doug DeMuro channel, he will be the actor for those videos in Plex, so you can search in Plex library for actor and that will show youtube channel creator for those videos.