This is an awesome tutorial and pretty clearly explained for anyone!
What I would like to know is what the other profile numbers are (720p, 360p etc.). In your example, you changed 23 into 19 for the video. I am trying to download an older Joe Rogan episode (from 2014) and it originally had 15 as video profile number. I tried changing it to 19, but it wouldn't download anything. So now I'm trying with 15 and it looks like it's downloading data.
So how do I know which quality is the best available for a certain video? And in your case, what is 23 (higher than 1080p)?
4
[deleted]
•
The manifest can be found in the supports_drm request, it contains all information about the podcast, including profiles and url templates.
Btw the exact number of segments seems to be based on the duration in seconds, it can be calculated using ceil(content.end_time_millis / 1000). The step is segment_length, which seems to be always 4.
To install the "curl" package on your machine, type the following into the terminal: brew install curl
Now, let's navigate to where we will install the "FFmpeg" package. I chose to create a folder on my desktop: cd desktop mkdir podcast cd podcast brew install ffmpeg
After installing the "FFmpeg" package, we only need to download and merge the init files from the podcast. Change the URL part as u/stabbedbybrick did; there are no changes here: curl -s "URL" -o inita.webm curl -s "URL" -o initb.webm curl -s "URL" > audio_tmp.webm curl -s "URL" > video_tmp.webm
After downloading the files, use these commands to merge them on MacOS: cat inita.webm audio_tmp.webm > audio.webm cat initb.webm video_tmp.webm > video.webm
The final step is the same here, but I chose the MP4 container: ffmpeg -hide_banner -i video.webm -i audio.webm -c copy podcast_title.mp4
So when I tried it when the example above, I got it to work and was able to download the video. But when I tried it with one of Joe Rogan's newest episodes, I get the error below when I merge the audio and video.
[matroska,webm @ 00000250a787dc40] Format matroska,webm detected only with low score of 1, misdetection possible!
Firstly, this method is unmatched, I haven't seen anything come close to this yet so thank you.
I just need a bit of help please as I have followed all instructions including the updated method. So I noticed that after the merge I was getting some inconsistencies mainly that the video looked like it was corrupted at certain points but mainly that most of the finalised file had no audio.
So I decide to do audio separately to see if I could identify the issue and it I found two issues. 1): only 38:07 mins worth of audio was downloading
2) of that 38:07 minutes, it was skipping through parts of the podcast.
I cURL'd both the first init file (profile 23) and the final webm file (segment 11016 in this case) I also added :4 in the exact format as shown in your instructions and I removed the silent download so I could see if any segments were being skipped which was also not the case.
I did however notice the download was extremely quick for a 3 hour podcast. I have no idea how to fix it. Any help would be greatly appreciated.
Cool guide! Thanks dude! :)
Comment deleted by user
This is an awesome tutorial and pretty clearly explained for anyone!
What I would like to know is what the other profile numbers are (720p, 360p etc.). In your example, you changed 23 into 19 for the video. I am trying to download an older Joe Rogan episode (from 2014) and it originally had 15 as video profile number. I tried changing it to 19, but it wouldn't download anything. So now I'm trying with 15 and it looks like it's downloading data.
So how do I know which quality is the best available for a certain video? And in your case, what is 23 (higher than 1080p)?
The manifest can be found in the
supports_drmrequest, it contains all information about the podcast, including profiles and url templates.Btw the exact number of segments seems to be based on the duration in seconds, it can be calculated using
ceil(content.end_time_millis / 1000). The step issegment_length, which seems to be always 4.Comment deleted by user
For MacOS users, there are some changes needed to get this working.
Check if "homebrew" is installed by typing this command to terminal (ALL OF IT):
/bin/bash -c "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"To install the "curl" package on your machine, type the following into the terminal:
brew install curlNow, let's navigate to where we will install the "FFmpeg" package. I chose to create a folder on my desktop:
cd desktopmkdir podcastcd podcastbrew install ffmpegAfter installing the "FFmpeg" package, we only need to download and merge the init files from the podcast. Change the URL part as u/stabbedbybrick did; there are no changes here:
curl -s "URL" -o inita.webmcurl -s "URL" -o initb.webmcurl -s "URL" > audio_tmp.webmcurl -s "URL" > video_tmp.webmAfter downloading the files, use these commands to merge them on MacOS:
cat inita.webm audio_tmp.webm > audio.webmcat initb.webm video_tmp.webm > video.webmThe final step is the same here, but I chose the MP4 container:
ffmpeg -hide_banner -i video.webm -i audio.webm -c copy podcast_title.mp4Looks good. If enough people vouch for this, I think it's worth adding to the guides section
Huh, thanks a lot for the shoutout buddy.
Keep up the good work.
So when I tried it when the example above, I got it to work and was able to download the video. But when I tried it with one of Joe Rogan's newest episodes, I get the error below when I merge the audio and video.
[matroska,webm @ 00000250a787dc40] Format matroska,webm detected only with low score of 1, misdetection possible![matroska,webm @ 00000250a787dc40] EBML header parsing failedvideo.webm: Invalid data found when processing inputI'm a noobie so can someone please help me with is?
Comment deleted by user
how do i get key?
Comment deleted by user
For the Android users not supported at all :(
Comment deleted by user
Hi
Firstly, this method is unmatched, I haven't seen anything come close to this yet so thank you.
I just need a bit of help please as I have followed all instructions including the updated method. So I noticed that after the merge I was getting some inconsistencies mainly that the video looked like it was corrupted at certain points but mainly that most of the finalised file had no audio.
So I decide to do audio separately to see if I could identify the issue and it I found two issues. 1): only 38:07 mins worth of audio was downloading
2) of that 38:07 minutes, it was skipping through parts of the podcast.
I cURL'd both the first init file (profile 23) and the final webm file (segment 11016 in this case) I also added :4 in the exact format as shown in your instructions and I removed the silent download so I could see if any segments were being skipped which was also not the case.
I did however notice the download was extremely quick for a 3 hour podcast. I have no idea how to fix it. Any help would be greatly appreciated.
This was the init URL for audio:
https://video-akpcw-cdn-spotify-com.akamaized.net/segments/v1/origins/b1acc6dba4d449dcf7a71659d3fabea2/sources/57bb722e2f0251c8a7387a4506227ca1/encodings/85f0b0609f3511ed938b8f6898d50945/profiles/23/inits/webm?token=mKbOFc0ylwHpHkn%2BlHIonCc4utMNjA7qD0tRArOltsE%3D&token_ak=st%3D1676141249%7Eexp%3D1676746049%7Eacl%3D*%2Fencodings%2F85f0b0609f3511ed938b8f6898d50945%2F*%7Ehmac%3Dfef684d4dfedff0cd58c492871b7e5cbec2e599b8db06c77442263180a70d01cThis was the final segment webm for audio (after editing):
https://video-akpcw-cdn-spotify-com.akamaized.net/segments/v1/origins/b1acc6dba4d449dcf7a71659d3fabea2/sources/57bb722e2f0251c8a7387a4506227ca1/encodings/85f0b0609f3511ed938b8f6898d50945/profiles/23/[0-11016:4].webm?token=mKbOFc0ylwHpHkn%2BlHIonCc4utMNjA7qD0tRArOltsE%3D&token_ak=st%3D1676141249%7Eexp%3D1676746049%7Eacl%3D*%2Fencodings%2F85f0b0609f3511ed938b8f6898d50945%2F*%7Ehmac%3Dfef684d4dfedff0cd58c492871b7e5cbec2e599b8db06c77442263180a70d01cEDIT**
I also get this error when outputting using ffmpeg:
[matroska,webm @ 0x7fb884d0bc40] Length 6 indicated by an EBML number's first byte 0x05 at pos 257523104 (0xf597da0) exceeds max length 4.im a begginer can you do a video tutorial about this
Comment deleted by user
i can;t find webm file in audio only podcast. what should i do here?
Comment removed by moderator