openzim / youtube

Create a ZIM file from a Youtube channel/username/playlist
GNU General Public License v3.0
39 stars 26 forks source link

New UI: add support for hundreds/thousands of videos and playlists #242

Open benoit74 opened 1 week ago

benoit74 commented 1 week ago

We need the UI to be ready to have hundreds or even thousands of videos in a single ZIM, and probably also hundreds of playlists (even if this is far less likely).

I imagine some kind of lazy loading or pagination would be needed to avoid loading all videos thumbnails at once (which is an issue both in terms of bandwidth and performance on some low-end devices).

My preference would go to lazy loading because I feel like it makes the UI smoother. But I'm not sure the UI is really usable when you have a big list of 1K videos (rare, but will exist) to scroll indefinitely.

@Popolechien any views on that?

@dan-niles any suggestions?

Popolechien commented 1 week ago

How about arbitrarily setting pre-loading to 10, with more button to get another set of 10? Seems a fairly common practice.

benoit74 commented 1 week ago

Is this really different from lazy loading as user scroll? Maybe way simpler to implement. But you still end-up with potentially hundreds or even thousands of thumbnails in a single UI. Where pagination always displays the same amount of videos.

Popolechien commented 1 week ago

Ah no, same thing in my mind. You're the engineer, eh, my mastery of design concepts is more, well, conceptual ^^

dan-niles commented 1 week ago

@benoit74 I did a small test by using the picsum.photos random image API, and it seems like Vue.js does lazy load the thumbnails natively.

https://github.com/openzim/youtube/assets/56271899/a12937c0-9cb3-4546-82a6-d2d3f6bbb040

benoit74 commented 1 week ago

Who, that's super cool. Then does it means we have nothing to do here? Or is there still another usability concern?