Joystream / youtube-synch

YouTube Synchronization
11 stars 10 forks source link

Operator reward management #126

Closed bedeho closed 1 year ago

bedeho commented 1 year ago

Background

While distinct deployments of the YPP will involve distinct terms, almost all of them are likely to reward the following events

a) someone is verified as a real YT creator b) a video is synched c) a creator is verified as a real YT creator, d) pay depends on how many followers they have

Hence, being able to effectively determie who to pay, what amount and who may need further inspection or verification, will be key to being able to operate a YPP well.

Assumptions: Data Model

This proposal assumes that for each channel, the following information exists

  1. Channel ID, URL and name on YT
  2. A status indicating one among the following
    • unverified: currently being synched, initial status of all new channels that sign up in automated flow, hence no rewards should be paid out just yet.
    • verified: currently being synched, and some operator has explicitly green-lit this channel for rewards.
    • suspended: currently not being synched, operator made the call
    • opted-out: currently not being synched, end-user made the call.
  3. Date at which channel signed up
  4. All videos successfully replicated from YT to Joystream, where this means end-to-end upload 100% completed. Each video must have a publication ID and date on YouTube.
  5. How many subscriber the person had upon signup, we don't update this.
  6. Id of channel and channel account on Joystream.
  7. The Id of another creator who referred them.

Assumptions: Reward Policy & Reward

A reward policy, as defined here, refers to a Gleev specific policy for it's YPP, and it defines.

Computing the actual reward for a given channel over a given period in time involves the following:

Proposal

The idea is to propose a set of tools which allows any operator to safely and effectively run a YPP, but still have enough flexibility to allow people to plug in their own secondary tools and processes.

User Story: Operator

In the last story, one obviously would want the tool to

API vs Website vs CLI

I'm really undecided on how to package all of tehse tools and experiences together. On one hand, I thin the best possible solution for Dmitry would be to ahve all of this as an integrated set of webpages that yt-synch bacend powers, perhaps allowing him to avoid doing any sort of manual exporting at all. On the other hand, that will start to create a bottlneck with updating and changing this, both for others, and also for Dmitry, when yt-synch maintainer is busy. It will also invariably lead us down the road of having it get too customised for Gleev vs. any app.

Perhaps its fine to just build this as a bunch of APIs+pages for now, where people can call the API directly if they want to, but also just use the webpages if they find it fits their needs?

┆Issue is synchronized with this Asana task by Unito

dmtrjsg commented 1 year ago

@bedeho thank you for putting this together, nice one 🙌

Just a few observations

  1. We also compensate creators for referrals, so total reward must involve: Base amount for reward for referrer multiplied by number of channels that have Reffer_id= referring channel_id.
  2. We also reward channels for manually uploaded videos, so this must be included into the events table.

cc @zeeshanakram3

bedeho commented 1 year ago
  1. This was actually meant to be this case the number of verified channels which signed up in the given period, multiplied by the base $JOY amount for this event, but sentence was cut a bit short.
  2. this one I don't think really works in any of this, best case is that you have to wrap it in some step in some of these tools, but now you are coupling in QN. I don't think we should do this, its not worth the added complexity.
dmtrjsg commented 1 year ago

@bedeho

  1. Thanks for clarification 👍
  2. I guess this can be done with a bunch of scripts where input is channel Id and data range and output is list of videos.. Which then can be added as a manual input in the tool we are discussing here? Or are you recommending to re-write the incentives towards YT sync exclusively?
bedeho commented 1 year ago
  1. yeah just drop it, not worth the effort. Sorry to not have stood by ground on this before, hope it does not cause too much extra work or wastes work done.
dmtrjsg commented 1 year ago

@zeeshanakram3 please try and estimate this wrt to duration before Monday.

chrlschwb commented 1 year ago

How will manual video upload be compensated? Is there a separate tool for that, apart from the YPP payment tool? If not, would it mean that all content creators have to create a YT video first?

bedeho commented 1 year ago

Manual uplaods are not going to be covered, it became too operationally complicated to deal with that gracefully for us in Gleev YPP, compared to the expected value. Other apps are of course free to do things differently.