 So, in a number of previous videos, I showed you how to use the developers console, developers tools to get HAR content, that's HTTP archive resources, I believe is what that stands for. For example, here in Brave Browser or any Chrome browser, but really any modern browser, you can open up the developers console, usually by hitting F12 or some other key, and you can navigate to network, and then you'd want to refresh the page to make sure everything is loaded down here, and you get a list of everything that has loaded on that page. Every font, every script, every image, audio file, video file, unless they've gone through measures to try to hide that from you, in which case you might have to do a little more digging, but you can right click this and you can say, well you can say save all as HAR with content, which gives you all the images and sounds and videos all embedded in one file, but you can also go copy as HAR, which you can then take, and I'll just paste in the shell here, gives you some JSON format output that basically is just every file that loads on that page, the URL for it, and information on it, so you can dig through that and scrape this web page a little bit better. Go ahead and clear that, but let me do that, but without using our browser, we're going to use our shell, and we're going to use a program called PhantomJS, so on a Debian-based system I'm using absolute, I'm going to search for PhantomJS, and as you can see, I already have it installed, if you don't have it installed, PseudoAppt install PhantomJS, and you'd be able to install it on most Debian-based systems, as long as it's in your repositories, as you can see it's a monolithic, headless, webkit-based browser with JavaScript APIs, so basically you can write JavaScript code and run it right in the shell here to scrape information from websites, and if you go to the project page, it's up on GitHub, they have a lot of good examples, and this one's called Netlog, and what this does, basically you give it a URL and it's going to give you that HRA information, so what are we going to rip down this time? Well recently, if we go back to my Films like Chris website here, you can see I did a video on live streaming Facebook videos using MPV or VLC, which is very simple to do, and I used that developer's console to get the video we need, but someone recently asked me on that video, how do you download streaming video? Well, I haven't really looked into downloading the streaming video, but I've looked into downloading videos from Facebook, and most of the live streams, once they're done live streaming, they're available to view, and you can use this technique to download them, so it's kind of sort of answering the question. So, yeah, let's move forward. Oh, also, normally I would use something like this, I would use YouTube DL, which is a great program, which you should install, if you haven't, and it's great for downloading not only YouTube videos, but it will download videos from a lot of different websites, and in the past, I'm pretty sure it worked with Facebook, but I haven't been able to get it to work lately, but they're constantly updating it, so if Facebook changes something, they'll probably have an update soon that, well, I do that, but we're going to do it without YouTube DL, we're going to do it ourselves. So, I uploaded a video to Facebook just for this. It was just a one minute, 30 seconds, me talking about how I'm going to make this video, I need an example video. Once I go to here, I'm going to grab this URL, which is usually Facebook.com, some sort of number, or usually, sometimes it's a name like it could be filmed by Chris, since that's my page, didn't put it there, video, and then an ID for that video. So, I'm going to take that, and actually, before we even take that, we need to get this sample code from the GitHub page. So, I'm going to take that, and I'm going to just download it. So, there it is. And anytime you download code, you know, especially something small like this, you should definitely look at it. You can look at it. It's very, very simple, very self-explanatory here. Anytime it's saying console, that's basically printing to our shell here, but you can see here, it's going to check to make sure you gave it an argument. If you didn't, it's going to print usage message, and then exit. And then, if you do give it an argument, it should be the address to a web page. And then, it will just basically spit out all that HRA content as JSON until it's done, and then it will exit. Okay? So, now that we have that, to run it, we're going to just type phantom.js, which, again, I just installed the name of the script. And if you run that again, it will ask us to give it an argument of a URL. So, let's go ahead and do that, and I'll put it in quotations here. I will take this Facebook page that links to this video, and I'll put it in there. And again, it will dump out the HRA for that page. Now, we can go through the look, but we can see right here, the very last thing to load is an MP4, which may very well be our video. I'm going to tell you right now, there are a bunch of links for MP4s on here, because there's other links on that page, other videos. But if I take that, I can say copy that address, and I'll use MPV as an example. I can do that, and yeah, it is that video. If that was not the proper link, something you could do is again, dump that information, you can use jq to scrape through it, but I'm just going to grep for dot mp4. And you can see that I should get, you know, a number of lists here, and we can, you know, crop that down a little bit more, we can say cut dash, with the delimiter of quotation mark dash field four, and then I'll grep for lines that have HTTPS, and that should narrow it down quite a bit, giving us just some URLs, and I can sort unique that, and then I can loop through those till I get the right one. But again, when we ran that without any of that, we were very lucky in this particular case, the very last output is the actual video that we're looking for. Again, if I take that, and I copy the URL MPV. And that is a link to the actual MPV. So now you can use use W get or curl, put in that URL, and we'll give it a name dash, oh, and if it's W get, it's capital, oh, if it's curl, it's lowercase, oh, let's say, me dot MPV, because it's a video of me, or sorry, MP4. And you can see it's downloading it, or it can show you right here that it's a video MP4, you can see the size, we can look at it here, we can file it to make sure that it says that it's an MP4. And of course, we can now play that file or do whatever we want with it. So that's it. That was just a quick look at this. Again, I'll put a link to the in the description of this video to this example code from the phantom.js project, it's called netlog.js. Very short, very simple to understand. And you can give it the, you know, any page I can take this. And again, I can say phantom.js, our script, I can give it not that just faster phantom.js, netlog. And you're going to want to put this in quotations because URLs can tend to have special characters in them that will mess things up. But there you can see all the the HRA data from my website, which is a lot of YouTube thumbnails, because it is loading that page and actually running the JavaScript on it, unlike just using like Wget or curl, which isn't going to allow the JavaScript on that page to run. Again, my website, if you have notices, very easy to use in the shell. Again, if you just click shell, it gives you directions on how to use my website from the shell using M3, WM3, Wget, curl. If you try to go straight to my site with one of those, it will actually bring up these directions for you. But that's because I'm kind and design my websites properly for users like you. So yeah, check that out. Link in the description. And as always, I hope you have a great day and I hope that someone answered the question of how download videos from Facebook. That way you don't have to go to one of these third party sites because there are websites out there you can go to and they'll download the video for you in a pinch. But you should be able to do it yourself. And again, I'm very, very surprised. Again, if I go back here, take this in the past, I should be able to say YouTube DL. And I did check I am at the current YouTube DL version that just came out a couple days ago. But I'm getting an error here. I haven't looked much into it. It seems like it's an SSL error of some sort. But I'm not even worried about that because I can do it myself without YouTube DL in this particular case. So again, Filmsbychrist.com is my website. There you can search through all my videos, software and scripts I've written. You can also support me through PayPal or through patreon.com. And if you go to patreon.com forward slash metal X 1000, you can support me there monthly. And I would appreciate that if you can. I hope you're staying safe. Hope you're staying healthy. And as always, I hope that you have a great day.