VideoHelp Forum

Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker or buy a VSO converter software :)
+ Reply to Thread
Results 1 to 17 of 17
Thread
  1. or
    People have asked how to do this in several different threads, but so far no workable answers. I've tried for hours with no success.
    Tubedigger ($15-$25) will download them easily, but I would like to know a free way to download the videos.
    Quote Quote  
  2. Former Member
    Join Date
    May 2014
    Search PM
    If the api is enabled for a particular sprout video, the video file can be downloaded directly. The api setting is an option that is configured by the sproutvideo account holder.

    In the case of your two videos, the api is enabled for the second but disabled for the first. To use the api for the second video:
    Code:
    https://api-files.sproutvideo.com/file/e89bd0b81b1fe3ca60/851a807530288779/1080.mp4
    
    (change 1080 to 240, 360, 480, or 720 if lower quality is desired)
    For the first video, obtain the index.m3u8 url using your browser, adblock+, or other method. Use with streamlink w/hlsvariant plugin to download (livestreamer won't work with default sslv3 deficiency).
    Quote Quote  
  3. Hi ,

    My tries .

    Code:
    Firefox
    https://videos.sproutvideo.com/embed/e89ad9b21c1be0c860/574654bb7705a8cb
    httpfox
    application/vnd.apple.mpegurl
    https://videos.sproutvideo.com/mp?url=https://hls2.videos.sproutvideo.com/0334e28ca988c8520c6c7460e38b56fa/5319925b6321cc992725e22a5e47afed/video/index.m3u8&expires=1494286043&signature=WCG%2BlsKb6Dp3Qsd9DQFRLEyGljo=
    === click on the link above => see ( quality=720.m3u8 ) :
    https://videos.sproutvideo.com/mp?url=https://hls2.videos.sproutvideo.com/0334e28ca988c8520c6c7460e38b56fa/5319925b6321cc992725e22a5e47afed/video/720.m3u8&expires=1494286045&signature=5cBgE9sb6gm9KRHlbkmx831X4DY=
    Code:
    Firefox
    https://videos.sproutvideo.com/embed/e89bd0b81b1fe3ca60/851a807530288779
    httpfox
    application/vnd.apple.mpegurl
    https://videos.sproutvideo.com/mp?url=https://hls2.videos.sproutvideo.com/5dff105b90112fab3e40a029a133fad5/e8eb48463de5889a360131bf8f324f6f/video/index.m3u8&expires=1494284813&signature=RpN624%2BVkpUhEE0029c8e7wCEmM=
    === click on the link above => see ( quality=1080.m3u8 )  :
    https://videos.sproutvideo.com/mp?url=https://hls2.videos.sproutvideo.com/5dff105b90112fab3e40a029a133fad5/e8eb48463de5889a360131bf8f324f6f/video/1080.m3u8&expires=1494284816&signature=8ecDjw8pKDTnADBYsobN6HblOM0=
    Cheers .

    EDIT : replace in the links got :

    %2F by /
    %3A by :
    %3D by =
    Last edited by aazerty; 9th May 2017 at 04:40.
    JE SUIS CHARLIE !!!
    Quote Quote  
  4. If the api is enabled for a particular sprout video, the video file can be downloaded directly. The api setting is an option that is configured by the sproutvideo account holder.
    In the case of your two videos, the api is enabled for the second but disabled for the first. To use the api for the second video:
    https://api-files.sproutvideo.com/file/e89bd0b81b1fe3ca60/851a807530288779/1080.mp4
    (change 1080 to 240, 360, 480, or 720 if lower quality is desired)
    Ponens,
    I assume that what you said for the second video is a kind of recipe or formula that will work for all sproutvideos that have api enabled.
    Since this is the url of the stream video:
    Code:
    https://videos.sproutvideo.com/embed/e89bd0b81b1fe3ca60/851a807530288779
    And this is the download link you provided:
    Code:
    https://api-files.sproutvideo.com/file/e89bd0b81b1fe3ca60/851a807530288779/360.mp4
    I guess I can just use your example as a pattern to be able to download other api enabled sproutvideos.
    About the first video (api disabled) you said:
    Use with streamlink w/hlsvariant plugin to download
    If you have the time, can you show me exactly how you did this (include every step 1,2,3... leading to the final result, including screenshots).
    Quote Quote  
  5. Former Member
    Join Date
    May 2014
    Search PM
    Originally Posted by jimdagys View Post
    I assume that what you said for the second video is a kind of recipe or formula that will work for all sproutvideos that have api enabled.
    I guess I can just use your example as a pattern to be able to download other api enabled sproutvideos.
    That is all that anyone can do. If sprout changes the api, they'll update their online documentation.

    http://sproutvideo.com/help/api/upcoming_api_changes
    http://sproutvideo.com/help/api/api_file_access

    Originally Posted by jimdagys View Post
    About the first video (api disabled) you said:
    Use with streamlink w/hlsvariant plugin to download
    If you have the time, can you show me exactly how you did this (include every step 1,2,3... leading to the final result, including screenshots).
    There are several different methods. If you're unfamiliar with streamlink, you can use ffmpeg for one of the methods, although not for some of the others. Try these steps:

    https://videos.sproutvideo.com/embed/e89ad9b21c1be0c860/574654bb7705a8cb

    Play the above video in firefox with flash disabled and the user agent set to ios.

    Using adblock+ or firefox network monitor, search for
    Code:
    https://videos.sproutvideo.com/mp
    You should find results similar to those shown by aazerty in post #3 to this thread.

    The results that start with "https://videos.sproutvideo.com/mp" can be used as input to ffmpeg.

    The urls that start with "https://hls2.videos.sproutvideo.com" can't be used as input to ffmpeg.

    Note that the urls that start with "https://videos.sproutvideo.com/mp" will have "https://hls2.videos.sproutvideo.com" as part of the url, just not at the beginning of the url.
    Quote Quote  
  6. Ponens,
    Ok, I'm trying to understand this. For example, I used Firefox, IOS, disable flash, Adblock Plus with the above sprouts video:
    (https://videos.sproutvideo.com/embed/e89ad9b21c1be0c860/574654bb7705a8cb)
    and the result was this:
    Code:
    https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494432274&signature=G9rf28bIIRBczGilZ4NGEV7WGMk%3D
    Do I change all the % signs like this?
    %2F by /
    %3A by :
    %3D by =
    %2B by +
    So this gives result of this:
    Code:
    https://videos.sproutvideo.com/mp?url=https://hls2.videos.sproutvideo.com/0334e28ca988c8520c6c7460e38b56fa/5319925b6321cc992725e22a5e47afed/video/index.m3u8&expires=1494432274&signature=G9rf28bIIRBczGilZ4NGEV7WGMk=
    Do I change
    index
    to
    720
    so I have this:
    Code:
    https://videos.sproutvideo.com/mp?url=https://hls2.videos.sproutvideo.com/0334e28ca988c8520c6c7460e38b56fa/5319925b6321cc992725e22a5e47afed/video/720.m3u8&expires=1494432274&signature=G9rf28bIIRBczGilZ4NGEV7WGMk=
    If this is correct, can you give me the exact ffmpeg code that will download the video ( I realize the code expires quickly)?
    Also, how many minutes (seconds) do I have before the code expires?
    Quote Quote  
  7. Originally Posted by jimdagys View Post
    If this is correct, can you give me the exact ffmpeg code that will download the video ( I realize the code expires quickly)?
    Also, how many minutes (seconds) do I have before the code expires?
    No need to change anything in the url. Do exactly as ponens described in his reply. The ffmpeg command is then:

    Code:
    ffmpeg -y -i <url> <outputfile>
    This worked for me with the vid from your original post (it won't work for you because of the expiration but you get the idea):

    Code:
    ffmpeg -y -i 'https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494740400&signature=VrDvAZA%2BWKY48lU0AK%2B40KdhZe4%3D' 'output.mp4'
    Edit: BTW, big thanks to ponens for the method! I've been trying to figure out how to download sprout for a while now.
    Last edited by vendetta6546; 13th May 2017 at 22:04. Reason: Added thank you to OP.
    Quote Quote  
  8. vendetta6546, Ponens,
    I have a question and a comment about downloading the video (https://videos.sproutvideo.com/embed/e89ad9b21c1be0c860/574654bb7705a8cb).
    First, how do you modify the code to get (choose) different resolutions? The code you gave just downloads 1280x720p. Is there a way to choose and download lower resolutions? What would be the exact code to do that?

    Second, I think I have the latest version of ffmpeg. When I use your exact code (with new just gotten url from adblock plus), I get an error message.
    You gave me this code (with newer url):
    Code:
    ffmpeg -y -i 'https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494781662&signature=lgnJaKUJi9XbejGcIloZSslOhh8%3D'  'output.mp4'
    But I had to use double quotes (you used single quotes) for it to download the file. So this worked for me:
    Code:
    ffmpeg -y -i "https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494781662&signature=lgnJaKUJi9XbejGcIloZSslOhh8%3D" "output.mp4"
    How were you able to download with single quotes?

    THANK YOU for all your help because I've been trying to download these sproutsvideos for about 6 months.
    Image Attached Thumbnails Click image for larger version

Name:	Clipboard01.jpg
Views:	13
Size:	219.0 KB
ID:	41615  

    Last edited by jimdagys; 14th May 2017 at 12:31.
    Quote Quote  
  9. Originally Posted by jimdagys View Post
    First, how do you modify the code to get (choose) different resolutions? The code you gave just downloads 1280x720p. Is there a way to choose and download lower resolutions? What would be the exact code to do that?
    No idea. Will have to defer to ponens on this one.

    Originally Posted by jimdagys View Post
    How were you able to download with single quotes?
    This is just Windows vs. Linux. Windows requires the double quotes.
    Quote Quote  
  10. Former Member
    Join Date
    May 2014
    Search PM
    Originally Posted by jimdagys View Post
    I have a question and a comment about downloading the video (https://videos.sproutvideo.com/embed/e89ad9b21c1be0c860/574654bb7705a8cb).
    First, how do you modify the code to get (choose) different resolutions? The code you gave just downloads 1280x720p. Is there a way to choose and download lower resolutions? What would be the exact code to do that?
    If livestreamer or streamlink are used, the quality desired can be specified on the command line (with the index.m3u8 url as input).

    If using ffmpeg, the easiest way is to download the index.m3u8 and view it as a text file. Inside index.m3u8 are the m3u8 urls starting with "https://videos.sproutvideo.com/mp" for the different qualities. Pick the desired url and use it as input to ffmpeg.

    The map parameter can also be used with ffmpeg (with the index.m3u8 url as input) to select the streams with the desired quality. When ffmpeg is used without any -map arguments, it defaults to the highest quality.

    RESOLUTION=426x240: -map 0:0 -map 0:1
    RESOLUTION=640x360: -map 0:2 -map 0:3
    RESOLUTION=852x480: -map 0:4 -map 0:5
    RESOLUTION=1280x720: -map 0:6 -map 0:7 (or default without any -map argument)

    Code:
    map for 360p saving as native ts (using index.m3u8 url as input):
    ffmpeg -i "https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494781662&signature=lgnJaKUJi9XbejGcIloZSslOhh8%3D" -map 0:2 -map 0:3 -c:v copy -c:a copy 360p.ts
    
    map for 360p with remux as mp4 while downloading (using index.m3u8 url as input):
    ffmpeg -i "https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494781662&signature=lgnJaKUJi9XbejGcIloZSslOhh8%3D" -map 0:2 -map 0:3 -c:v copy -c:a copy -absf aac_adtstoasc 360p.mp4
    Quote Quote  
  11. Ponens, vendetta6546,
    Thank you Ponens. I think I'll be able to figure it out if I can get exact code for methods 1 and 2.
    vendetta6546,
    Ponens gave 3 methods to download a chosen resolution.
    I need some clarification on method 1 and 2.
    Method 1:
    If livestreamer [ ] are used, the quality desired can be specified on the command line (with the index.m3u8 url as input).
    Can you give me the exact code (don't worry that url has expired) with livestreamer with quality specified on command line?

    Method 2:
    If using ffmpeg, the easiest way is to download the index.m3u8 and view it as a text file.
    I know how to view a m3u8 as text file, but what is the exact code to download the m3u8 file?
    Quote Quote  
  12. Former Member
    Join Date
    May 2014
    Search PM
    Originally Posted by jimdagys View Post
    I know how to view a m3u8 as text file, but what is the exact code to download the m3u8 file?
    If you paste the index.m3u8 url into the browser, does it not download?

    Originally Posted by jimdagys View Post
    Can you give me the exact code (don't worry that url has expired) with livestreamer with quality specified on command line?
    Code:
    livestreamer "hlsvariant://https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494781662&signature=lgnJaKUJi9XbejGcIloZSslOhh8%3D" 360p -o output.ts
    Quote Quote  
  13. Ponens,
    If you paste the index.m3u8 url into the browser, does it not download?
    OK, I pasted the entire url (gotten from adblock plus) into Firefox browser and it downloaded this txt file (posted at bottom of this post).
    I can see from the text that various resolutions are given. Then based on the below text file, and for example choosing 640x360, what is the exact ffmpeg code to download the video? Based on below text, is this correct? If not, please give me the exact correct code. My guess:
    Code:
    ffmpeg -y -i  "https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2F360.m3u8&expires=1495118904&signature=PLCMKxDiy6lu9bkWb0J7aoFH7NY%3D" "output.mp4"
    Code:
    #EXTM3U
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=118739,RESOLUTION=426x240, CODECS="avc1.42e00a,mp4a.40.2"
    https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2F240.m3u8&expires=1495118904&signature=PUBnHWpiWgSietyUtRZ2ltrVGpI%3D
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=184052,RESOLUTION=640x360, CODECS="avc1.42e00a,mp4a.40.2"
    https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2F360.m3u8&expires=1495118904&signature=PLCMKxDiy6lu9bkWb0J7aoFH7NY%3D
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=215669,RESOLUTION=852x480, CODECS="avc1.42e00a,mp4a.40.2"
    https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2F480.m3u8&expires=1495118904&signature=1raK29PfOEakJcmmpoIkBSsVISw%3D
    #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=316275,RESOLUTION=1280x720, CODECS="avc1.42e00a,mp4a.40.2"
    https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2F720.m3u8&expires=1495118904&signature=K2QfA6od37JkYmy%2FBYxxV1rOoDc%3D
    One last thing. This is just for exercise, because the people that own sproutvideos seemed to have just changed the protocol, and even my successful method for downloading (in above post #8) doesn't work anymore. It seems that the url (gotten from adblock plus) now expires in seconds, not minutes like before.
    Last edited by jimdagys; 18th May 2017 at 08:31.
    Quote Quote  
  14. Former Member
    Join Date
    May 2014
    Search PM
    Originally Posted by jimdagys View Post
    ...the people that own sproutvideos seemed to have just changed the protocol, and even my successful method for downloading (in above post #8) doesn't work anymore. It seems that the url (gotten from adblock plus) now expires in seconds, not minutes like before.
    The unix time parameter in the url (e.g., "expires=1495118904") indicates that the url expires in 3 hours (see Unix Time Stamp Converter).

    What has changed is now the user agent value is also checked when the m3u8 is directly accessed, such as by ffmpeg, livestreamer, or streamlink. If the user agent isn't some allowed mobile user agent (ios, android, etc.), then a 403 error will result.

    Interesting that it would be changed now. The remedy, if still using the mobile player url, is to set the user agent in whatever program is accessing the url - such as ffmpeg, livestreamer, or streamlink. Or, don't use the mobile player url but instead use the normal player url but set all of the cookies in whatever program is accessing the url. Doing this is beyond what I'll get into here, but it doesn't take much research to learn how it is all done.
    Quote Quote  
  15. Ponens,
    The remedy, if still using the mobile player url, is to set the user agent in whatever program is accessing the url - such as ffmpeg
    Can you give me the exact ffmpeg code with correct user agent included that will download the video? Please use below outdated mp url (I can get a new one from Adblock plus).
    Code:
    ffmpeg -y -i "https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1494781662&signature=lgnJaKUJi9XbejGcIloZSslOhh8%3D" "output.mp4"
    I got new iOS mp url (like I did before with Adblock plus) and tried adding some code in the ffmpeg command line to change user agent to iOS, but was unsuccessful to download the video. I probably made some syntax error.
    Interesting that Tubedigger will still download the video (even after sproutsvideo made the useragent change).
    Below screenshot shows how I am getting iOS user agent in Firefox.
    Image Attached Images  
    Last edited by jimdagys; 19th May 2017 at 06:39.
    Quote Quote  
  16. Former Member
    Join Date
    May 2014
    Search PM
    Originally Posted by jimdagys View Post
    Interesting that Tubedigger will still download the video (even after sproutsvideo made the useragent change).
    Tubedigger doesn't use the mobile player url but rather the normal player url with the cookies.

    Originally Posted by jimdagys View Post
    Can you give me the exact ffmpeg code with correct user agent included that will download the video?
    An easier way is to download the mp (index.m3u8 url) with your browser and view it with a text file. Then, copy/paste the full mp (360 quality m3u8) url from the text file and download that file with your broswer too (with user agent still set to ios). Copy the downloaded 360.m3u8 file (rename it to 360.m3u8 if the browser saved it to a different filename) to the same folder with ffmpeg. Then use the local 360.m3u8 file as input to ffmpeg:

    Code:
    ffmpeg -i "360.m3u8" -c:v copy -c:a copy 360p.ts
    
    or, with remux as mp4 while downloading:
    
    ffmpeg -i "360.m3u8" -c:v copy -c:a copy -absf aac_adtstoasc 360p.mp4
    Quote Quote  
  17. Ponens,
    It took about an hour to figure it out, (followed your directions in above post), thank you very much:
    An easier way is to download the mp (index.m3u8 url) with your browser and view it with a text file. Then, copy/paste the full mp (360 quality m3u8) url from the text file and download that file with your broswer too (with user agent still set to ios). Copy the downloaded 360.m3u8 file (rename it to 360.m3u8 if the browser saved it to a different filename) to the same folder with ffmpeg. Then use the local 360.m3u8 file as input to ffmpeg:
    ffmpeg -i "360.m3u8" -c:v copy -c:a copy 360p.ts
    It is a good thing you gave the above (red) code, because when you say, "use such and such as an input to ffmpeg", I just can't come up with the proper syntax. I need exact examples.
    So I played the video with Firefox Adblock Plus, iPhone3 user agent and got this mp code (expires after a period of time):
    Code:
    https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2Findex.m3u8&expires=1495324097&signature=VyRjyEDHG3zCNdLIBXY2YSGZNKs%3D
    Then I put above code in Firefox ( still with iPhone user agent) to download a file.
    It downloaded a file called mp, which I changed to
    mp.txt
    I opened the file in Notepad and I chose the 360 resolution (see screenshot blue highlight) which was this:
    Code:
    https://videos.sproutvideo.com/mp?url=https%3A%2F%2Fhls2.videos.sproutvideo.com%2F0334e28ca988c8520c6c7460e38b56fa%2F5319925b6321cc992725e22a5e47afed%2Fvideo%2F360.m3u8&expires=1495324157&signature=LZP3boyraSeDPiA9IcVfVfmzZds%3D
    Then I put that code in Firefox (still with iPhone3 user agent) and downloaded another file (also) called mp (about 82kb, a huge text file) which I changed the name to
    input.m3u8
    and put that file in the same folder as ffmpeg.
    Then I used this code to download the video:
    Code:
    ffmpeg -i "input.m3u8" -c:v copy -c:a copy output.ts
    See second screenshot showing input.m3u8 and output.ts (the downloaded video).
    Image Attached Thumbnails Click image for larger version

Name:	Clipboard01.jpg
Views:	19
Size:	220.0 KB
ID:	41671  

    Click image for larger version

Name:	Clipboard02.jpg
Views:	19
Size:	114.5 KB
ID:	41672  

    Last edited by jimdagys; 21st May 2017 at 06:31.
    Quote Quote  



Similar Threads