Comments (3)
Playlists/shows as zipfiles was a feature in the initial release but I dropped it because it was inefficient/slow (it was synchronous) and used infrequently. This could be re-added as an async job but it would require adding Sidekiq or other background task processing, which would also require Redis. Due to these requirements I don't think it belongs on the primary roadmap at this time. Downloading tracks by batch could easily be done via the API and in parallel, obviating the need for zipping/unzipping.
If someone wants to take a crack at a browser-based track download feature, I'd be open to that, but at this point I'm hesitant to add it as a backend feature. Frontend implementation would likely be easier if using React, which is started at #325
It's worth noting that CloudFlare does a ton of heavy lifting as far as caching MP3s at the edge, and for free. This is basically what allows phish.in to keep running, otherwise it would get crushed by traffic or someone would have to pay a big S3/CloudFront bill for file transfers. This edge cache (accessing MP3s directly by their URL) should be utilized as much as possible by all client requests, whether the client is interested in a single file or many.
from phishin.
Possible implementations:
- Zip on demand. Benefits: no need to pre-zip nor update zip when tracks change. No need to store zipped shows (which would double storage requirements). Could support dynamic bundling by set or playlist vs just entire show.
- Zip ahead of time: Benefits: less compute required over time, easier to cache.
from phishin.
A "download all" button which effectively just triggered downloads of all individual tracks separately would be just fine.
from phishin.
Related Issues (20)
- Include track names in search
- Combine Jam Songs HOT 1
- Improve web pagination
- Show Import: combining up does not combine songs HOT 1
- Transcribe lyrics/narration/banter usingText-to-speech API
- Cleanup soundcheck labeling/tagging HOT 1
- Playlist feature not fully functional?
- Fix raw HTML displaying in tooltips HOT 1
- Fix HTML in tooltips
- Investigate ActiveStorage AudioAnalyzer
- Time links broken in dialogs
- Update prevents continuous playing of songs HOT 4
- Bring back Shuffle and Loop controls
- Use Media Session API to fix iOS next/prev buttons
- Remove references to legacy app PhishOD HOT 1
- Tagin import creates dupe tags HOT 1
- Add last.fm scrobbling
- Exception in show importer if bad number entered HOT 1
- URLs with timestamps start at beginning of track HOT 1
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 phishin.