-
-
Notifications
You must be signed in to change notification settings - Fork 498
Delivery methods without design flaws #862
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
base: dev
Are you sure you want to change the base?
Delivery methods without design flaws #862
Conversation
dd35950 to
fd33006
Compare
fd52219 to
c0f1777
Compare
c6b4e06 to
d251a91
Compare
|
Took a brief look: I like the structure. I usually tend to avoid having this many abstract things, but in this case there is no way to avoid it because of the complexity of the data. With this structure a user of the extractor would need to use Also, what about removing completely the concept of |
|
@Stypox I'm currently already struggling with NewPipe itself because nearly everything that is player related has to be reworked (which with the fact that I currently don't have much spare time gradually slows down the progress quite a bit). Btw there will be further unfinished changes inbound here that are mostly download-related e.g. marking TorrentData as not downloadable or how the playback should be resolved in the best way, e.g. preferring the hlsMasterPlaylistUrl or something else for certain streams. |
|
@litetex any news? :-) |
* Killed StreamType * Move ``Privacy`` out of ``Extractor`` * Reworked YT stream extractor
deduplication should be done by the extractor
…terPlaylistUrl()`` instead
Updated javadoc Cleanup more code * Improve /Add java doc * Remove unused code * Convert TODOs to followup issues
* Added support for content-length (important for downloader) * Code cleanup
* Throw ContentNotSupportedExceptions when extracting (as was done before)
Not finished yet
d0a4a8d to
8b7cb62
Compare
|
@Stypox |
Fixes #858
Status: Extractor implementation nearly done, changes in Client/NewPipe still have to be implemented
Changelog
This PR reimplements #810.
Short overview the delivery methods work in the first place (click to expand)
Architecture
The architecture how Streams and StreamingData (and the different types of them) work was completely rewritten.
Click to expand architecture overview
Note that all "classes" are interfaces except the YT-specific implementation.
Changes in detail
MediaFormatwas reworked and split into Service specific media formats likeAudioMediaFormat,SubtitleMediaFormatand so on.Streamwas reworked and split into multiple interfacesDeliveryData) and it's subsequent implementations (e.g.DASHUrlDeliveryData,ProgressiveHTTPDeliveryData, ...)DeliveryTypewhich is no longer requiredItagFormatRegistryif you want to know more)StreamTypewas removed and replaced byisLiveandisAudioOnlyinside theStreamInfoclass and the extractorsManifestCreatorCacheas it's no longer requiredIn total this PR removes nearly 2k LoC (compared to the original PR #810 that's nearly 50% of the added code) and makes the extractor much more object oriented.
Todo: