Transcript for:
Overview of Automatic Ripping Machine

if you've ever tried ripping your media collection so that you could stream it with Plex or jelly fin well you probably know the drill first you pop in your disc fire up make MKV pick the right files wait for it to rip import the files into handbrake tweak the settings wait again properly name everything move it all to the right folders update your Plex or jelly fin library and then finally you can sit down and enjoy your show or movie but what if instead you could just do this pop in the disc and then I don't know go make a cup of coffee pet your dog compete in a home lab challenge with a fellow YouTuber you just live your normal life and then a bit later you could just turn on your TV and Bam there's your movie ready to go well that's actually possible thanks to something called automatic gripping machine so let's talk about [Music] it now automating the process of ripping discs is great because it saves me so much time something I don't seem to have much of these days between family and work trying to find time to exercise or stay active is pretty tough but fortunately there's the auto incline walking treadmill from today's sponsor flexi spot this thing is perfect for someone like me who spends way too much time at a desk but wants to stay active and I'll be honest when I first heard about this I wasn't all that interested mostly just because my space is already cramped enough as it is but as it turns out this thing is super easy to move around and store away which means I can easily stay active while writing scripts building computers making a sandwich or even while filming this ad it comes with a handy wireless remote that lets you adjust speeds select one of the six preset programs or adjust one of the nine different incline levels plus it even has a built-in Bluetooth speaker so you can listen to your favorite music podcasts or YouTube videos and it's easy to hear because well this thing's actually fairly quiet but just because it's small and quiet doesn't mean it's flimsy it has a 275 lb capacity and comes with a 2-year warranty so if you're wanting to easily stay active while in the office or when working from home make sure to check out the auto incline walking treadmill from Flex spot by using my link down in the description below so to automate this process of ripping discs we're going to use something called arm and actually no not this kind of arm arm is an automatic ripping machine I believe arm originally started as just a collection of scripts but has since evolved into an actively maintained open source project it works by detecting when a CD DVD or Blu-ray disc is inserted into an optical drive automatically launching make MKV to rip the content optionally running handbrake to transcode the files into an optimized format and then properly naming and moving them to the correct directory ensuring seamless integration with media servers like jellyfin now this all sounds great but does it actually work well yes and no there are definitely some quirks and issues with this but I'll get to those here in a bit first let's talk about what all you need to run arm I originally planned to run this on this HP proant Nas that I did this complete overhaul on a while back but because it took me so long to actually get around to doing this video I've since sort of stolen quite a few adapters and parts from that build so it's just kind of sitting right up there looking pretty uh but it doesn't really work so instead I decided to build a test system in this antc 300 case which actually used to be my Nas this case works really well because it has room for some hard drives but also has 3 5 and a/4 inch Bay for disc drives which we obviously need when it comes to DVDs things are pretty simple you just need a decent working DVD drive like this one from light scribe that I have here but if you're trying to rip Blu-rays in particular Ultra HD or 4K Blu-rays well you're probably going to need to flash some firmware to make sure your drive is compatible with something called Libra drive now I actually covered this in a previous video where I did some DVD and Blu-ray ripping so I'll link that video down in the description but I'll also just put the guide that I originally followed down there as well and here I'm using that same Blu-ray reader from LG that I used in the previous video but it's a little hard to tell because I've since spray painted it black now along with your working disc drives you're also going to need some available Solid State Storage most likely this can just be your boot Drive I say this because you're probably going to want some relatively fast storage for the directories where MKV stores the raw files and also where it stores the transcoded media while it's using handbrake if you're trying to run those directories on spinning discs or on some slower network attached storage or something like that you might actually see some slowdowns in the ripping and transcoding process now for the final media you're probably going to want some bulk hard drive storage or maybe a network attached storage device or something like that and if you're already running something like jelly fan or Plex you can probably just use whatever storage you're using for those libraries in my test system I'm using a 1 TB NVM SSD for the boot drive and then just just a couple of 4 TB hard drives that I'll use later on for some storage I'm just using a relatively older motherboard with an Intel i79700 but it really doesn't matter what CPU you use just be aware that if you use a blow-in CPU or a CPU that uses a lot of power you might end up having longer transcode times or maybe a higher electricity Bell now you might be wondering especially if you're a fan of the channel why I'm not talking about Hardware accelerated transcoding and technically arm does support Quicks sync for Intel gpus invin for NVIDIA gpus and vce for AMD gpus use but it also sort of doesn't but once again we'll get to that here in a bit you can install arm natively onto a Linux operating system but it's recommended at least at this point in the development cycle to just use Docker now if you're watching this video and considering following along and setting up arm for yourself you'll probably want to make sure you're familiar with Docker if you're not there's plenty of resources online where you can look up what it is and get a basic understanding of what containers are and how to set them up because this runs in a container you can install it just about anywhere on a server running unraid traz painer really just any Linux operating system that can run Docker but for testing things out I decided to start out with just a plain install of dean2 later on though I'll show you how I actually set this up in proxmox in conjunction with trunz and a jellyfin server so let's hop over and I'll show you how we can get arm set up and running all right so over here I'm ssed into my machine that's running dean2 over here I have the install instructions on the arm GitHub now really quick this isn't going to be like a full guide on how to install Debian 12 and how to install Docker this video would get way too long if I I tried to do that you're going to have to have some prerequisite knowledge of Docker and Linux uh coming into this but I can at least kind of show you my process of how I got it installed how I got it running and some of the issues I ran into okay now over here in the arm instructions there actually is a link to just the docker image on dockerhub and you can just copy this Docker run command and get going if you kind of do what you're doing there's also this helpful script they have if you're running this on Debian or runtu or whatever so I already ran this app to install WG and LS scuzzy so we can actually just type in LS scuzzy DG and here it's a I had this text zoomed in but you can see we have our SSD but then we also have these two drives here our Blu-ray Drive and then our DVD drive which are /dev sr0 and sr1 which that's just helpful to know because we're going to need to pass those through to the docker container now this second script here we can go ahead and get that and all this script is going to do is it's going to create an arm user and group if they don't already exist it's going to install Docker if it's not already on the system it's going to pull the image and then create these Mount points for any DVD drives found on the system now if you have a basic understanding of Docker and user permissions and stuff you don't need to run this script but it does make things a little bit helpful so I'm going to go ahead and run this okay great so if I go to list home/ arm we can see we have this start arm container. sh and if we uh edit that we'll see we have a few things here we have the port which we'll just keep it 8080 we have this arm user and group which we'll need to set that up and then we have quite a few directories we need to set up and then we have our devices for our DVD drives which which we'll need to edit those as well and the only thing else we need to change is the CPU pinning down here which is optional I like to keep like a core at least available to the host operating system that way if it's transcoding the whole system doesn't bog down and I actually already edited this to Just 2 through 7even I have an8 core CPU so I wanted to keep uh core0 and one available and then 2 through 7 can be available for the docker container that's going to depend on your CPU but if you're curious you can type in a LS CPU and then- AE and that should list out all of your CPUs and which core they belong to and you can look up CPU pinning or CPU Affinity if you're curious now for the user and group ID we can just type in id- for user and then arm and we get 1,1 and we can do the same thing with G for group and we also get 1,1 so we can actually go back into our container here and we can edit those values and replace this with 1,1 and 1,1 and if you're familiar with Docker and permissions this really doesn't matter you just need to make sure that whatever user you provide here has permissions to the folders we're about to create and as you can see here we need one folder that's just slome arm which should be pretty easy and then we need a music folder logs media and config so we already have our slome arm but we need to make a few more directories so we can do make directory media music logs and config if we list this out we can actually see that all of these folders are owned by root so we can fix that by typing in Chone C I don't really don't know how to say it- R and then arm arm and we'll just do everything in this folder and now this should all be own owned by arm which fixes any permissions issues now another thing we can type in again is that LS scuzzy to make sure we have R2 disc readers which are mounted atdev sr0 and sr1 like we saw earlier so now we can go back to our little darker run command and we can fix these paths so this should be pretty easy we can just go we'll set that up to slome arm here we'll do the same thing put slome SL AR slashmusic and you get the gist okay and then down here we don't need this Sr 3 or sr2 so we can just get rid of those and then everything else looks good so we should be able to exit out of this or save it and now we can actually run this script which is just that Docker run command and if we type in Docker PS we can see that this is up and it looks healthy so if we actually hop over to that IP address on port 8080 oh gosh we're going to switch to dark mode but I'll zoom in a little bit we can see we have this automatic grouping machine dashboard here and we can log in by just using the default which is admin password and we'll start by going to settings here hopefully we should see both of our two disc drives if you don't you can hit scam for drives and if they still don't pop up then you'll need to figure out why that's not working but we have both of our disc drives here in fact I can actually don't know if You' hear that yeah I can actually control the disc drives remotely which is Handy but yeah we have our arm dashboard and we could start ripping something but we would run into one issue right away because we don't actually have an API key to look up whatever the title is of whatever DVD or Blu-ray you put in there and so if we go to settings here we can go to Ripper settings and if we scroll all the way down we can see there's this omdb API key which by default this is the API that it uses to look up titles and we don't have an API key here which we will need now if you're only doing movies you could use the uh the movie database API but if you want to do shows as well you'll have to use this omdb API and so that's fairly easy to set up if you go to the website you can come up here to where it says API key and you can request a free API key for uh you only get a th000 daily uses and I tried doing this and I couldn't get it to work I only tried once so I didn't try too hard uh but I thought this was a cool thing that I was fine with supporting so I actually became a patron on their patreon and from there I was able to get an API key and then once you have that you can just paste it into the settings however as far as I can tell you're supposed to be able to use this settings window to just paste this in and hit submit but I can never get that to work so instead we're just going to hop over to the terminal again and now we can actually go to Nano our config folder and then this arm. yaml and this is that same config and if we go all the way down to the bottom we have where we can submit our API key so I'm just going to type that in there and then save this file and now we can just run Docker restart arm rippers hit enter and then if we go back to our settings that API key should now be there so we can start ripping so I'm just going to start with something uh simple I have this DVD for The Road to El Dorado I'm going to pop this in all right we'll give this just a second but oh there it is you can see right here we have The Road to El Dorado it popped up and uh the scaling is a a little Jank here but if we click on this we can actually see some of the information it was able to find it with the API and it's currently scanning to see what titles are on here all right so that one worked pretty well but what if we try a different movie like The Emperor's New Groove all right so I popped in The Emperor's New Groove but as you can see we have uh the centuries of the Emperors 1971 through 1973 and this is actually a TV series uh because well this omdb is not extremely accurate so what I can fortunately do is go to title search I can just get rid of the year and I can just type in Emperors hit search and we can see right here there's the emperor New Groove Movie 2000 update Title and now the title is updated and this should work properly but that kind of brings me to some of the things that don't work super well with automated ripping machine uh there are definitely times where the the database just doesn't work it doesn't pull up the right title and sometimes like with The Emperor's New Groove it thought it was a series which can really mess things up if you're not paying attention another thing that can kind of be an issue is well for example if we hop into this Road to El Dorado if we hop down here we can see these are the actual files on here that it's going to rip and we can see well there's not just one because when you're ripping DVDs and Blu-rays it's it's rare that there's just one big media file on there there's usually a lot of little files we have what probably looks like the main feature because it's the longest thing but there's these other files here that well it's going to rip and transcode and we may not need those now this probably isn't a huge deal with DVDs cuz the files are so small and the The Ripping and transcoding is going to be pretty fast but things can get a little worse if you're dealing with some Blu-rays like this copy of up for example where it ripped like four different copies of the movie for like four different languages and had I not stepped in well it's going to rip all four of those and transcode all four of those which really makes the process take quite a bit longer now there are a few ways around this one is to enable something called main feature and basically what that does is instead of ripping all the individual files and then transcoding them all it'll pull everything off of the disc and then let handbrake use its main feature tool to try to decide what the the main feature file is and only rip and transcode that so if you want to use that you can enable it by going to the edit settings every time you put a new dis in or you can go into the config file the arm. AML and find where it says main feature and change this to True which means by default that main feature thing will be checked now here it says you have to set up this rip method equals backup for Blu-ray discs uh which is in the make MKV section of this config but that didn't seem to be the case for me I never enabled that I never changed it from the default uh MKV method and this main feature thing still seemed to work so the main feature tool is one that can help you save space and save time by only transcoding that main feature file but sometimes it doesn't work I actually had a couple of movies where I think there was like a 16x9 version and a 4x3 version and the handbrake tool couldn't decide which one to use so it ended up just failing so then I had to start over make sure the main feature was disabled and then it would work so it's a little bit Hit or Miss now the other way of solving which files to pull is to do it manually so if you go into the settings and you find where our dis drives are you can change these from drive mode Auto to drive mode manual unfortunately you can do this per drive it's not a global setting so you could have like a drive for movies and a drive for shows because for shows it it's really common for like a season of a show on a DVD to have a file for each episode but then also to have a massive file that's just all the episodes all back to back which would be like the play all feature in the menu and so you probably want to have this manual setting turned on so that when you put the dis in it will look and find all the files that are on the dis and then you can just manually select which ones to rip and transcode now to do that as I said you'll have to go into the drive settings and set the drive to manual mode and then hit update to save those settings and then back on this main dashboard whenever you put the dis in you have 30 minutes I believe after it scans everything to come in here and check which ones you want and then you can hit update and after that it'll pull all the stuff you tell it to and nothing else I'll try to show you that here in a second oh yeah another issue I had was I was ripping a season of parks and wreck the disc went in it ripped everything it kicked the disc out automatically which it does which is helpful that way you know when it's done you can go grab the disc and whatnot but then it just reinjected again and they're supposed to be an avoid duplicates feature that happens but uh as you can see here that didn't happen and it just kept ripping this disc and putting all like nine of those files in a new folder then transcoding them all and then kicking the disc out and kicking it back in and then ripping all the media off transcoding it again kicking it back out kicking it back in and just kept going and like I said there's supposed to be this Auto duplicates feature but I think it's based off of the name of the folder but sometimes it renames the folder with like a bunch of random characters at the end so there aren't duplicates it's weird sometimes the duplicate thing works sometimes it doesn't and it seems odd I feel like it could be pretty easy to implement this in a way here I'll show you if I go into the logs here and I go find this Road to El Dorado and I just do the full log you can see early on uh it identifies this disc hash here this DVD crc4 hash and this was actually used I think to look up the title with a different database that actually seemed to work better because it B it off of the hash of the disc so it was a lot more accurate but I think that database was run by like Microsoft or something and it it no longer works so they had to switch over to the omdp database which is why it's a little bit more hit or miss but anyway it does pull this hash still and so to me I feel like it would makes sense that they implemented some sort of feature to where if there was a job that had the same hash within the the last x amount of jobs that it would say oh that's a duplicate it got reinjected we'll just we'll make sure we don't read that but it didn't so I just kept getting all of these copies of the show uh so be careful if you have set up to Auto eject if your disc drive is like mine where it seems to just after a minute or two kick itself back in you might end up with this issue where it just keeps ripping everything off and backing up all your trans code jobs oh hey one of our discs is done so that's one of the features I kind of hinted at but one the thing that's kind of cool is whenever it's done ripping everything off it will kick the disc out you can put another disc in and start ripping something but it actually isn't completely finished if we go back to our homepage we can see this Road to El Dorado is now in the transcode process so it ripped all the files off it's now transcoding it to uh a preset in handbrake and uh the disc is out and we can actually throw something else in I'll actually take this as an opportunity to show the manual mode so if we go to settings we can go to our DVD drive which is this one right here and we'll change the drive mode to manual we'll hit update now I'm going to put in this parks and wre season 2 Disc so that's in there now and you can actually see this is kind of cool we only have two disc drives but we actually have three jobs currently running and we can actually make that four cuz I'm also going to toss in a blu-ray really quick all right cool and now you can actually see we have four jobs going uh this one didn't seem to find the title we can just go to title search I'm just going to do up no idea why that's not working see like I said there can be some quirks uh so we can go to custom title and we're just going to call it up with year 2009 oh we can also go to uh edit settings I'm going to do this main feature option and I'm going to change the dis type to Blu-ray hit submit it doesn't give me any feedback here the UI can be a little uh there's feedback here once I get back to the dashboard it submitted but uh yeah it's kind of odd we can do the title but we can't tell it that it's a movie and so it's going to put it in this undivine folder once it's done so that we have to manually move that over to the movies it's a little odd it's a little irritating there's a lot of things about the UI that are a bit irritating oh and that reminds me I want to be really clear I I always feel a little bit awkward being critical of Open Source software it's being developed by people for free I think it's amazing that they're doing this project but if I'm making a video potentially showing people how to use this I want them to be aware what they're getting into and what some of the current issues and downsides are but even with some of the issues you can start to see how effective this can be you can see with just like even two disc drives you can be ripping and simultaneously transcoding like three four five six things at a time oh actually we just got a notification here if we head over to parks and wreck it's waiting 30 minutes for us to pick the titles and so we don't get a ton of information here but we can at least get the runtime looks like there is eight of these that pretty much all have the same runtime and if we look in the case we can see actually seven episodes so this would make sense what we can do is we can say we want these I don't want this big file because that's probably all seven episodes just in one big video file so we don't want that and then these are probably like bonuses deleted scenes commentary stuff like that so we just want the main videos here and we can hit update and this is final once you hit update you can't go back so we'll hit update and now it's going to start processing all of those but just the files that we picked overall it's working decently well I will say the UI is is not the best it is pretty awkward and kind of janky sometimes but it at least gets the job done for the most part movies whenever the database works and the um main feature option works pretty well movies are pretty straightforward it's pretty seamless TV shows take a little bit of manual work but it's still less manual work than what you would be dealing with if you were just running make MKV on your own oh yeah we've actually had one of our videos complete uh the emperor New Groove is done so if we go to the media and completed folder and then movies we have a folder for the Emperor's New Groove and if we click on here we have our finished MKV and it works you can also see in these folders we have our raw folder for example The Road to El Dorado this is where the raw files live and then as it's being transcoded it's going here and then once it's done then it ends up in a nice pretty folder in the completed side of things now one thing you might have noticed and I kind of mentioned earlier was that down here where it says Hardware transcoding support uh it says that Intel Quicks sync is supported and that's because it recognizes that we have an Intel is 79700 which has integrated graphics and can technically support quicksync but well by default the docker container doesn't have all of the drivers and packages you need to actually use quicksync this would work with quicksync if you manually installed all of those packages but with Docker it doesn't and there's not an official way to fix that now fortunately I found this custom Docker file from po I have no idea how to say that I'm so sorry but basically he set up a Docker file that uses the original arm container image and sets it up so that it installs all of the necessary packages and stuff to get Quicks sync running so I just copied his Docker file right here and so I can do Docker build- T and we're just going to call this arm- qsv and we can build this custom Docker image that's the exact same image as the arm image we already using but it does come with the support for quicksync all right that took quite some time to get that ready but now we type in Docker images and now if we type in Docker images we can see we have our automatic ripping machine image we also have this Custom Image this arm - qsv so now we can go back to this command we had earlier but we're going to edit just a couple of things we can keep everything the same but for the final image we're just going to change this to arm- qsv and then we also need to pass through the integrated graphics and then now sadly even though we have some things running I'm going to stop this Docker container and then remove it and then we can restart our new Docker container by just rerunning that start arm file and then now if we hop back into the web dashboard we're here these say they're still running I'm pretty sure based off of my past experience testing this they're going to fail here in a bit but oh well all right so we have this container running it technically supports quick sync but if we just run things as is it's not actually going to use Quick sync because if we look in the config uh under handbrake preset for a DVD we have this HQ 720p surround and then for Blu-rays we have this HQ 1080p surround so we're going to need to change those so once again we can just go in and change our config and here for the DVD preset I'm just going to use this h265 qsv 1080p and then for the Blu-ray I'm going to use this 4K preset and then if we saved it like this it would work but I'm not a big fan of the the default quality settings on those profiles so what we can actually do is go down here to the additional Arguments for DVD we're going to add quality = 18 and encoder preset equals quality and then for the Blu-ray option we'll also add quality equals 22 and encoder preset equals quality now you can look up the handbrake documentation and decide these settings on your own but this is what worked for me and gave me better speed because I was using hardware acceler transcoding and it was more efficient but the quality wasn't just terrible all right so now we should be able to save this and then we can just restart our container and then I just dropped in this Lost Empire of Atlantis DVD which should pop up here in a second and once this rips we should see that we're actually going to get Hardware accelerated transcoding working and it's going to be quite a bit faster and quite a bit more efficient all right so that rip actually finished entirely if we go to the database tab here and if we look at the logs and we'll see once we hit handbrake we uh we start encoding here and we can see we were actually getting like in the high 200s nearly 300 frames per second over 300 frames per second at times which makes sense for Intel integrated graphics with DVD quality videos if you get up to like 4K Blu-rays that encoding time in my experience at least was closer to like 24 frames per second with this i79700 but still much faster than if we're trying to do it with software and if we watch this it's DVD quality so it wasn't great to start with but you know it's fine to give you a better idea this up file here was also transcoded using the same settings and this is 108 P it still looks pretty decent so yeah that's pretty much it everything's working with Hardware accelerated transcoding but well how would you implement this into a like home lab setup or something well like I said earlier there's quite a few ways you could take exactly what I did and install this in like TR scale or an unraid and there's actually documentation you can go find in the unraid forums people who have gotten this set up and worked out some of the quirks with like permissions and such but I actually went a different route and I actually installed proxmox on this system and let me hop over to that really quick all right so I've rebooted the system I just swapped out the SSD with an SSD that has proxmox installed and I also hooked up those two hard drives that I mentioned earlier because well I hadn't been using them up until now but I did use them in proxmox so here in proxmox you can see I have a few things running first of all I have this traz VM which I passed through the two hard drives to Via just passing through the sa controller and here I have this pool with 4 terab of usable space and I have my shares set up and everything and then I also have jelin running in an lxc container and if I hop into that you can see that under mount I have this uh jelly folder mounted which is just a shared folder mounted from the tras VM and then for arm well looking back on it I probably could have just run it in this trunz VM if I wanted to but if I ran it in a Docker container inside a VM I wouldn't be able to use Hardware accelerated transcoding unless I just tried to pass through the entire integrated Graphics which is a huge pain and then that means jelly fin can't use it so I was like okay I'm going to try to run it in an lxc container and so that's what I tried to do here you can see even in the lxc configuration I tried passing through um the two DVD drives and a few other things to try to get udev working but I I kept running into this error with udev for some reason and that caused issues with um arm so that was kind of a pain so instead I just set up a VM with auntu server and then basically configured arm exactly like I did in the last setup I just didn't enable Hardware accelerator transcoding because I don't have a GPU to pass through what I did passed through though was the ca controller because well since I had already passed the hard drives through to tunaz I needed a way to pass through the dbd drives to my VM for arm and so I just use this cheap little dual SATA controller for that if I look at the folder structure here it's basically the same but if you look at the fs tab you can actually see I mounted uh this share from my truna server to this folder at slome arm SL completed and so for example if we list completed and then movies we can see we have this Atlantis the Lost Empire right here of this folder for it and then because in jelly fin it's mounted to the exact same share it can pull that movie and we can watch Atlantis so essentially that's how you would incorporate this into any sort of Home up setup where you're also running Jelly fan or Plex and you may have a Nas setup basically you just have to make sure that the completed folder is mounted to where your jelly faner Plex server can access it and then essentially it just drops the finished movies or shows in the correct folders with the correct names hopefully into the folder where jelly fin or Plex can find it and that's how it works like I said it's not perfect if you're really hoping that this would be a process where you can completely forget about it and never have to touch it it's just not going to to be the case that being said compared to manually ripping everything with make MKV manually transcoding it all this is still way faster in my opinion and can definitely speed up the process so I'm actually going to be leaving this system put together for a bit because well I actually have quite a few DVDs and Blu-rays that we've just never ripped because I didn't have a good setup so I and I could sit down on a Saturday afternoon and I don't know play some balers gate and kind of in the meantime just drop in a few Blu-rays and DVDs and just sort of monitor it and make tweaks as needed and it still does a lot of the work in the background which which is really helpful so it's a little bit Hit or Miss it's not perfect but it's definitely a useful tool if you're a person with a big media library and you're looking for a relatively quick and easy way to rip that and get it ingested into your media library hopefully you guys enjoyed taking a look at the automatic ripping machine I really hope they continue to develop this and make improvements as is though it's still pretty cool so shout out to all the developers who have helped make this happen I think that's about it for this one though so as always thank you guys so much for watching stay curious and I really can't wait to see you in the next one [Music]