Comments (4)
Basically, you can only download a certain chunk of a file by setting the HTTP headers like this:
var request = URLRequest(url: url)
request.addValue("bytes=\(contentStart)-\(contentEnd)", forHTTPHeaderField: "Range")
Depends a bit on the stream type if this works without throttling or not. For dash audio I personally use this as the previous method is sometimes still throttling (no guarantees that it always works):
var components = URLComponents(url: url, resolvingAgainstBaseURL: false)!
components.queryItems?.append(URLQueryItem(name: "range", value: "\(contentStart)-\(contentEnd)"))
var request = URLRequest(url: components.url!)
request.httpMethod = "post"
from youtubekit.
The way I solved it is by downloading chunks of 2-10 MB in parallel with separate requests and then combining them again. Depending on the type of stream you are downloading, there are different options to request the specific range of bytes.
from youtubekit.
Thank you!
I am only interested in an audio stream (to transcribe them).
Do you have code samples or links showing how to download in chunks?
from youtubekit.
Thanks a lot, I managed to make it work using range requests.
Downloading a 30 minutes audio now takes about 5 seconds with chunks of 2MB.
from youtubekit.
Related Issues (20)
- GetYTPlayerConfig - error HOT 2
- 'videoResolution' is inaccessible due to 'internal' protection level HOT 1
- thumbnail access ? HOT 2
- Unable to stream video, audio working ok. HOT 7
- while playing video greater then 720P video have no audio does anyone now about solution?
- Generated link returns error 403 HOT 5
- could we have filesize public?
- can't get video with audio HOT 3
- RegexMatchError after breaking change from YT HOT 2
- Over the last weeks, more and more videos can't be downloaded HOT 9
- Audio stream duration doubled? HOT 2
- [FEATURE REQUEST] How to obtain video title and perhaps its thumbnail? HOT 1
- License HOT 1
- Is it possible to modify this to stream m3u8 streams? HOT 3
- Add m3u8 support? HOT 1
- Crash HOT 5
- an error in work, links are not parsed HOT 2
- Age Restriction?
- Failed to decode object from given start point: HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from youtubekit.