Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

unsupported protocol scheme #116

Closed
gedw99 opened this issue May 19, 2024 · 9 comments
Closed

unsupported protocol scheme #116

gedw99 opened this issue May 19, 2024 · 9 comments
Labels
bug Something isn't working

Comments

@gedw99
Copy link

gedw99 commented May 19, 2024

hlsdl --workers 10 --dir /Users/apple/workspace/m3u8/.data/out --output video.ts https://pdrz.v486a7dc1f0.site/_v2-oanz/12a3c523fb105800ed8c394685aeeb0bc62efa5c1cf9fcec0a407baea93ece832257df1a4b6125fcfa38c35da05dee86aad28d46d73fc4e9d4e5a23c5376f3d737c551f40b16e80e13c5f1ef3c177a5131348a7140546481ce9eb0529bfe60863e15af4f0332b604eeb83407f41c059a/h/list;15a38634f803584ba8926411d7bee906856cab0654b5bc.m3u8
2024/05/19 18:03:23.596550 WARN RESTY Get "": unsupported protocol scheme "", Attempt 1
2024/05/19 18:03:24.597881 WARN RESTY Get "": unsupported protocol scheme "", Attempt 2
2024/05/19 18:03:26.557680 WARN RESTY Get "": unsupported protocol scheme "", Attempt 3
2024/05/19 18:03:27.618279 WARN RESTY Get "": unsupported protocol scheme "", Attempt 4
@gedw99
Copy link
Author

gedw99 commented May 19, 2024

The URL works in a browser and plays the video, so not sure why the golang code fails...

@gedw99
Copy link
Author

gedw99 commented May 19, 2024

its doing agent detection :)

curl https://pdrz.v486a7dc1f0.site/_v2-oanz/12a3c523fb105800ed8c394685aeeb0bc62efa5c1cf9fcec0a407baea93ece832257df1a4b6125fcfa38c35da05dee86aad28d46d73fc4e9d4e5a23c5376f3d737c551f40b16e80e13c5f1ef3c177a5131348a7140546481ce9eb0529bfe60863e15af4f0332b604eeb83407f41c059a/h/list;15a38634f803584ba8926411d7bee906856cab0654b5bc.m3u8
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
/bin/sh: 15a38634f803584ba8926411d7bee906856cab0654b5bc.m3u8: command not found

@gedw99
Copy link
Author

gedw99 commented May 19, 2024

here is another URL that fails, but curl works this time, so its a better test.

its the Sintel open source video.

https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8

hlsdl --workers 10 --dir /Users/apple/workspace/go/m3u8/.data/out --output video.ts https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8
2024/05/19 18:22:41.677833 WARN RESTY Get "": unsupported protocol scheme "", Attempt 1
2024/05/19 18:22:42.680865 WARN RESTY Get "": unsupported protocol scheme "", Attempt 2
2024/05/19 18:22:44.302147 WARN RESTY Get "": unsupported protocol scheme "", Attempt 3
2024/05/19 18:22:45.803307 WARN RESTY Get "": unsupported protocol scheme "", Attempt 4



curl https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8
#EXTM3U

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio/stereo/en/128kbit.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="dubbing",NAME="Dubbing",DEFAULT=NO,AUTOSELECT=YES,URI="audio/stereo/none/128kbit.m3u8"

#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="surround",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio/surround/en/320kbit.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="surround",LANGUAGE="dubbing",NAME="Dubbing",DEFAULT=NO,AUTOSELECT=YES,URI="audio/stereo/none/128kbit.m3u8"

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Deutsch",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="de",URI="subtitles_de.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="en",URI="subtitles_en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Espanol",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="es",URI="subtitles_es.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Français",DEFAULT=NO,AUTOSELECT=YES,FORCED=NO,LANGUAGE="fr",URI="subtitles_fr.m3u8"

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=258157,CODECS="avc1.4d400d,mp4a.40.2",AUDIO="stereo",RESOLUTION=422x180,SUBTITLES="subs"
video/250kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=520929,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/500kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=831270,CODECS="avc1.4d4015,mp4a.40.2",AUDIO="stereo",RESOLUTION=638x272,SUBTITLES="subs"
video/800kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1144430,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=958x408,SUBTITLES="subs"
video/1100kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1558322,CODECS="avc1.4d401f,mp4a.40.2",AUDIO="surround",RESOLUTION=1277x554,SUBTITLES="subs"
video/1500kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4149264,CODECS="avc1.4d4028,mp4a.40.2",AUDIO="surround",RESOLUTION=1921x818,SUBTITLES="subs"
video/4000kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6214307,CODECS="avc1.4d4028,mp4a.40.2",AUDIO="surround",RESOLUTION=1921x818,SUBTITLES="subs"
video/6000kbit.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=10285391,CODECS="avc1.4d4033,mp4a.40.2",AUDIO="surround",RESOLUTION=4096x1744,SUBTITLES="subs"
video/10000kbit.m3u8

The problem I think is that the site returns different resolution choices ..

@sunshineplan sunshineplan added the bug Something isn't working label May 21, 2024
sunshineplan added a commit that referenced this issue May 21, 2024
@sunshineplan
Copy link
Owner

Fixed in v1.0.5
However, only the video with the largest bandwidth will be downloaded. The audio will not be downloaded.

@gedw99
Copy link
Author

gedw99 commented May 26, 2024

Thank you @sunshineplan for the fix

@gedw99
Copy link
Author

gedw99 commented May 26, 2024

I will make a pr to allow the user to be given a list of the resolutions and then for those to be downloaded.

Is there any technical reason why the audio is not downloaded for your PR btw ?

@sunshineplan
Copy link
Owner

The upstream github.com/grafov/m3u8 package does not support distinguishing corresponding audio tracks, and even if the audio tracks are downloaded, merging the video and audio tracks is still a problem. If ffmpeg is used, an additional environment is required.

@gedw99
Copy link
Author

gedw99 commented May 26, 2024

thanks for the explanation.

Do you know if the m3u8 spec defines multi resolutions ?

@gedw99
Copy link
Author

gedw99 commented May 26, 2024

It seems that upgrading to use a more recent fork might help in general.

grafov/m3u8#184 (comment) Has links to 2 forks that are years ahead ….

am going to investigate this as it will probably help in general but I will not really know until I get sample data sets to test against

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants