chriseidhof / pomotv

http://www.pomo.tv
182 stars 29 forks source link

[search] Include individual videos in search results (this would require adding a page for each video) #58

Closed chriseidhof closed 8 years ago

chriseidhof commented 8 years ago

I think this would be especially nice to have. Also, a nice side-effect would be having permanent URLs for each video that people can link to.

eelco commented 8 years ago

How to construct unique URLs, would something like {event}-{speaker}-{video title} work in all cases? E.g., http://www.pomo.tv/videos/cmdr-2014-chris-eidhof-functional-swift.html (does not exist, yet)

johankj commented 8 years ago

I was thinking of something like speakers/{speaker}/{video title} but I guess some speakers might give the same (or a quite similar) talk at two different conferences (or a meetup and a conference), so I am not quite sure if that would work.

Otherwise, do we want something like videos/{event}-{speaker}-{video title} or events/{event}/{speaker}/{video title}, or …?

chriseidhof commented 8 years ago

What about /videos/{event}/{speaker}-{video title} ? I have given multiple talks with the same name (sometimes even also the same content, but not always :p).

chriseidhof commented 8 years ago

Or actually, we already have http://www.pomo.tv/events/{event}/. So maybe we should just build on that? http://www.pomo.tv/events/swift-summit-san-francisco-2015/{speaker}-{title} ?

eelco commented 8 years ago

Currently there are 3 perspectives: speakers, events and tags. I think the page with the single video should not be part an existing perspective (there’s no simple canonical way to structure that, we can argue for days whether we should do it as part of /events or /speakers ;), that’s why I proposed a ‘flat’ URL.

johankj commented 8 years ago

I was leaning towards the /events/{event}/{speaker}-{video title} because that is more or less how it is organized in the YAML-files. Of course there is no need to move the database structure into the URLs. I am fine with either the videos ‘belonging’ to an event or being standalone.

chriseidhof commented 8 years ago

But every video always at an event (there's a to-one relation). It can have multiple speakers, so putting it underneath the speakers wouldn't make too much sense. I'm not sure if I understand why we shouldn't put it under events, could you elaborate a bit more @eelco ?

eelco commented 8 years ago

I think the data is structured from a practical standpoint (not having to repeat the name of the event for a bunch of videos), but it makes most sense to me to think of a video as a top-level model (with the event being a property). In other words, the site is a collection of videos that can be viewed through different perspectives (speaker, event, tag), not a collection of events that have videos.

chriseidhof commented 8 years ago

Hm, I'm still not convinced :p. But if you're doing the search and implementing it like that I'm happy to merge it in your way.

eelco commented 8 years ago

I think it’s fine either way at this point, while everything is in flux not all URLs have to be stable yet, maybe. I might have a bit too strong a distaste for hierarchies unless it’s the only way to structure something, because it will bite you when you want to restructure when requirements change.

I do also have the feeling that I might not be making my point well enough, so one more try and then I’ll shut up :stuck_out_tongue_winking_eye:

In my mind the data of site exists of two basic ‘types’: videos and lists (of videos). Currently the videos are only available through the lists (3 subtypes of lists: events, speakers, tags). If we give each video a canonical location I don’t think that location should be part of any list (like ‘event’ as the data is structured currently).

To make sure the canonical video location is unique (and because we lack IDs), using some fixed properties that are currently in the data (speaker(s), event, title) makes sense to me. But, in this case, those properties don’t have any hierarchical meaning, they’re just a crutch. I would keep the ‘master list’ out of the root though, so that’s why I proposed /videos/{something to make up an unique url}

singhamit089 commented 8 years ago

@eelco I agree to your point but I have few doubts here, doing it that way, the videos will become the root object, rest all (speaker(s), event, title etc) will be it's tags.

So say for example "The Zen Guide to WatchOS 2" is the video, it will have the tags "Natasha Murashev" "NSSpain 2015" "WatchOS" etc right?

eelco commented 8 years ago

Tags are general keywords related to the content of the video that can help with search and categorization. Both events and speakers are specific pieces of information that also have additional metadata.