Git Product home page Git Product logo

Comments (3)

jcraigk avatar jcraigk commented on June 21, 2024 1

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.

jamesdaily avatar jamesdaily commented on June 21, 2024

Possible implementations:

  1. 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.
  2. Zip ahead of time: Benefits: less compute required over time, easier to cache.

from phishin.

jamesdaily avatar jamesdaily commented on June 21, 2024

A "download all" button which effectively just triggered downloads of all individual tracks separately would be just fine.

from phishin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.