Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Support speaker name alias #1177

Open
Mariatta opened this issue Jul 30, 2024 · 4 comments
Open

Feature request: Support speaker name alias #1177

Mariatta opened this issue Jul 30, 2024 · 4 comments

Comments

@Mariatta
Copy link
Collaborator

Mariatta commented Jul 30, 2024

I understand currently only one name per speaker is allowed.
I'm wondering if it would be possible to support alias for people who might have "stage name", using non-latin alphabets, or different name due to life events.

Examples of such speakers:

Proposed solution:

  • support a new metadata: speaker alias
  • associate the talk with all speaker names including the alias
  • in the speaker listing page, the speaker may be listed multiple times under different alias, but all alias points to one speaker page.
@jonafato
Copy link
Member

jonafato commented Aug 1, 2024

Thank you for the suggestion, this will be a great addition. Currently, speaker names are currently just strings, so this will require expanding support to speakers as JSON objects (which also opens up the possibility of adding info such as a bio to the speaker page). As a first pass, I think this will look something like

{
    "name": "Conference Speaker",  # the speaker's canonical name
    "slug": "conference-speaker",  # can be used to override the default logic for generating speaker URLs when necessary
    "aliases": [  # a list of globally unique speaker name aliases
        "Conf Speaker",
        "C. Speaker",
    ]
}

This will require changes in both pyvideo/pyvideo and pyvideo/data, so I can create the relevant issues on the static site repository to support the new feature as well. Input welcome for this initial new metadata structure (but let's limit the first change to names and aliases).

@Mariatta
Copy link
Collaborator Author

Mariatta commented Aug 1, 2024

Yes I think adding the slug and list of aliases will work. Thanks!

@Mariatta
Copy link
Collaborator Author

Mariatta commented Aug 1, 2024

So if I understand it, the approach is to have a new speakers.json with the above schema.
And in the videos.json will refer to speaker slug instead of speaker names, correct?
I think this will work. I can perhaps start working on transforming the current record into the new schema format, if that's decided.

@jonafato
Copy link
Member

jonafato commented Aug 3, 2024

@Mariatta I haven't sketched out an implementation yet, but I think it will likely look like a speakers/ directory with each speaker getting a JSON file (likely named to match the "slug" attribute that generates their speaker page URL) that fits the format in my comment above. The usage of speaker names and aliases in each video JSON file would remain as-is, which would allow us to display the alias as specified in the video metadata while still linking to canonical speaker page (if we swapped out the slug for the name or alias, we would lose reference to whichever version was intended to be associated with a given video). I'll be creating a few issues in the pyvideo/pyvideo repository this weekend to plan out these changes, and I think the combined effort will be approximately the following:

  • New / updated JSONSchema definitions for the speaker metadata.
  • Support for the static site project to use the updated schema (I think this may require a small Pelican plugin).
  • New JSON files for each speaker matching the new schema, initially treating every name as unique as is done on the site today.
  • Speaker page redirect support. This is a separate issue, but it is related in the context of moving an alias to a canonical speaker URL. This does not have to be a blocker (i.e. we could render the same speaker page for each of the current names and aliases as a first pass), but I think we'll want the ability to combine two speaker records into one and redirect to a main speaker page eventually.
  • Documentation for all of the above.
  • Speaker outreach to determine the desired course of action for situations like the one you identified. These actions should be opt-in and include at least the following options:
    • Leave two records up as separate speaker profiles as they exist today.
    • Combine two sets of speaker metadata into one while rendering on both URLs / redirecting to a canonical URL
    • Combine two sets of speaker metadata into one and stop supporting the old URL
    • "Fix" a speaker record by correcting a name, with or without the redirect option (this is the option we have today, before we implement speaker aliases; e.g. for your own videos, you could choose to update your name to be consistent in the video metadata, which would effectively fold all of your talks into a single speaker page and leave the other speaker page URL as a 404).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants