beyond live - streams

notes

requirements

method

  1. install the required programs and add them to your PATH
  2. rename your playready cdm to device.prd and place it in the same directory as beyondlive.py
  3. open edge, use F12 to open the dev tools, then click esc to open the console
  4. switch to the network request blocking tab and enable blocking
  5. add a new entry to block the following url:
  6. blc.drmkeyserver.com/playready_license
  7. open the stream or reload the tab if already on the desired page
  8. in the dev tools, switch to the network tab and filter for mpd
  9. right click the entry and select copy -> copy url
  10. use the manifest url in the following command to get the pssh
  11. ((Invoke-WebRequest "<url>").Content | findstr mspr:pro | Select-Object -First 1) -replace '<[^>]*>', ''
  12. return to the dev tools and filter for playready
  13. right click the entry and select copy -> copy as cURL (bash)
  14. use curl converter to convert the curl command to python
  15. copy the headers portion of the curl converter output
  16. open beyondlive.py and insert your pssh and headers
  17. create and activate a python virtual environment in the same directory as beyondlive.py
  18. install the required modules
  19. pip install pyplayready requests
  20. run the script to retrieve the decryption key
  21. python beyondlive.py
  22. use the manifest url and key in the following command to begin downloading
  23. n-m3u8dl-re <url> --key <key> --auto-select -mt --decryption-engine shaka_packager \
    --live-real-time-merge --live-pipe-mux --live-keep-segments false --write-meta-json false
    
  24. when the stream has finished, use ctrl+c to exit n-m3u8dl-re