• TauZero@mander.xyz
    link
    fedilink
    English
    arrow-up
    16
    ·
    4 days ago

    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.

    • The 8232 Project@lemmy.ml
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      1
      ·
      4 days ago

      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.

      • TauZero@mander.xyz
        link
        fedilink
        English
        arrow-up
        13
        ·
        4 days ago

        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.

        • akilou@sh.itjust.worksOP
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          4 days ago

          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

          • nutbutter@discuss.tchncs.de
            link
            fedilink
            English
            arrow-up
            2
            ·
            4 days ago

            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.

          • TauZero@mander.xyz
            link
            fedilink
            English
            arrow-up
            2
            ·
            4 days ago

            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.

  • viking@infosec.pub
    link
    fedilink
    English
    arrow-up
    6
    ·
    4 days ago

    Just view the source code and search for “.mp3”, the file is linked directly.

  • LumpyPancakes@piefed.social
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    4 days ago

    On Windows, you can use “Stream What You Hear” to “Record What You Hear”. Any audio your computer plays can be recorded in real time with this app.