CPC H04N 21/26258 (2013.01) [H04N 21/2393 (2013.01); H04N 21/454 (2013.01)] | 20 Claims |
1. A method, comprising:
at a server system associated with a media providing service, the server system having one or more processors and memory storing one or more programs including instructions executable by the one or more processors:
receiving a request to generate a playlist, the playlist including a sequence of media items;
receiving a plurality of constraints that define disqualification criteria for excluding media items from a respective slot in the sequence of media items, wherein:
the plurality of constraints for the respective slot in the sequence of media items includes at least one constraint that is based on an order of already-populated media items in the respective slots in the sequence of media items; and
the plurality of constraints is a subset, less than all, of a larger set of constraints for the respective slot in the sequence of media items, the larger set of constraints including multiple constraints that are independent of the already-populated media items in the respective slots in the sequence of media items;
generating the playlist by sequentially populating each respective slot in the sequence of media items, including, for a respective slot:
for each respective candidate media item of a plurality of candidate media items:
generating a respective score for each of a plurality of objectives; and
aggregating the respective scores for the plurality of objectives to produce an overall score for the respective candidate media item;
determining that none of the plurality of candidate media items meets the larger set of constraints;
in accordance with the determination that none of the plurality of candidate media items meets the larger set of constraints:
relaxing, for the respective slot, the larger set of constraints to produce the plurality of constraints that is the subset, less than all, of the larger set of constraints; and
selecting, for the respective slot, a respective media item from the plurality of candidate media items that meets the plurality of constraints for the respective slot in the sequence of media items and based on the overall score for each candidate media item of the plurality of candidate media items; and
providing the playlist to a user of the media providing service.
|