Email or username:

Password:

Forgot your password?
dansup

So here is a conundrum I'm facing with @pixelfed Stories, you can like, react or comment on them right, and those are sent as DM's to the Story author.

Makes sense so far right?

Here is the problem:

Once the Story expires, it's deleted, and when you check your DM's, you'll see the replies but since the Story was deleted you won't be able to tell which one it was.

So should we store a Story preview img, or rotate the Story so only author can see it?

Feedback wanted!

25 comments
Radu

@dansup @pixelfed for me both options make sense. I am leaning towards saving the preview, tho

dansup

@pixelfed By rotate the Story, I mean rotate the media urls so the federated media urls are expired but the author can still view them.

This also means every Story would need to be stored after expiration if we kept it, or just a screenshot, but even with a screenshot if the beginning of the video is black, you wouldn't have enough context.

This requires some careful consideration, some people post a lot of Stories and the storage space could add up if mostly video

Oblomov

@dansup @pixelfed I assume deletions map to the AcivityPub Tombstone object. Would it be possible for the server to return the Tombston to every user (local or federated) except the author?

Cameron

@dansup @pixelfed The screenshot idea sounds good. To work around the blank picture issue, you could employ similar logic as sites & applications that offer video thumbnail suggestions by scanning the video. I'm sure there's a library out there that can assist, but as I don't use PHP any more I can't name one sorry. Another option is allowing the user to select the story "preview" time code

As an aside, screenshot vs. retain video for author could be a setting configurable by the instance admin

Lea de Groot 🇦🇺

@dansup @pixelfed what if you require og:title style meta data on story entry, and display that to the writer after expiry (im assuming the point is so they know which entry the favs etc are for…)

DELETED

@dansup
Store key metadata like username, date, story ID, and text caption in a small database table.So that provides context without taking up much space.
Take a screenshot of the first frame of video when story is posted. Optimize and compress image to reduce size. Store screenshots in object storage like S3.For text stories, extract and store first 2 lines of text or 140 characters in the metadata table.

DELETED

@dansup Develop a simple preview rendering component that retrieves metadata and screenshot from storage and displays it nicely.- Use video thumbnailing tools to generate a preview image for videos. Something like the first 5-10 seconds. Allow preview image dimensions/quality to be adjusted based on storage limitations. Maybe Lazy loading when displaying previews. Client-side caching and a CDN to improve preview load times. Also, replace exact timestamps with relative times.

DELETED

@dansup @pixelfed
It makes sense that the identifier be a pic since you are a pic app, but it doesn't have to be. You can ask users to create their own text identifier when they post the story.

Felix Neumann

@dansup @pixelfed

So for that specific problem, seems to make most sense to store the preview as kind of message attachment, so that it shares the same lifecycle as the message and will always be right there when needed.

That being said, a story archive totally makes sense, as these things are most probably valuable to the author beyond their 24h lifetime.

dansup

@fxnn @pixelfed Yeah, see my latest reply to the parent, I think I'll make this configurable by admins and allow them to keep the current impl with no thumbs/previews, or store just a thumb, or keep the full Story media

Devil :verified:

@dansup

Letting the admin choose the favorite way is the best thing, I agree.

chrishazfun

@dansup I found whenever a story expired on IG and I sent it on DMs I wanted to at least see a low res preview so I could remember the context, so I think story preview img would be best

@reiver ⊼ (Charles) :batman:

@dansup @pixelfed

That is how IG does it — but I never liked it, and always thought it was a poor user-experience.

I thought it would have been better to just keep the story around (even if other people couldn't see it) so you had context.

...

Although, as you said, it has a drive space cost.

Zbigniew 'Emill' Pławecki ♿️🎮

@dansup @pixelfed in this case I would do it as on instagram - if I'm the autor of the story, I can only see a screenshot from it and a reply, if I replied to someone else's story, I can only see my answer, everything else disappears

people that are going to use this feature are probably used to how it works right now, and storing original story for a long time in any form is against it's original idea

DELETED

@dansup @pixelfed store preview and delete story. Storage is expensive 😬

DELETED

@dansup @pixelfed maybe we can give the possibility to "save" the stories we want : - those stories could be watched everytime, and for the others, juste an image as preview

Kévin ⏚

@dansup @pixelfed Personally, a preview would be better. Stories are kind of made to be ephemeral and of the two options an image preview is the more ephemeral-ish

Marco Maas

@dansup @pixelfed
Maybe just focus on bringing basic necessaties like #notifications and #editing, and bringing the app to their respective App Stores so the masses can start to explore #pixelfed ? 😉🤨 #PlayStore #AppStore

dansup

@Moaske @pixelfed

Everything I do is for a reason
Everything I do is so strategic (huh)

Marco Maas

@dansup @pixelfed
Like making promises of release to App Stores by the end of May (that came and went) 😉
Don't mean to offend you, but you have seem to forgot about that?

I want to lure large flocks of friends into the great world of Pixelfed, but they'll need a mainstream available app for that 😁

Roland L. Taylor (RolandiXor)

@dansup @pixelfed I think it would be best to preserve the story for the author, but it should also be optional, of course.

DELETED

@dansup @pixelfed
If you're keeping the feedback en masse, there should be an identifier for each.

Go Up