https://usborne.com/us/audio/cockatoos-on-a-cruise
I have yt-dlp but not sure what url to use. Obviously the webpage’s url doesn’t work. Any ideas?
https://usborne.com/us/audio/cockatoos-on-a-cruise
I have yt-dlp but not sure what url to use. Obviously the webpage’s url doesn’t work. Any ideas?
Open up developer console (F12) network tab and reload page/play audio. In the list of network requests, look for something that looks like the resource you want (e.g. in this case, filename: “mp3”, initiator: “media”, type: “mpeg”), right-click and “save response as”. This doesn’t work on every site, but works on yours!
Fancier sites do not serve media files directly but fetch encoded chunks of data and recombine them using javascript. To get the whole file back you need to re-implement the javascript, which is what yt-dlp does, but only works for sites it knows how to handle.
For this website, it seems the only way is by fetching the MP3 URL from the network tab (or a random JavaScript file) and passing it into yt-dlp like so:
yt-dlp "https://audio.usborne.com/audio/Book Readings/Phonics Readers/9781801319591_pho_cockatoos-on-cruise_am-eng_br-pt.mp3"
This will correctly download it.
As the other comment said, if you inspect page html source (ctrl-U) and ctrl-F search for “mp3”, the URL of the embedded audio file is also right there in plaintext in the middle of javascript code, but it’s merely good fortune that the developer left it easily visible and not renamed or obfuscated in some way. Saving from the network tab works in more cases in general.
You don’t need to use yt-dlp to fetch files :D. It will let itself be used as wget, sure, but the browser is already capable of saving files - that’s it’s job! Paste the link into the address bar.
Thanks for helping me get this far but now I’m stuck. Neither yt-dlp nor pasting the url into the browser works. The latter gets me the image below, yt-dlp says it’s not a valid url
Edit: I got it to work with yt-dlp. I forgot the quotes around the url
You can pass your browser’s cookies to yt-dlp. Try that, maybe?
I think it’s
yt-dlp --cookies-from-browser firefox
But please check in the documentation. Also, your browser needs to in the PATH.
Yep! The “save response as” works in more cases because it already includes all the correct cookies/referrers that sites use to protect against hotlinking.