Rick's b.log - 2021/01/31 |
|
It is the 21st of November 2024 You are 3.133.140.88, pleased to meet you! |
|
mailto:
blog -at- heyrick -dot- eu
These days, however, if you look to the video, you'll see it is a bunch of little pieces each with a
What it is, is exactly what it looks like. Chunked video. I think the point is that each chunk can be adapted to your available bitrate (like how Netflix gets really blocky in poor reception, which is often better than pausing to buffering...buffering...buffering...).
Copyright is complicated, so one can assume that films made and released prior to 1927 are out of copyright in the United States. It used to be 75 years. The CTEA (in 1998) added twenty years, but notably did not re-copyright movies whose copyrights had expired, so some movies made prior to 1946 may be out of copyright. This covers the "Goldern Era of Hollywood". But, note, that while a film's copyright might have lapsed, it isn't public domain if it is based upon a book or play what is still in copyright. Then there's the dubious question of automatic renewal of copyright. And, in the US at least, some films might never have had copyright if they didn't state it or didn't state it correctly (the US was really late in implementing automatic copyright in 1978). Yeah, it's complicated!
PS: Note that colourised movies date from the release of the colourised version, not the original, so most are not out of copyright.
Google for public domain movies. You'll find such treats as Night Of The Living Dead (1968, the movie was retitled and the new title omitted the copright notice, so it immediately became public domain!), Little Shop Of Horrors (the original, 1960), Charade (1963, misworded copyright notice, immediately became public domain!), House on Haunted Hill (1959), Carnival of Souls (1962, missing copyright notice), Plan 9 from Outer Space (1959, the very definition of "so bloody crap it's almost good"), various Shirley Temple films if you can stomach them, Santa Claus Conquers the Martians (1968, and with a title like that...), A Bucket of Blood (1959, costing $50K and shot in five days, the ultimate in low budget filmmaking), and of course It's a Wonderful Life (1946).
And, of course, I am not responsible for what you may or may not choose to download. It's up to you to have the fun of trying to work out copyright eligibility in your country, and accept consequences of downloading.
This tutorial will concentrate on Android in order to demonstrate that you can do it quickly and easily on the go. The same principles will apply to desktop versions (Windows, Linux...).
There are several incarnations of FFMPEG for Android. This is the one I recommend. FFMPEG is free software, so you shouldn't be paying for the app, and you'll need the ability to customise the command line that you give to the application.
Once you have found a video of your liking, and made sure that it is actually playing and is actually the video that you think it should be...
Tap the three dots on the right of the URL bar to open the menu, and then tap on the entry for UBlock Origin.
Ignore the tab that opens. Switch back to the tab with your video and reload it. Then start playing the video again.
What that window is showing is a list of everything that was requested in fetching the page. Things in red were blocked, and things in blue are canonical names (that means, a name that points to something else - this isn't always a weird thing, on this site, heyrick.co.uk points to heyrick.eu).
Reading the list backwards, you will see a group of entries listed in the sixth column (before the URL) marked as
There is, however, a little trick to how these work. Your browser cannot just begin playing, it needs to know what it has to play, and this is determined by a special file sent before the video.
Look down the list for the first xhr link, and when you see it, tap the second column for that entry. A dialogue should pop up giving further information on that request.
What you are looking for here is a file that ends with
If you find that, copy the entire URL (all that gibberish).
Now, quickly check the second-to-last xhr entry. Some sites like to send a bogus m3u8 file first, with the real one following. I suspect this is to defeat extensions that automatically scan for media to grab. If the second one is also an m3u8 file, copy that.
How this is done depends upon your version of Android and whatever tweaks the manufacturer might have made. Generally, drag down to open the notification panel and look for a little cog wheel symbol to get into Settings.
When you find it, remember the setting (to restore later on), and then set it to Never.
When you first open the app, it will look like this:
The GUI is useful for setting up local conversions quickly, but it isn't what we want today. So tap on the
The screen will change to a command line. Erase whatever is there, you don't want it.
Replace it with the following:
In between the first set of quotes, paste that long link that you copied from UBlock's logger, so things should look like this:
When you are happy with that, tap the green arrow at the bottom right to begin.
FFMPEG will get on with the task of retrieving the video. Every so often it will briefly pause while opening a URL. This is normal, each chunk is a different file that needs to be fetched individually.
IMPORTANT: FFMPEG is extremely sensitive to disturbances. DO NOT switch to another task. DO NOT let the device put itself to sleep. DO NOT use it somewhere where the signal can drop out. Plug your device in to its charger (recommended), and then leave it to get on with things. How long it will take depends upon the server and your internet speed.
When it is done, it will say so. But, then, it generally reports this even if it failed, so you should check that the values make sense. Is the indicated time what you expected it to be? In my case, the time is a little short, it lost connection at around 97% or so. I'm happy with that, as it will just be the end of the credits that got clipped off. Better lose that than waste time downloading it all again.
Don't forget to set your sleep timeout back to its previous setting (or about 2 minutes if you don't remember what it was).
How to download TS chunked videos
Once upon a time, some video sharing sites used to offer to stream videos to you by providing an embedded link to an mp4
or an mkv
file. If you could pluck out the underlying URL, you could download the video. Doing such a thing may be useful if you want to watch the video in a place where reception is likely to be poor or non-existant (like car, plane, when camping, etc).
ts
extension. What the heck is this? How can it be downloaded?
The obligatory warning
You should not use the methods described here in order to pirate movies that you are too cheap to pay for. However it may be useful for things that you either missed or could not fully watch on normal broadcast television (technically copyright infringement, but I'd be a liar if I said I never downloaded something I couldn't fully watch on TV to see how it ended), for things that are not legally available to you (a lot of foreign films, sadly, but Netflix is trying to change this; and it is technically copyright infringement), or for movies that are out of copyright (this depends upon your country and how hard Disney has bribed lobbied your politicians).
PPS: Don't watch colourised versions of black and white movies. They're generally awful.
Prerequisites
What you'll need:
Note - UBlock Origin is nothing to do with UBlock, don't mix them up!
Expect something in the order of 700MB to 1GB for an average movie.
Finding a video
You're on your own for this step. All I shall say is to avoid anything with the text "123movies" in the title. That closed down ages ago, those clones that remain are... about as safe as playing with landmines in an active warzone - you're more likely to get malware than a movie.
In the tab that appears, tap the third icon along, it's a diagram a little bit like a window.
Getting UBlock Origin ready.
When the video begins playing, pause it.
Getting the correct link
Switch back to the tab you opened just now. It should look something like this.
The list of requests.xhr
. This means it is an XMLHttpRequest - and these are your video chunks.
Request information..m3u8
, as shown in this screenshot.
Prepare your device
FFMPEG is extremely sensitive to disturbances. I suspect it is because it is calling a subtask, and Android's power management is aggressive, to say the least.
So you will need to switch your device to not put itself to sleep after a period if inactivity. It is normal for a phone or tablet to turn itself off if you don't use it after so long (usually 2-3 minutes). We do not want this to happen.
When in Settings, search for "timeout
". You're looking for "Screen timeout". If that doesn't work, try searching for "sleep
" in case it is labelled Screen -> Sleep.
Setting up FFMPEG
Now time to leave the browser and set up FFMPEG to fetch the video for us. We use FFMPEG as it is smart enough to understand the m3u8 file and paste all the pieces together to make a complete video.
FFMPEG pokey-tappey GUI.>_
icon indicated.
fmpeg -y -i "" -c copy "/storage/emulated/0/videoname.mp4"
Take control with the FFMPEG command line.Downloading
FFMPEG in action.
FFMPEG finished.Finishing up
You can watch the video in the player of your choice. I recommend MX Player.
Zerosquare, 1st February 2021, 00:46 While your guide is useful for people who only have access to mobile devices, I think it's easier to download those videos from a PC, then transfer them to a your mobile device:
- you get access to more convenient tools, such as YoutubeDL (despite its name, it doesn't only support YouTube)
- otherwise, you don't even need to install any plugin: you can use the browser's built-in Network inspector
- you can run FFMPEG in the background without issue
- if you want to reencode the video, it's likely faster (if your PC is reasonably recent) and it won't drain your battery
© 2021 Rick Murray |
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted. RIPA notice: No consent is given for interception of page transmission. |