PROVIDING OVERLAPPING TIME REDACTIONS IN MEDIA ITEMS

Providing overlapping time range redactions in media items like digital videos is disclosed without loss of information about the individual redactions therein. For example, a platform receives a set of redactions associated with a media item where at least some of the redactions overlap. A process is performed to determine a set of non-overlapping time ranges based on the set of redactions, where the redaction information is associated with individual non-overlapping time ranges. The correct redaction information from the corresponding overlapping time ranges will be applied to the non-overlapping time range redaction. This single non-overlapping redaction is stored as a single unit and has the advantage of requiring less storage space and processing power than multiple overlapping redactions, while retaining, in one implementation, all of the corresponding redaction information (e.g., labels) of the original correspondence overlapping redactions.

FIELD OF THE DISCLOSURE

The present disclosure relates to methods, computing platforms, and storage media for providing overlapping time range redactions in media items.

BACKGROUND

In the context of legal proceedings, for example, document review (or “doc” review) describes a process by which a party to a case analyzes documents and/or other media (e.g., video or audio) in their possession (e.g., possessed before the case or obtained through discovery) to determine which documents are relevant to the case. Attorneys often perform document review for their clients. Many times, certain parts of documents and/or other media need to be redacted before being viewed by another party to the case. Redactions are often performed on parts that are confidential, privileged, or otherwise sensitive.

During review of media items, such as video, audio and/or text files, a reviewer may wish to redact different spans of the media items for different reasons (or multiple reasons). Some conventional systems do not allow redactions to overlap, meaning that a given span cannot be associated with multiple different reasons for redaction. Reasons include marking various sections confidential, privileged, sensitive, etc. Some systems merge overlapping redactions into one; however, if a user wants to edit the redactions individually, the redaction stamps will no longer be associated with the correct time ranges. Some systems apply each redaction to a media item individually; however, it is inefficient to redact the same time span multiple times, redaction stamps are overwritten by subsequent passes, doing time-based searches on the redactions are inefficient because one cannot apply a binary search, and a redaction job cannot be easily divided into smaller parts assigned to different reviewers for a divide-and-conquer approach.

Conventional systems typically do not provide for redacting different spans of a media item for different reasons if such spans are overlapping. To obtain such redactions, conventional systems often require the media item to be processed separately for each different reason for redacting, thus multiplying the processing requirements and storage needs.

SUMMARY

One aspect of the present disclosure relates to a method for providing overlapping time range redactions in media items. The method includes receiving a media item. The media item includes one or both of video or audio. The method includes receiving a set of redactions associated with the media item including a first redaction and a second redaction. The first redaction corresponds to a first time range within the media item and the second redaction corresponds to a second time range within the media item. The first time range overlaps with the second time range. The method includes determining a set of non-overlapping time ranges based on the set of redactions. The method includes associating redaction information with individual non-overlapping time ranges. The redaction information relates to two or more redactions in the set of redactions.

Another aspect of the present disclosure relates to a computing platform configured for providing overlapping time range redactions in media items. The computing platform includes a non-transient computer-readable storage medium having executable instructions embodied thereon. The computing platform includes one or more hardware processors configured to execute the instructions. The processor(s) execute the instructions to receive a media item. The media item includes one or both of video or audio. The processor(s) execute the instructions to receive a set of redactions associated with the media item including a first redaction and a second redaction. The first redaction corresponds to a first time range within the media item and the second redaction corresponds to a second time range within the media item. The first time range overlaps with the second time range. The processor(s) execute the instructions to receive start and end times for each redaction in the set of redactions. The processor(s) execute the instructions to chronologically sort the start and end times into a list. The processor(s) execute the instructions to, for each region between two adjacent start or end times, determine any associated redactions of the set of redactions. The processor(s) execute the instructions to determine a set of non-overlapping time ranges based on the set of redactions. The processor(s) execute the instructions to associate redaction information with individual non-overlapping time ranges. The redaction information relates to two or more redactions in the set of redactions.

Yet another aspect of the present disclosure relates to a method for providing overlapping time range redactions in media items. The method includes receiving a media item. The media item includes one or both of video or audio. The method includes receiving a set of redactions associated with the media item including a first redaction and a second redaction. The first redaction corresponds to a first time range within the media item and the second redaction corresponds to a second time range within the media item. The first time range overlaps with the second time range. The method includes assigning an initial region to a duration of media item, the initial region being unassociated with any redactions. The method includes, for each redaction in the set of redactions, determining whether a given redaction starts after an end of a preceding redaction. The method includes, in response to the given redaction starting after the end of the preceding redaction, introducing two new regions to the duration of the media item including a first region adjacent to a second region, wherein the first region represents the given redaction, wherein the second region represents a remaining duration of the media item, and wherein the second region is unassociated with any redactions. The method includes, in response to the given redaction starting before the end of a preceding redaction, splitting a region containing a start time of the given redaction into two new regions at the start time of the given redaction. The method includes, in response to the given redaction ending before the end of a preceding redaction, splitting a region contain an end time of the given redaction into another two new regions at the end time of the given redaction, wherein the given redaction is associated with each region between the start time and end time of the given redaction. The method includes determining a set of non-overlapping time ranges based on the set of redactions. The method includes associating redaction information with individual non-overlapping time ranges. The redaction information relates to two or more redactions in the set of redactions.

DETAILED DESCRIPTION

Implementations described herein provide media item redaction capabilities that accommodate overlapping time range redactions in media items (e.g., digital videos) without loss of information about the individual redactions therein. For example, some implementations receive a set of redactions associated with a media item where at least some of the redactions overlap. The system performs a process (e.g., a split-regions process or a time-search process) to determine a set of non-overlapping time ranges based on the set of redactions, where the redaction information is associated with individual non-overlapping time ranges. The system applies the correct redaction information from the corresponding overlapping time ranges to the non-overlapping time range redaction. This single non-overlapping redaction is stored as a single unit and has the advantage of requiring less storage space and processing power than multiple overlapping redactions, while retaining, in one implementation, all of the corresponding redaction information (e.g., labels) of the original corresponding overlapping redactions. Some implementations associate a text stamp with each non-overlapping time range and display that stamp when the media item is played.

The disclosed system(s) and method(s) save significant computing resources, such as processing power and memory usage by cutting down the need to process a media item multiple times when there are multiple reasons for redacting spans that overlap. As such, the disclosed subject technology provides improvements to the functioning of the computer itself because it improves processing and efficiency in media redaction.

FIG.1illustrates overlapping redactions100being applied to a single media item, in accordance with one or more implementations. Some implementations start with an initial media item, segment it into various spans (e.g., time ranges in a video), generate redaction information with different spans, and create a final version of the media item with spans and associated redaction information. The redactions100include one or more redactions, shown inFIG.1as redactions 0, 1, 2, and 3. The redactions100are processed to obtain non-overlapping time ranges102. Individual non-overlapping time ranges102are associated with one or more redactions100, as indicated by redaction information103. The redaction information103conveys which redactions correspond to a given time range and their associated information. For example, time range104is defined as a duration of the media item between a start time106and an end time108. Being indicated by the redaction information103as corresponding to “[0, 1, 2],” the time range104is associated with redactions 0, 1, and 2. As another example, time range110is defined as a duration of the media item between a start time112and an end time114. Being indicated by the redaction information103as corresponding to “[3],” the time range110is associated with redaction 3, Different approaches can be performed to determine the various start/end times defining the non-overlapping time ranges and generate redaction information with each individual non-overlapping time range.

FIG.1Billustrates split regions200with overlapping redactions202in a single media item204, in accordance with one or more implementations. The redactions202include one or more redactions, shown inFIG.1Bas redactions 0, 1, and 2. At step206, an initial region207is assigned to a duration of media item204. The initial region207is unassociated with any redactions, as denoted by “[ ].” At step208, a first redaction (i.e., corresponding to redaction 0 of redactions202) is added to the media item204by adding a new region209associated with redaction 0, as detonated by “[0].”

At step210, a second redaction (i.e., corresponding to redaction 1 of redactions202) is added to the media item204. For each redaction in the set of redactions202, it is determined whether a given redaction (e.g., redaction 1) starts before an end of a preceding redaction (e.g., redaction 0). In response to the given redaction starting before the end of the preceding redaction, two new regions211aand211bare introduced to the duration of the media item. These regions together run the length of the second redaction (i.e., redaction 1 of redactions202) being added, and region211astarts at the beginning of redaction 1 and ends at the end of redaction 0, representing the portion where redaction 1 and redaction 0 overlap. Region211bstarts from the end of redaction 0 and goes to the end of redaction 1, representing the rest of the part of redaction 1 that does not overlap with redaction 0. Consequently, region211ais associated with redactions 0 and 1, as denoted by “[0, 1],” and a region211bis associated with redaction 1, as denoted by “[1].”

At step212, a third redaction (i.e., corresponding to redaction 2 of redactions202) is added to the media item204. In response to the given redaction starting before the end of a preceding redaction, a region containing a start time of the given redaction is split into two new regions at the start time of the given redaction. For example, a region213ais associated with redactions 0 and 1 as denoted by “[0, 1],” and a region213bis associated with redactions 0, 1, and 2, as denoted by “[0, 1, 2].” In addition, a region containing an end time of the given redaction is split into another two new regions at the end time of the given redaction. These regions together run the length of the third redaction (i.e., redaction 2 of redactions202) being added, and region213astarts at the beginning of redaction 1 and ends at the beginning of redaction 2, representing the portion where redaction 0 and redaction 1 overlap. Region213bstarts at the beginning of redaction 2 and from the end of redaction 0, representing the portion where redaction 0, redaction 1, and redaction 2 overlap. Region213cstarts at the end of redaction 0 and ends at the end of redaction 2, representing the portion where redaction 1 and redaction 2 overlap. Region213dstarts at the end of redaction 2 and ends at the end of redaction 1, representing the portion where redaction 1 exists by itself. Consequently, region213cis associated with redactions 1 and 2 as denoted by “[1, 2],” and a region213dassociated with redaction 1, as denoted by “[1].” A given redaction is associated with each region between the start time and end time of the given redaction.

At step214, non-overlapping time frames are assembled corresponding to the regions (e.g., regions213a,213b,213c, and213d) added in the preceding steps. Each span of the media item204is associated with zero or more redactions, depending on how different redactions overlap. Since redactions of differing types (e.g., confidential versus privileged) that overlap can be stored in a single version of the media item204, space in memory is saved and processing requirements are reduced.

FIG.1Cillustrates a time search process300with overlapping redactions302in a single media item304, in accordance with one or more implementations. The redactions302include one or more redactions, shown inFIG.1Cas redactions R0, R1, and R2. At step306, start and end times are obtained for each redaction in the set of redactions302. More specifically, time TO is determined as the start time of the media item304while time T6is determined as the end time of the media item304. For redaction R0, the start and end times are determined, respectively, as time T0and time T3. Times T1and T5are determined, respectively, as the start and end times of redaction R1. The redaction R2has a start time determined at time T2and an end time determined at T4.

At step308, the start and end times are sorted (e.g., chronologically) into a list. Since the media item304is processed first, redaction R0second, redaction R1, and finally redaction R2fourth, the start and end times are determined out of order (e.g., T0, T6, T3, T1, T5, T2, T4). Duplicate times are omitted from the list (e.g., when a given end time of one redaction coincides with a given start time of another redaction). Sorting the start and end times includes reordering based on when they occur in the media item304(e.g., T0, T1, T2, T3, T4, T5, T6) rather than the order in which they were determined.

At step310, the start and end time are mapped to non-overlapping time frames of the media item304. For example, time frame311amaps to a duration between times TO and T1, time frame311bmaps to a duration between times T1and T2, time frame311cmaps to a duration between times T2and T3, time frame311dmaps to a duration between times T3and T4, time frame311emaps to a duration between times T4and T5, and time frame311emaps to a duration between times T5and T6.

At step312, for each region or time frame between two adjacent start or end times, any associated redactions of the set of redactions302are determined, as illustrated by redaction information313. For example, time frame311ais associated with redaction R0(e.g., as indicated by “[0]” in the redaction information313); time frame311bis associated with redactions R0and R1(e.g., as indicated by “[0, 1]” in the redaction information313); time frame311cis associated with redactions R0, R1, and R2(e.g., as indicated by “[0, 1, 2]” in the redaction information313); time frame311dis associated with redactions R1and R2(e.g., as indicated by “[1, 2]” in the redaction information313); time frame311eis associated with redaction R1(e.g., as indicated by “[1]” in the redaction information313); and time frame311eis not associated with any redactions (e.g., as indicated by “[ ]” in the redaction information313).

FIG.2illustrates a system400configured for providing overlapping time range redactions in media items, in accordance with one or more implementations. In some implementations, system400includes one or more computing platforms402. Computing platform(s)402are configured to communicate with one or more remote platforms404according to a client/server architecture, a peer-to-peer architecture, and/or other architectures. Remote platform(s)404are configured to communicate with other remote platforms via computing platform(s)402and/or according to a client/server architecture, a peer-to-peer architecture, and/or other architectures. Users access system400via remote platform(s)404.

Computing platform(s)402are configured by machine-readable instructions406. Machine-readable instructions406include one or more instruction modules. The instruction modules include computer program modules. The instruction modules include one or more of media item obtaining module408, set receiving module410, set determination module412, redaction information associating module414, region assignment module416, redaction determination module418, region introducing module420, region splitting module422, start end time obtaining module424, start end time sorting module426, and/or other instruction modules.

Media item obtaining module408be configured to obtain a media item. The media item includes an electronic media file playable by an electronic media player. The media item includes one or both of video or audio. In some implementations, the media item includes texts (e.g., a text transcript of a deposition with timestamps). Set receiving module410is configured to receive a set of redactions associated with the media item including a first redaction and a second redaction. A given redaction of the set of redactions includes a span of the media item that is to be visually obscured and/or muted before being presented to a particular party. For example, a given redaction of the set of redactions is associated with one or more of audio only, video only, or audio and video of the given media item. The first redaction is associated with a first purpose (e.g., confidential information) for redacting and the second redaction is associated with a second purpose (e.g., privileged information) for redacting. The first redaction corresponds to a first time range within the media item and the second redaction corresponds to a second time range within the media item. The first time range overlaps with the second time range. The first time range overlapping with the second time frame includes at least a portion of the first time range coinciding with at least a portion of the second time range.

Set determination module412is configured to determine a set of non-overlapping time ranges based on the set of redactions. A given non-overlapping time range of the set of non-overlapping time frames fails to coincide with any other non-overlapping time ranges. The set of non-overlapping time ranges account for all redactions across a duration of the media item. The duration of the media item includes an entire duration of the media item.

Redaction information associating module414is configured to generate redaction information with individual non-overlapping time ranges. In some implementations, individual non-overlapping time ranges are associated with one or more of a start time or an end time. For example, the redaction information for a given non-overlapping time range is associated with one or more of a redaction identifier, a timestamp within the media item, confidentiality, a privilege, a sensitivity, an access level, and/or other redaction information. A given redaction identifier may include an alphanumeric code or tag associated with a given redaction. The redaction information relates to one or more redactions in the set of redactions.

Region assignment module416is configured to assign an initial region to a duration of media item. The duration of the media item includes an entire duration of the media item. The initial region is unassociated with any redactions. A given duration includes any span of the media item having a span start time and/or span end time that falls between the media item start time and the media item end time. An entire duration includes a span of the media item that shares a start time and an end time with the media item.

Redaction determination module418is configured to, for each redaction in the set of redactions, determine whether a given redaction starts after an end of a preceding redaction. The preceding redaction immediately precedes the given redaction. A start time of the preceding redaction immediately precedes a start time of the given redaction with any interstitial start times being absent. In one implementation, the redaction determination module418determines whether a redaction starts after the end of any or all preceding redactions, whereas the given redaction may overlap with a redaction besides the one that immediately preceded it.

Redaction determination module418is configured to, for each region between two adjacent start or end times, determine any associated redactions of the set of redactions. The two adjacent start or end times occur sequentially in the list with any interstitial start or end times being absent.

Region introducing module420is configured to, in response to the given redaction starting after the end of, in one implementation, all preceding redactions, introduce two new regions to the duration of the media item including a first region adjacent in time to a second region. The first region represents the given redaction. The second region represents a remaining duration of the media item. The remaining duration of the media item spans from an end time of the given redaction to an end of the media item. The second region is unassociated with any redactions.

Region splitting module422is configured to, in response to the given redaction starting before the end of a preceding redaction, split a region containing a start time of the given redaction into two new regions. The split occurs at the start time of the given redaction.

Region splitting module422is configured to, in response to the given redaction ending before the end of a preceding redaction, splitting a region containing an end time of the given redaction into another two new regions. The split occurs at the end time of the given redaction. The given redaction is associated with any region between the start time and end time of the given redaction. In one implementation, this is performed in response to the redaction ending before the end of all preceding redactions, whereas the given redaction may overlap with a redaction besides the one that immediately preceded it.

Start end time obtaining module424is configured to obtain start and end times for each redaction in the set of redactions.

Start end time sorting module426is configured to chronologically sort the start and end times into a list. Chronologically sorting the start and end times includes ordering the start and end times from earliest when playing the media item to latest when playing the media item. A given start or end time that coincides with another start time or end time is omitted from the list.

In some implementations, computing platform(s)402, remote platform(s)404, and/or external resources428are operatively linked via one or more electronic communication links. For example, such electronic communication links is established, at least in part, via a network such as the Internet and/or other networks. It will be appreciated that this is not intended to be limiting, and that the scope of this disclosure includes implementations in which computing platform(s)402, remote platform(s)404, and/or external resources428is operatively linked via some other communication media.

A given remote platform404includes one or more processors configured to execute computer program modules. The computer program modules are configured to enable an expert or user associated with the given remote platform404to interface with system400and/or external resources428, and/or provide other functionality attributed herein to remote platform(s)404. For example, a given remote platform404and/or a given computing platform402includes one or more of a server, a desktop computer, a laptop computer, a handheld computer, a tablet computing platform, a Smartphone, a gaming console, and/or other computing platforms.

External resources428include sources of information outside of system400, external entities participating with system400, and/or other resources. In some implementations, some or all of the functionality attributed herein to external resources428are provided by resources included in system400.

Computing platform(s)402includes electronic storage430, one or more processors432, and/or other components. Computing platform(s)402include communication lines, or ports to enable the exchange of information with a network and/or other computing platforms. Illustration of computing platform(s)402inFIG.2is not intended to be limiting. Computing platform(s)402include a plurality of hardware, software, and/or firmware components operating together to provide the functionality attributed herein to computing platform(s)402. For example, computing platform(s)402are implemented by a cloud of computing platforms operating together as computing platform(s)402, in some implementations.

Electronic storage430includes non-transitory storage media that electronically stores information. Electronic storage430includes computer memory. The electronic storage media of electronic storage430includes one or both of system storage that is provided integrally (i.e., substantially non-removable) with computing platform(s)402and/or removable storage that is removably connectable to computing platform(s)402via, for example, a port (e.g., a USB port, a firewire port, etc.) or a drive (e.g., a disk drive, etc.). Electronic storage430includes one or more of optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., magnetic tape, magnetic hard drive, floppy drive, etc.), electrical charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.), and/or other electronically readable storage media. Electronic storage430includes one or more virtual storage resources (e.g., cloud storage, a virtual private network, and/or other virtual storage resources). Electronic storage430stores software algorithms, information determined by processor(s)432, information received from computing platform(s)402, information received from remote platform(s)404, and/or other information that enables computing platform(s)402to function as described herein.

Processor(s)432are configured to provide information processing capabilities in computing platform(s)402. As such, processor(s)432include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information. Although processor(s)432is shown inFIG.2as a single entity, this is for illustrative purposes only. In some implementations, processor(s)432include a plurality of processing units. These processing units could be physically located within the same device, or processor(s)432could represent processing functionality of a plurality of devices operating in coordination. Processor(s)432are configured to execute modules408,410,412,414,416,418,420,422,424, and/or426, and/or other modules. Processor(s)432are configured to execute modules408,410,412,414,416,418,420,422,424, and/or426, and/or other modules by software; hardware; firmware; some combination of software, hardware, and/or firmware; and/or other mechanisms for configuring processing capabilities on processor(s)432. As used herein, the term “module” refers to any component or set of components that perform the functionality attributed to the module. This includes one or more physical processors during execution of processor readable instructions, the processor readable instructions, circuitry, hardware, storage media, or any other components.

It should be appreciated that although modules408,410,412,414,416,418,420,422,424, and/or426are illustrated inFIG.2as being implemented within a single processing unit, in implementations in which processor(s)432includes multiple processing units, one or more of modules408,410,412,414,416,418,420,422,424, and/or426are implemented remotely from the other modules. The description of the functionality provided by the different modules408,410,412,414,416,418,420,422,424, and/or426described below is for illustrative purposes, and is not intended to be limiting, as any of modules408,410,412,414,416,418,420,422,424, and/or426provide more or less functionality than is described. For example, one or more of modules408,410,412,414,416,418,420,422,424, and/or426could be eliminated, and some or all of its functionality would be provided by other ones of modules408,410,412,414,416,418,420,422,424, and/or426. As another example, processor(s)432are configured to execute one or more additional modules that perform some or all of the functionality attributed below to one of modules408,410,412,414,416,418,420,422,424, and/or426.

FIG.3is a diagram of example components of a device500, which corresponds to one or more of computing platform(s)402, remote platform(s)404, and/or other device(s) described herein. In some implementations, computing platform(s)402, remote platform(s)404, and/or other devices described herein include one or more devices500and/or one or more components of device500. As shown inFIG.3, device500includes a bus510, a processor520, a memory530, an input component540, an output component550, and a communication component560.

Bus510includes one or more components that enable wired and/or wireless communication among the components of device500. Bus510couples together two or more components ofFIG.3, such as via operative coupling, communicative coupling, electronic coupling, and/or electric coupling. Processor520includes a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field-programmable gate array, an application-specific integrated circuit, and/or another type of processing component. Processor520is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, processor520includes one or more processors capable of being programmed to perform one or more operations or processes described elsewhere herein.

Memory530includes volatile and/or nonvolatile memory. For example, memory530includes random access memory (RAM), read only memory (ROM), a hard disk drive, and/or another type of memory (e.g., a flash memory, a magnetic memory, and/or an optical memory). Memory530includes internal memory (e.g., RAM, ROM, or a hard disk drive) and/or removable memory (e.g., removable via a universal serial bus connection). Memory530is a non-transitory computer-readable medium. Memory530stores information, instructions, and/or software (e.g., one or more software applications) related to the operation of device500. In some implementations, memory530includes one or more memories that are coupled to one or more processors (e.g., processor520), such as via bus510.

Input component540enables device500to receive input, such as user input and/or sensed input. For example, input component540includes a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system sensor, an accelerometer, a gyroscope, and/or an actuator. Output component550enables device500to provide output, such as via a display, a speaker, and/or a light-emitting diode. Communication component560enables device500to communicate with other devices via a wired connection and/or a wireless connection. For example, communication component560includes a receiver, a transmitter, a transceiver, a modem, a network interface card, and/or an antenna.

Device500performs one or more operations or processes described herein. For example, a non-transitory computer-readable medium (e.g., memory530) stores a set of instructions (e.g., one or more instructions or code) for execution by processor520. Processor520executes the set of instructions to perform one or more operations or processes described herein. In some implementations, execution of the set of instructions, by one or more processors520, causes the one or more processors520and/or the device500to perform one or more operations or processes described herein. In some implementations, hardwired circuitry is used instead of or in combination with the instructions to perform one or more operations or processes described herein. Additionally, or alternatively, processor520could be configured to perform one or more operations or processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

The number and arrangement of components shown inFIG.3are provided as an example. Device500could include additional components, fewer components, different components, or differently arranged components than those shown inFIG.3. Additionally, or alternatively, a set of components (e.g., one or more components) of device500perform one or more functions described as being performed by another set of components of device500.

FIG.4Ais a flow chart of an example method600for providing overlapping time range redactions in media items, in accordance with one or more implementations. In some implementations, one or more process steps ofFIG.4Aare performed by a device including one or more of computing platform(s)402, remote platform(s)404, and/or other devices. In some implementations, one or more process steps ofFIG.4Aare performed by another device or a group of devices separate from or including the device.

As shown at step602, method600includes obtaining or receiving a media item. The media item includes one or both of video or audio (or text). For example, the device performs obtaining or receiving a media item. The media item includes one or both of video or audio, as described above.

As shown at step604, method600includes receiving a set of redactions associated with the media item including a first redaction and a second redaction. The first redaction corresponds to a first time range within the media item and the second redaction corresponds to a second time range within the media item. The first time range overlaps with the second time range. For example, the device performs receiving a set of redactions associated with the media item including a first redaction and a second redaction. The first redaction corresponds to a first time range within the media item and the second redaction corresponds to a second time range within the media item. The first time range overlaps with the second time range, as described above.

As shown at step606, method600includes determining a set of non-overlapping time ranges based on the set of redactions. For example, the device performs determining a set of non-overlapping time ranges based on the set of redactions, as described above.

As shown at step608, method600includes generating redaction information with individual non-overlapping time ranges. The redaction information relates to one or more redactions in the set of redactions. For example, the device performs generating redaction information with individual non-overlapping time ranges. The redaction information relates to one or more redactions in the set of redactions, as described above.

FIG.4Bshows additional steps corresponding to the steps shown inFIG.4A, in which split regions are used to accommodate overlapping time range redactions, in accordance with one or more implementations. As shown at step610, method600includes assigning an initial region to a duration of media item. The initial region is unassociated with any redactions. For example, the device performs assigning an initial region to a duration of media item. The initial region is unassociated with any redactions, as described above.

As shown at step612, method600includes for each redaction in the set of redactions, determining whether a given redaction starts after an end of a preceding redaction. For example, the device performs for each redaction in the set of redactions, determining whether a given redaction starts after an end of a preceding redaction, as described above.

As shown at step614, method600includes in response to the given redaction starting after the end of the preceding redaction, introducing two new regions to the duration of the media item including a first region adjacent to a second region. The first region represents the given redaction. The second region represents a remaining duration of the media item. The second region is unassociated with any redactions. For example, the device performs in response to the given redaction starting after the end of the preceding redaction, introducing two new regions to the duration of the media item including a first region adjacent to a second region. The first region represents the given redaction. The second region represents a remaining duration of the media item. The second region is unassociated with any redactions, as described above.

As shown at step616, method600includes in response to the given redaction starting before the end of a preceding redaction, splitting a region containing a start time of the given redaction into two new regions at the start time of the given redaction. For example, the device performs in response to the given redaction starting before the end of the preceding redaction, splitting a region containing a start time of the given redaction into two new regions at the start time of the given redaction, as described above. In one implementation, this is performed in response to the given redaction starting before the end of all preceding redactions, whereas the given redaction may overlap with a redaction besides the one that immediately preceded it.

As shown at step618, method600includes in response to the given redaction ending before the end of a preceding redaction, splitting a region containing an end time of the given redaction into another two new regions at the end time of the given redaction. The given redaction is associated with each region between the start time and end time of the given redaction. For example, the device performs in response to the given redaction starting before the end of the preceding redaction, splitting a region containing an end time of the given redaction into another two new regions at the end time of the given redaction. The given redaction is associated with each region between the start time and end time of the given redaction, as described above. In one implementation, this is performed in response to the given redaction ending before the end of the preceding redaction.

FIG.4Cshows additional steps corresponding to the steps shown inFIG.4A, in which time search is used to accommodate overlapping time range redactions, in accordance with one or more implementations. As shown at step620, method600includes obtaining start and end times for each redaction in the set of redactions. For example, the device performs obtaining start and end times for each redaction in the set of redactions, as described above.

As shown at step622, method600includes chronologically sorting the start and end times into a list. For example, the device performs chronologically sorting the start and end times into a list, as described above.

As shown at step624, method600includes for each region between two adjacent start or end times, determining any associated redactions of the set of redactions. For example, the device performs for each region between two adjacent start or end times, determining any associated redactions of the set of redactions, as described above.

Method600includes additional implementations, such as any single implementation or any combination of implementations described herein and/or in connection with one or more other processes described elsewhere herein.

As used herein, the term “component” is intended to be broadly construed as hardware, firmware, software or a combination of hardware and software.