US20060112018A1 - Synchronizing contents of removable storage devices with a multimedia network - Google Patents
Synchronizing contents of removable storage devices with a multimedia network Download PDFInfo
- Publication number
- US20060112018A1 US20060112018A1 US10/997,418 US99741804A US2006112018A1 US 20060112018 A1 US20060112018 A1 US 20060112018A1 US 99741804 A US99741804 A US 99741804A US 2006112018 A1 US2006112018 A1 US 2006112018A1
- Authority
- US
- United States
- Prior art keywords
- network
- recordings
- recording
- removable storage
- recited
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000008859 change Effects 0.000 claims abstract description 38
- 230000001960 triggered effect Effects 0.000 claims abstract description 5
- 238000013475 authorization Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 9
- 230000009471 action Effects 0.000 claims description 5
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 claims 1
- 239000000344 soap Substances 0.000 description 12
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/2812—Exchanging configuration information on appliance services in a home automation network describing content present in a home automation network, e.g. audio video content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4135—Peripherals receiving signals from specially adapted client devices external recorder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/43615—Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44231—Monitoring of peripheral device or external card, e.g. to detect processing problems in a handheld device or the failure of an external recording device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
- H04N21/4586—Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
Definitions
- the XML text file listings include an exemplary schema for uploading a local inventory list of recordings to be reconciled with a network inventory list, and an exemplary schema for uploading recording metadata to be reconciled with a network inventory list and/or a network store of metadata.
- Each sample schema uses a simple object access protocol (SOAP) request and binding method.
- SOAP simple object access protocol
- the subject matter relates generally to multimedia networks and more specifically to synchronizing contents of removable storage devices with a multimedia network.
- Multimedia networks include home entertainment networks that connect personal computing devices, digital video recorders (DVRs), and television sets to a centralized content server. Multimedia networks also include subscription multimedia services that provide digital video recording (DVR) capability through set top boxes.
- DVR digital video recording
- the network server is best suited for maintaining the inventory as well as tracking the availability of recorded programs. This is because a server, e.g., of a commercial service, is the nerve center of the network, i.e., the “brain” that in many circumstances possesses the most reliable and authoritative information. Moreover, the central server typically stores or at least sends the multimedia content to the peripheral client nodes of the multimedia network.
- a removable storage device may consist of, for example, a solid-state flash drive or a hard drive mounted in a chassis.
- a firewire or a universal serial bus (USB) cable and jack is usually included with the removable storage device for plugging into a USB port of a set-top box or computing device. This makes it easy for a user to store recordings on the removable device and then unplug the device for portability.
- the removable storage device is portable to other systems that can alter the number of stored recordings or alter the recordings themselves, including their metadata.
- a user may add recordings to a removable storage device without the changes being detected by a particular multimedia network.
- the user may also swap removable drives with others, etc.
- an inventory of recordings kept by a central server of a multimedia network is likely to be dated and cannot be trusted, when removable storage devices are in play.
- a way is needed for multimedia networks to track recordings and their metadata on removable storage devices.
- Methods, systems, and engines are presented for synchronizing contents of removable storage devices with a multimedia network.
- a change in status of a connection between a removable storage device and a multimedia network is detected.
- a network inventory list of recordings is updated, triggered by the change in connection status.
- a change in the recording content, associated metadata, encryption, and/or authorization level needed to access a recording may also trigger an update of the network inventory list.
- a user may manually select an update of the inventory list.
- a network scheduler can use the updated network inventory list to accurately reflect those recordings actually available to the multimedia network for playback and recording, including the recordings on removable storage devices.
- FIG. 1 is a graphic representation of an exemplary multimedia network for synchronizing contents of removable storage devices with a multimedia network.
- FIG. 2 is a graphic representation of an exemplary multimedia network for synchronizing contents of removable storage devices with a multimedia network in which recordings on a disconnected storage device are listed as unavailable.
- FIG. 3 is a block diagram of an exemplary local inventory engine.
- FIG. 4 is a block diagram of an exemplary network inventory engine.
- FIG. 5 is a graphic representation of an exemplary multimedia network in which a network scheduler allows recordings on a removable storage device to be accessed across the multimedia network.
- FIG. 6 is a flow diagram of an exemplary method of synchronizing contents of removable storage devices with a multimedia network.
- Client nodes on a multimedia network can operate removable storage devices that contain digitally recorded program files (herein referred to as “recordings”). Problems may arise for a multimedia network when users modify the recordings on the removable storage devices when the removable storage devices are not attached to the multimedia network. Likewise, problems arise when digital rights are needed to access a recording, and either the digital rights requirement changes or the recording is made newly available to a network where not all the users possess the digital rights.
- a recording identifier such as a 16-bit or 32-bit globally unique identifier (GUID) is assigned to each recording.
- GUID globally unique identifier
- the GUID is securely associated with its corresponding recording via a digital rights management schema.
- a GUID may be encrypted along with the content of a recording or the GUID may be encrypted with a recording's metadata.
- a GUID or a copy thereof may be encrypted with a recording's metadata in order to verify another copy of the GUID stored elsewhere.
- server will be used herein to refer to a home network server, a multimedia network hub, or to a source of multimedia content in a subscription media service.
- a “server” usually includes programming and/or digital video recording scheduler that provides a playback schedule for the entire multimedia network.
- FIG. 1 shows an exemplary multimedia network 100 for synchronizing contents of a removable storage device 102 with the multimedia network 100 .
- a multimedia server 104 is connected with a client node 106 , in this case a set top box, that is capable of connecting and disconnecting with the removable storage device 102 .
- the removable storage device 102 may be, for example, a solid-state flash drive, or a hard drive mounted in a chassis with a firewire or universal serial bus (USB) cable and jack for plugging into a USB port of a set-top box 106 or computing device.
- USB universal serial bus
- an exemplary central scheduler 108 of the subscription service and/or multimedia network 100 is assisted by accurate and up-to-date knowledge of recordings that have previously been made and their availability status.
- a network inventory engine 110 that may include or be associated with the scheduler 108 , resides in the multimedia server 104 , or elsewhere on the multimedia network 100 , to keep an up-to-date network inventory list 112 of recordings that have a relationship with the multimedia network 100 .
- the network inventory list 112 may typically include an availability (or unavailability) status for each recording.
- the network inventory list 112 may also include or have access to metadata for each recording, such as electronic program guide (EPG) information and/or metadata that inform applications and other resources how to render or remotely manage the multimedia device and/or a recording.
- the network inventory list 112 may include, as part of the metadata for particular recordings, license keys that control whether or not the recording can be accessed.
- the exemplary multimedia network 100 may include digital rights managers, to be discussed more fully below. The digital rights managers may decide which clients are authorized to receive the license keys to access particular recordings. The digital rights managers may also allocate a certain number of the license keys and no more, in case the digital rights allow the recording to be accessed a limited number or times, or for a limited time.
- the metadata may be stored elsewhere than the network inventory list 112 but may still be addressable by the network inventory list 112 via pointers, such as the GUIDs of the recordings.
- a client node 106 that is, the illustrated set top box 106 , includes a local inventory engine 114 that maintains a local inventory list 116 of recordings.
- a local inventory engine 114 that maintains a local inventory list 116 of recordings.
- the illustrated multimedia network 100 that has both a network inventory engine 110 and one or more local inventory engines (e.g., 114 ) is only one example configuration of the subject matter. In other implementations of the subject matter, all the functions of a local inventory engine 114 may be included in a network inventory engine 110 , or in some other configuration of engines. Likewise, components of a network inventory engine 110 and a local inventory engine 114 may be distributed between the two engines in a manner that differs from an exemplary distribution of components that is illustrated in FIGS. 3 and 4 .
- the aforementioned local inventory list 116 provides a list of recordings currently available on a respective local client node 106 , such as the set top box 106 .
- the local inventory engine 114 maintains the local inventory list 116 by detecting changes in recordings and their metadata, and particularly by detecting when a removable storage device 102 containing the recordings and their metadata becomes connected or disconnected from the set top box 106 .
- a local inventory engine 114 detects the existence of current recordings on a removable storage device 102 and builds a local inventory list 116 to embody the detected recordings and metadata
- a network inventory engine 110 detects the existence of the recordings without the intervention of a local inventory engine 114 .
- the detection of actual recordings on the removable storage device 102 connected to a client node 106 or connected in some other manner to the multimedia network 100 is given priority over a pre-existing network inventory list 112 during reconciliation (“synchronization”) between actual recordings on a removable storage device 102 and the network inventory list 112 , which may have become dated.
- the multimedia server 104 assigns identifying GUIDs to the recordings and to associated metadata stored with the recordings.
- the GUIDs can be used to efficiently store and track the recordings and metadata and to update the network inventory list 112 , as shown; as well as inform applications (e.g., recommendation engines, scheduling engines) of the updated information.
- the network inventory engine 110 when one or more recordings are missing, as when a removable storage device 102 is disconnected from a set top box, instead of changing a status of the missing recordings to “deleted,” the network inventory engine 110 changes their status in the network inventory list 112 to “unavailable”, “potentially available,” or “previously recorded but unavailable,” etc., because the multimedia server 104 does not know what actually happened to the recording. Likewise, when the removable storage device 102 is reconnected (not shown in FIG. 2 ), the network inventory list 112 accessed by the network inventory engine 110 is updated and changes the status of the recordings back to available.
- the network inventory engine 110 may change the status of a recording from unavailable to a conditional availability, upon reconnection of the removable storage device 102 containing the secured recording.
- the name of the unauthorized recordings may not be displayed to those clients.
- a recording that is subject to digital rights management is flagged and when displayed to clients without authorization, the clients are offered an opportunity to procure or purchase a license to access the recording.
- FIG. 3 shows an exemplary local inventory engine 114 for building a local inventory list 116 , which can be uploaded or transferred to a multimedia server 104 for synchronization with a network inventory list 112 . It should be noted that some implementations of the subject matter do not have an exemplary local inventory engine 114 , but instead may combine functions of the local inventory engine 114 with the network inventory engine 110 to be discussed below with respect to FIG. 4 .
- An exemplary local inventory engine 114 may be implemented in software, hardware, or combinations of hardware, software, firmware, etc.
- the configuration of an exemplary local inventory engine 114 illustrated in FIG. 3 is only meant to be one example configuration.
- An exemplary local inventory engine 114 typically resides on a set top box, personal computing device, or other client node 106 of a multimedia network 100 .
- An exemplary local inventory engine 114 typically inventories recordings and associated information on the local device on which the local inventory engine 114 resides.
- an exemplary local inventory engine 114 may have a media connection monitor 302 to detect a connection state (or disconnection state) of one or more removable storage devices 102 that are capable of connecting to the local client node 106 .
- a directory monitor 304 may be included to detect changes within recording file directories on a removable storage device 102 .
- a GUID assigner 306 assigns a unique identifier to each recording, for reliable tracking.
- a media integrity verifier 308 performs a check-up on a newly connected removable storage device 102 .
- the media integrity verifier 308 may include a drive format verifier 310 , a file structure or “directory tree” verifier 312 , and a data integrity verifier 314 .
- some implementations of the subject matter may test only for the existence of a recording, and do not perform a data integrity test to determine if a recording file is corrupted, incomplete, or incorrectly identified.
- Some implementations may use a self-verifying data structure for recording metadata (e.g., EPG data) to detect incorrectness or incompleteness in metadata entries.
- metadata e.g., EPG data
- the data integrity verifier 314 includes a local digital rights management (DRM) engine 316 .
- the local DRM engine 316 can detect encrypted recordings and/or whether recordings are subject to DRM, and can flag secured recordings for further processing on a server 104 of the multimedia network 100 .
- the local DRM engine 316 is capable of determining a level of authorization that a prospective client on the network 100 will be required to possess in order to access the secured recording.
- recordings subject to DRM may also be flagged by the local DRM engine 316 for free distribution across the network 100 , but actual access by a client only if the client possesses or purchases a license.
- the secured recordings may be flagged in order to offer unauthorized users a chance to purchase a license to access the recordings.
- the local DRM engine 316 includes decryption keys (for accessing secured recordings) in the metadata to be uploaded to the network when a network inventory list 112 is updated. The network 100 can then serve the decryption keys to clients according to the digital rights possessed by the clients.
- a list builder 318 may include a GUID reader 320 and a metadata reader 322 to create the local inventory list 116 .
- metadata for each recording is also updated when the network inventory list 112 is updated.
- the list builder 318 aims to create a current inventory of recordings currently available to the local client node 106 hosting the local inventory engine 114 , particularly those recordings that reside on removable storage devices 102 .
- a periodic refresh engine 324 may be included to create a new or updated local inventory list 116 at predetermined time intervals, and therefore includes a timer 326 .
- the refresh time interval may be based on input from a content change monitor 328 , which detects changes in a file directory of the recordings (much like the directory monitory 304 ), thus, a best time interval for periodically refreshing the local inventory list 116 may be based, e.g., on a history of past time intervals between relevant changes in a directory.
- the periodic refresh engine 324 may default to triggering an update of the local inventory list 116 only when a removable storage device 102 is newly connected to the local client node 106 or only when a data content of a recording changes on a connected removable storage device 102 .
- the media connection monitor 302 may trigger an update of the local inventory list 116 if a removable storage device 102 is coming online at the local client node 106 , e.g., set top box.
- the directory monitor 304 may trigger an update of the local inventory list 116 if monitored directories signal that some contents have changed, as mentioned.
- the GUID assigner 306 gives each unique recording a unique identification number.
- the assigned GUID allows a recording to be differentiated from other recordings regardless of where the recording resides. Thus, a recording can be identified even if it is moved or traded to different removable storage devices 102 .
- the assigned GUID is used to match up various entries about a recording in an exemplary local inventory list 116 and in an exemplary network inventory list 112 . If a recording disappears, then a human identifier, such as a program name, that corresponds to the same GUID as that of the missing recording can be flagged as unavailable in the (server's) network inventory list 112 and in a user interface. If the missing recording reappears, then the status can be changed back to “available.”
- Recordings can move between devices or appear on multiple devices due to users manually sharing recordings.
- the ability to track recordings by a GUID facilitates tracking as the GUID may move between devices but not the data content of the recording itself.
- the media integrity verifier 308 checks if a newly connected removable storage device 102 is formatted, and then examines a particular location (e.g., a file path, directory path, and/or subdirectories) where recordings and respective metadata, each identified by a GUID, are expected to be found. Directories may also be named with the GUIDs. As mentioned, some implementations check only for existence or presence of a recording while other implementations perform a more in-depth integrity check of the recording's digital file and/or the removable storage device 102 on which it resides.
- a particular location e.g., a file path, directory path, and/or subdirectories
- Directories may also be named with the GUIDs.
- some implementations check only for existence or presence of a recording while other implementations perform a more in-depth integrity check of the recording's digital file and/or the removable storage device 102 on which it resides.
- the list builder 318 creates or updates a local inventory list 116 of recordings currently available to a set top box or other client node 106 at which one or more removable storage devices 102 can be connected.
- a set top box may cache a local inventory list 116 in memory and perform maintenance on the list whenever the media connection monitor 302 or the directory monitor 304 detect a change.
- the list builder 318 may refresh the local inventory list 116 as triggered by the periodic refresh engine 324 , described above. Even further, a refresh can be triggered explicitly by user action or if certain tasks are performed, such as moving or deleting a recording from a displayed list of recordings in a user interface.
- logic built into the fabric of the local inventory engine 114 may cause the local inventory list 116 to be uploaded to the network inventory engine 110 for synchronization with the network inventory list 112 .
- the local inventory list 116 since it contains the most current information and metadata about recordings actually available to a client node 106 and/or removable storage device 102 associated with the client node 106 , takes priority during synchronization over a pre-existing network inventory list 112 .
- a local inventory engine 114 uploads a local inventory list 116 associated with a client node of a multimedia network 100 to an Internet website associated with a multimedia server 104 , for example, via a URL such as MediaServiceNetwork.com (intended to be a fictional sample URL name).
- the network scheduler 108 is an XML web service.
- One implementation uses an extensible markup language (XML) vehicle for the upload.
- Appendix A shows a sample schema for an upload in which the local inventory list 116 is composed of the GUIDs of recordings currently available to the local client node 106 .
- the sample schema uses a Simple Object Access Protocol (SOAP) request and response binding method in XML.
- SOAP Simple Object Access Protocol
- the list builder 318 may also include a metadata reader 322 .
- the metadata includes EPG information, but the metadata can also include other information about the actual recording.
- the metadata can be used to drive remote applications that can remotely manage a recording, playback, or storage of the recording, allowing additional detail of the recording to be used or displayed. Metadata may also be employed to validate the recording, ensuring that the recording integrity has not been compromised.
- the metadata itself may be stored on both the multimedia server 104 and with the actual data of the recording on the removable storage device 102 .
- the metadata may be uploaded to a multimedia server 104 along with the local inventory list 116 .
- a local inventory engine 114 uploads metadata associated with a local inventory list 116 to an Internet website associated with a multimedia server 104 via a URL such as MediaServiceNetwork.com (again, intended to be a fictional sample URL name).
- the network scheduler 108 is an XML web service.
- One implementation uses an extensible markup language (XML) vehicle for the upload.
- Appendix B shows a sample schema for an upload of recording metadata to be reconciled with the inventory list 112 and/or a network store of metadata.
- the sample schema uses a Simple Object Access Protocol (SOAP) request and response binding method in XML.
- SOAP Simple Object Access Protocol
- FIG. 4 shows an exemplary network inventory engine 110 that maintains a network inventory list 112 .
- the network inventory list 112 aims to encompasses recordings currently available on diverse removable storage devices 102 so that the exemplary network inventory engine 110 can make the updated inventory information available to entities on the network, such as the aforementioned network scheduler 108 .
- An exemplary network inventory engine 110 may be implemented in software, hardware, or combinations of hardware, software, firmware, etc.
- the configuration of an exemplary network inventory engine 110 illustrated in FIG. 4 is only meant to be one example configuration.
- the network inventory engine 110 may include a network configuration monitor 402 to provide the multimedia network 100 an awareness of client nodes 106 attached to the multimedia network 100 .
- a media connection monitor 404 similar to the connection monitor 302 in the local inventory engine 114 , may be included to provide the multimedia network 100 with awareness of removable storage devices 102 currently connected to client nodes 106 in the multimedia network 100 .
- a local inventory list reader 406 reads a list of currently available recordings built by a local inventory engine 114 .
- the local inventory list reader 406 uploads a local inventory list 116 and related metadata as information stored in an XML vehicle, such as the sample schema described above with respect to the list builder 318 and shown below in Appendices A and B.
- a digital rights manager 408 may be included to update digital rights management (DRM) information that may be present, for example, as part of the uploaded metadata.
- the digital rights manager 408 may direct the network inventory engine 110 to require authorization before disseminating newly available recordings to which digital rights requirements are attached to clients on the multimedia network 100 .
- the digital rights manager 408 may track whether a particular client node 106 has the rights, encryption keys, etc., to receive, play back, or store a recording.
- the digital rights requirements attached to a secured recording that is newly available to the network 100 from a removable drive 102 of a client 106 can be updated and/or modified by the network 100 so that the secured recording can be disseminated freely to clients. But when playback of the secured recording is requested, the digital rights manager 408 checks for appropriate digital rights and if the client 106 does not have proper authorization, the client 106 may be offered an opportunity to procure or purchase a license.
- a synchronizer 410 performs reconciliation between one or more local inventory lists 116 and the network inventory list 112 .
- a synchronizer 410 may include a GUID reader 412 and a metadata reader 414 similar to those in a local inventory engine 114 .
- the network inventory engine 110 compares the network inventory list 112 with uploaded local inventory lists 116 and determines which recordings are new, missing, etc.
- logic used in the synchronization to compare the uploaded local inventory list 116 to the network inventory list 112 involves comparisons to determine which recordings exist in each list.
- the identities of recordings that exist only in the uploaded local inventory list 116 are incorporated into the network inventory list 112 as new recordings and the recordings that exist only in the network inventory list 112 may be marked unavailable.
- Recordings that are no longer present are marked as unavailable instead of deleted, to allow some flexibility for how recurring recordings are handled—for example, periodic recordings of a television series.
- a user may choose to treat recordings marked as unavailable as deleted or archived, thus changing how a recurring recording mechanism handles the missing episodes of the series.
- the assigned GUID and the associated metadata are uploaded to the multimedia server 104 .
- an update dialogue engine 416 included in the synchronizer 410 may request more information from the client node 106 or may request metadata associated with the recording.
- the network inventory engine 110 determines that a recording is new to the network inventory list 112 , the only information about the recording may be its GUID.
- the update dialogue engine 416 uses the GUID to find other information about the recording, such as its location and/or other metadata.
- a network scheduler 108 may request more information about a recording from the network inventory engine 110 , which in turn requests the information from the client node 106 via the update dialogue engine 416 .
- a marking engine 418 may also be included in the synchronizer 410 to designate whether a particular recording in the network inventory list 112 is available or unavailable.
- a user interface generator 420 converts the network inventory list 112 into a serviceable user interface for each client node 106 , while an update broadcaster 422 sends information from the updated network inventory list 112 to applications and nodes that use it, notably a network programming and/or recording scheduler 108 .
- FIG. 5 shows an exemplary multimedia network 500 for sharing and/or scheduling a recording that exists on a removable storage device, across multiple nodes of the multimedia network.
- the illustrated example configuration is only one arrangement for achieving the sharing, many other configurations are possible.
- the exemplary multimedia network 500 consists of a multimedia server 104 communicatively coupled with multiple client nodes, such as set top boxes and one or more personal computing devices (i.e., 502 , 504 , 506 , 508 ).
- the multimedia server 104 may include a network inventory engine 110 and a network inventory list 112 as well as a network scheduler 108 .
- Each client node may include a respective local inventory engine ( 510 , 512 , 514 , 516 ).
- Each client node may also be capable of connecting with one or more respective removable storage devices ( 518 , 520 , 522 , 524 ).
- a digital rights manager 408 Assuming that a digital rights manager 408 has determined that there are no restrictions upon sharing recording contents that exist on respective removable storage devices 518 , 520 , 522 , 524 , the recording content of a removable storage device may become instantly available to client nodes across the multimedia network 100 . Hence, a given client node, such as set top box 508 may be able to access the content of all the removable storage devices currently connected to the multimedia network 500 . If digital rights management is active, that is, if some of the recordings have restrictions upon their free dissemination, then clients may be guided toward acquiring a license. In another variation, a digital rights manager 408 has the ability to keep secured recordings private to a particular client or clients and not shared with unauthorized users on the network 100 . In this case, secured recordings are flagged and only tied to a particular client or group of clients.
- a user of the first set top box 508 can access content via the user interface 526 that is stored on a removable storage device 518 that is connected only to a second set top box 502 .
- each set top box or personal computing device uploads a respective local inventory list 116 to the multimedia server 104 to be synchronized with the network inventory list 112 .
- the network scheduler 108 uses the up-to-date network inventory list 112 to produce a programming availability schedule (e.g., as shown in user interface 526 ) that can allow access to the content of all connected removable storage devices ( 518 , 520 , 522 , 524 ) by any one of the client nodes ( 502 , 504 , 506 , 508 ).
- a programming availability schedule e.g., as shown in user interface 526
- An exemplary method of the subject matter includes detecting a change in a connection between a removable storage device and a multimedia network, and then updating a network inventory list of the recordings based on the change in connection.
- FIG. 6 shows a more detailed exemplary method 600 of synchronizing contents of removable storage devices with a multimedia network.
- the exemplary method 600 may be performed by hardware, software, or combinations of both, for example, by elements of an exemplary network inventory engine 110 and/or a local inventory engine 114 .
- a change in a connection state of a removable storage device e.g., a connection to a set top box of a multimedia network, is detected.
- a media connection monitor 302 may determine that a particular removable storage device 102 has been newly connected or disconnected to a set top box.
- the exemplary method 600 determines whether the removable storage device is connected to the set top box. If the removable storage device is not connected, then the exemplary method 600 branches to block 606 , but if the removable storage device is connected, then the exemplary method 600 branches to block 608 .
- recording IDs on a network inventory list that correspond to recordings on the disconnected storage device are marked as unavailable.
- a marking engine 418 of a network inventory engine 110 may keep track of the available/unavailable attribute so that availability of recordings may be displayed on a user interface for interaction with a user or transferred to applications, such as a network scheduler 108 that coordinates playback and recording of available multimedia content according to a time schedule.
- the exemplary method 600 builds a local inventory list 116 of the recordings that currently exist on the connected storage device.
- a list builder 318 of a local inventory engine 114 may first check the physical and data integrity of a removable storage device 102 and then enlist a GUID reader 320 and a metadata reader 322 to build the local inventory list 116 .
- recordings that are subject to digital rights management may be flagged for processing on a server 104 of the multimedia network 100 .
- a local digital rights management engine 316 may detect an encrypted recording and in one implementation is capable of determining a level of authorization that a prospective client on the network 100 would be required to possess in order to access the secured recording. Recordings subject to DRM may also be flagged for access if a client purchases a license, that is, the recordings are flagged for a license purchase offer.
- the local DRM engine 316 includes decryption keys for secured recordings in metadata associated with the recordings. A network server 104 can then distribute the keys according to security rules or according to digital rights possessed by recipients.
- the local inventory list from block 608 is uploaded to a multimedia server.
- the local inventory list 116 consists mostly of the GUIDs of recordings found on the removable storage device 102 . This type of local inventory list 116 provides knowledge only of the existence or nonexistence of a recording on the removable storage device.
- the exemplary method 600 can also include an upload of metadata associated with each GUID.
- the local inventory list is compared with a network inventory list for the connected removable device.
- a synchronizer 410 may compare the local inventory list 116 with the network list 112 .
- the local inventory list 116 takes precedence over the network inventory list 112 in an accord or synchronization of the recording IDs on each list, as the local inventory list 116 has the most current and accurate information about which recordings actually exist on the removable storage device 102 .
- recordings subject to DRM that were flagged at block 609 are integrated into the network 100 .
- an authorization requirement—i.e., a DRM status—of each secured recording flagged at block 609 is checked and updated if necessary to function on the network 100 . That is, the secured recording may be made available to all clients on the network 100 , but flagged to be accompanied by an offer for unauthorized users to purchase an access license. Or, flagged recordings may be restricted to a certain number of copy or playback operations on the network 100 . Likewise, flagged recordings may be restricted to a temporally limited availability period on the network 100 .
- the exemplary method 600 determines if a recording ID exists only on the network inventory list. If yes, the exemplary method 600 branches to block 616 , but if no, the exemplary method 600 branches to block 618 .
- the recording ID exists only on the network list, then the recording is marked as unavailable, since it does not exist on the removable storage device.
- the exemplary method 600 determines if the recording ID exists only on the local inventory list. If no, the exemplary method 600 branches to block 620 , but if yes, the exemplary method 600 branches to block 622 .
- the recording ID of a recording on the removable storage device since the recording ID of a recording on the removable storage device exists on both the local inventory list and the network inventory list, the recording ID remains unaltered on the network inventory list. It should be noted that in some implementations of an exemplary method 600 , a mere change in the data content of a recording or in a single metadatum associated with a recording is sufficient to trigger an update of the network inventory list 112 according to the instant exemplary method 600 .
- the recording on the removable storage device is new to the multimedia network.
- An ID e.g., a GUID, for the new recording on the removable storage device is added to the network inventory list.
- the metadata may include electronic program guide (EPG) information, but may also include information relevant to the display of the multimedia content, or control information that can be used by an application that exerts remote management of the recording.
- EPG electronic program guide
- the metadata may also include digital rights information that designates which clients can receive, playback, and/or store the recording.
- program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- program modules may also be practiced in distributed communications environments where tasks are performed over wireless communication by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote communications device storage media including memory storage devices.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Automation & Control Theory (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Storage Device Security (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- Two sets of extensible markup language (XML) text file listings used in accordance with the subject matter are provided in two appendices after the abstract on four sheets of paper and incorporated by reference into the specification. The XML text file listings include an exemplary schema for uploading a local inventory list of recordings to be reconciled with a network inventory list, and an exemplary schema for uploading recording metadata to be reconciled with a network inventory list and/or a network store of metadata. Each sample schema uses a simple object access protocol (SOAP) request and binding method.
- The subject matter relates generally to multimedia networks and more specifically to synchronizing contents of removable storage devices with a multimedia network.
- Multimedia networks include home entertainment networks that connect personal computing devices, digital video recorders (DVRs), and television sets to a centralized content server. Multimedia networks also include subscription multimedia services that provide digital video recording (DVR) capability through set top boxes.
- In these conventional types of multimedia networks, the network server is best suited for maintaining the inventory as well as tracking the availability of recorded programs. This is because a server, e.g., of a commercial service, is the nerve center of the network, i.e., the “brain” that in many circumstances possesses the most reliable and authoritative information. Moreover, the central server typically stores or at least sends the multimedia content to the peripheral client nodes of the multimedia network.
- In many multimedia networks, client nodes, such as local set top boxes and personal computers, increasingly have the capability to connect with removable storage devices. A removable storage device may consist of, for example, a solid-state flash drive or a hard drive mounted in a chassis. A firewire or a universal serial bus (USB) cable and jack is usually included with the removable storage device for plugging into a USB port of a set-top box or computing device. This makes it easy for a user to store recordings on the removable device and then unplug the device for portability. The removable storage device is portable to other systems that can alter the number of stored recordings or alter the recordings themselves, including their metadata.
- A user may add recordings to a removable storage device without the changes being detected by a particular multimedia network. The user may also swap removable drives with others, etc. Thus, an inventory of recordings kept by a central server of a multimedia network is likely to be dated and cannot be trusted, when removable storage devices are in play. A way is needed for multimedia networks to track recordings and their metadata on removable storage devices.
- Methods, systems, and engines are presented for synchronizing contents of removable storage devices with a multimedia network. In one implementation, a change in status of a connection between a removable storage device and a multimedia network is detected. A network inventory list of recordings is updated, triggered by the change in connection status. A change in the recording content, associated metadata, encryption, and/or authorization level needed to access a recording may also trigger an update of the network inventory list. Further, a user may manually select an update of the inventory list. A network scheduler can use the updated network inventory list to accurately reflect those recordings actually available to the multimedia network for playback and recording, including the recordings on removable storage devices.
-
FIG. 1 is a graphic representation of an exemplary multimedia network for synchronizing contents of removable storage devices with a multimedia network. -
FIG. 2 is a graphic representation of an exemplary multimedia network for synchronizing contents of removable storage devices with a multimedia network in which recordings on a disconnected storage device are listed as unavailable. -
FIG. 3 is a block diagram of an exemplary local inventory engine. -
FIG. 4 is a block diagram of an exemplary network inventory engine. -
FIG. 5 is a graphic representation of an exemplary multimedia network in which a network scheduler allows recordings on a removable storage device to be accessed across the multimedia network. -
FIG. 6 is a flow diagram of an exemplary method of synchronizing contents of removable storage devices with a multimedia network. - Overview
- Client nodes on a multimedia network can operate removable storage devices that contain digitally recorded program files (herein referred to as “recordings”). Problems may arise for a multimedia network when users modify the recordings on the removable storage devices when the removable storage devices are not attached to the multimedia network. Likewise, problems arise when digital rights are needed to access a recording, and either the digital rights requirement changes or the recording is made newly available to a network where not all the users possess the digital rights.
- The subject matter described herein provides methods, systems, and engines that can track the state of a digital recording for the benefit of a multimedia network based on a variety of changes to the recording, to the recording's metadata, to a level of authorization needed to access the recording, to the recording's encryption, or to the recording's environment on a removable storage device, etc. In one implementation, a recording identifier, such as a 16-bit or 32-bit globally unique identifier (GUID) is assigned to each recording. The state of each recording as it exists on a particular removable storage device can be discerned by a client node of the multimedia network and synchronized via the GUID to a network inventory list maintained at a home media server or maintained at a hub of a subscription media service.
- In one implementation, the GUID is securely associated with its corresponding recording via a digital rights management schema. Thus, a GUID may be encrypted along with the content of a recording or the GUID may be encrypted with a recording's metadata. Further, a GUID or a copy thereof may be encrypted with a recording's metadata in order to verify another copy of the GUID stored elsewhere. These security measures for a recording's GUID can allow a client in possession of an encrypted recording to detect and list the recording for the benefit of itself and for a network, but do not allow an unauthorized user with malicious intent to detect the recording, decrypt the recording, and/or gain access to the GUID embedded in a recording via encryption for purposes of altering or removing the GUID.
- The term “server” will be used herein to refer to a home network server, a multimedia network hub, or to a source of multimedia content in a subscription media service. In general, a “server” usually includes programming and/or digital video recording scheduler that provides a playback schedule for the entire multimedia network.
- Exemplary Systems
-
FIG. 1 shows anexemplary multimedia network 100 for synchronizing contents of aremovable storage device 102 with themultimedia network 100. Amultimedia server 104 is connected with aclient node 106, in this case a set top box, that is capable of connecting and disconnecting with theremovable storage device 102. Theremovable storage device 102 may be, for example, a solid-state flash drive, or a hard drive mounted in a chassis with a firewire or universal serial bus (USB) cable and jack for plugging into a USB port of a set-top box 106 or computing device. - In order to support a network-based DVR environment, an exemplary
central scheduler 108 of the subscription service and/ormultimedia network 100 is assisted by accurate and up-to-date knowledge of recordings that have previously been made and their availability status. Accordingly, anetwork inventory engine 110 that may include or be associated with thescheduler 108, resides in themultimedia server 104, or elsewhere on themultimedia network 100, to keep an up-to-datenetwork inventory list 112 of recordings that have a relationship with themultimedia network 100. Thenetwork inventory list 112 may typically include an availability (or unavailability) status for each recording. - The
network inventory list 112 may also include or have access to metadata for each recording, such as electronic program guide (EPG) information and/or metadata that inform applications and other resources how to render or remotely manage the multimedia device and/or a recording. In addition, thenetwork inventory list 112 may include, as part of the metadata for particular recordings, license keys that control whether or not the recording can be accessed. Thus, theexemplary multimedia network 100 may include digital rights managers, to be discussed more fully below. The digital rights managers may decide which clients are authorized to receive the license keys to access particular recordings. The digital rights managers may also allocate a certain number of the license keys and no more, in case the digital rights allow the recording to be accessed a limited number or times, or for a limited time. - Alternatively, the metadata may be stored elsewhere than the
network inventory list 112 but may still be addressable by thenetwork inventory list 112 via pointers, such as the GUIDs of the recordings. - In one implementation, a
client node 106, that is, the illustratedset top box 106, includes a local inventory engine 114 that maintains alocal inventory list 116 of recordings. It should be noted that the illustratedmultimedia network 100 that has both anetwork inventory engine 110 and one or more local inventory engines (e.g., 114) is only one example configuration of the subject matter. In other implementations of the subject matter, all the functions of a local inventory engine 114 may be included in anetwork inventory engine 110, or in some other configuration of engines. Likewise, components of anetwork inventory engine 110 and a local inventory engine 114 may be distributed between the two engines in a manner that differs from an exemplary distribution of components that is illustrated inFIGS. 3 and 4 . - The aforementioned
local inventory list 116 provides a list of recordings currently available on a respectivelocal client node 106, such as the settop box 106. The local inventory engine 114 maintains thelocal inventory list 116 by detecting changes in recordings and their metadata, and particularly by detecting when aremovable storage device 102 containing the recordings and their metadata becomes connected or disconnected from the settop box 106. - Depending on the implementation, either a local inventory engine 114 detects the existence of current recordings on a
removable storage device 102 and builds alocal inventory list 116 to embody the detected recordings and metadata, or, anetwork inventory engine 110 detects the existence of the recordings without the intervention of a local inventory engine 114. The detection of actual recordings on theremovable storage device 102 connected to aclient node 106 or connected in some other manner to themultimedia network 100 is given priority over a pre-existingnetwork inventory list 112 during reconciliation (“synchronization”) between actual recordings on aremovable storage device 102 and thenetwork inventory list 112, which may have become dated. - If recordings that were not previously present to the network are newly detected on a
removable storage device 102, for example, the illustrated “Blade Runner” and “Mad Max,” then themultimedia server 104 assigns identifying GUIDs to the recordings and to associated metadata stored with the recordings. The GUIDs can be used to efficiently store and track the recordings and metadata and to update thenetwork inventory list 112, as shown; as well as inform applications (e.g., recommendation engines, scheduling engines) of the updated information. - As shown in
FIG. 2 , when one or more recordings are missing, as when aremovable storage device 102 is disconnected from a set top box, instead of changing a status of the missing recordings to “deleted,” thenetwork inventory engine 110 changes their status in thenetwork inventory list 112 to “unavailable”, “potentially available,” or “previously recorded but unavailable,” etc., because themultimedia server 104 does not know what actually happened to the recording. Likewise, when theremovable storage device 102 is reconnected (not shown inFIG. 2 ), thenetwork inventory list 112 accessed by thenetwork inventory engine 110 is updated and changes the status of the recordings back to available. - If a recording is subject to digital rights management, the
network inventory engine 110 may change the status of a recording from unavailable to a conditional availability, upon reconnection of theremovable storage device 102 containing the secured recording. In one implementation, for users that do not have digital rights to access a recording, the name of the unauthorized recordings may not be displayed to those clients. In another implementation, a recording that is subject to digital rights management is flagged and when displayed to clients without authorization, the clients are offered an opportunity to procure or purchase a license to access the recording. - Exemplary Inventory Engines
-
FIG. 3 shows an exemplary local inventory engine 114 for building alocal inventory list 116, which can be uploaded or transferred to amultimedia server 104 for synchronization with anetwork inventory list 112. It should be noted that some implementations of the subject matter do not have an exemplary local inventory engine 114, but instead may combine functions of the local inventory engine 114 with thenetwork inventory engine 110 to be discussed below with respect toFIG. 4 . An exemplary local inventory engine 114 may be implemented in software, hardware, or combinations of hardware, software, firmware, etc. The configuration of an exemplary local inventory engine 114 illustrated inFIG. 3 is only meant to be one example configuration. - An exemplary local inventory engine 114 typically resides on a set top box, personal computing device, or
other client node 106 of amultimedia network 100. An exemplary local inventory engine 114 typically inventories recordings and associated information on the local device on which the local inventory engine 114 resides. Thus, an exemplary local inventory engine 114 may have a media connection monitor 302 to detect a connection state (or disconnection state) of one or moreremovable storage devices 102 that are capable of connecting to thelocal client node 106. Adirectory monitor 304 may be included to detect changes within recording file directories on aremovable storage device 102. AGUID assigner 306 assigns a unique identifier to each recording, for reliable tracking. - A
media integrity verifier 308 performs a check-up on a newly connectedremovable storage device 102. Thus, themedia integrity verifier 308 may include adrive format verifier 310, a file structure or “directory tree”verifier 312, and adata integrity verifier 314. Alternatively, some implementations of the subject matter may test only for the existence of a recording, and do not perform a data integrity test to determine if a recording file is corrupted, incomplete, or incorrectly identified. Some implementations may use a self-verifying data structure for recording metadata (e.g., EPG data) to detect incorrectness or incompleteness in metadata entries. - In one implementation, the
data integrity verifier 314 includes a local digital rights management (DRM)engine 316. Thelocal DRM engine 316 can detect encrypted recordings and/or whether recordings are subject to DRM, and can flag secured recordings for further processing on aserver 104 of themultimedia network 100. In one implementation, thelocal DRM engine 316 is capable of determining a level of authorization that a prospective client on thenetwork 100 will be required to possess in order to access the secured recording. In a variation, recordings subject to DRM may also be flagged by thelocal DRM engine 316 for free distribution across thenetwork 100, but actual access by a client only if the client possesses or purchases a license. That is, the secured recordings may be flagged in order to offer unauthorized users a chance to purchase a license to access the recordings. In one implementation, thelocal DRM engine 316 includes decryption keys (for accessing secured recordings) in the metadata to be uploaded to the network when anetwork inventory list 112 is updated. Thenetwork 100 can then serve the decryption keys to clients according to the digital rights possessed by the clients. - A
list builder 318 may include aGUID reader 320 and ametadata reader 322 to create thelocal inventory list 116. In some implementations, metadata for each recording is also updated when thenetwork inventory list 112 is updated. Thelist builder 318 aims to create a current inventory of recordings currently available to thelocal client node 106 hosting the local inventory engine 114, particularly those recordings that reside onremovable storage devices 102. - A
periodic refresh engine 324 may be included to create a new or updatedlocal inventory list 116 at predetermined time intervals, and therefore includes atimer 326. The refresh time interval may be based on input from acontent change monitor 328, which detects changes in a file directory of the recordings (much like the directory monitory 304), thus, a best time interval for periodically refreshing thelocal inventory list 116 may be based, e.g., on a history of past time intervals between relevant changes in a directory. Alternatively, theperiodic refresh engine 324 may default to triggering an update of thelocal inventory list 116 only when aremovable storage device 102 is newly connected to thelocal client node 106 or only when a data content of a recording changes on a connectedremovable storage device 102. - The media connection monitor 302 may trigger an update of the
local inventory list 116 if aremovable storage device 102 is coming online at thelocal client node 106, e.g., set top box. Likewise the directory monitor 304 may trigger an update of thelocal inventory list 116 if monitored directories signal that some contents have changed, as mentioned. - As noted above, the
GUID assigner 306 gives each unique recording a unique identification number. The assigned GUID allows a recording to be differentiated from other recordings regardless of where the recording resides. Thus, a recording can be identified even if it is moved or traded to differentremovable storage devices 102. - The assigned GUID is used to match up various entries about a recording in an exemplary
local inventory list 116 and in an exemplarynetwork inventory list 112. If a recording disappears, then a human identifier, such as a program name, that corresponds to the same GUID as that of the missing recording can be flagged as unavailable in the (server's)network inventory list 112 and in a user interface. If the missing recording reappears, then the status can be changed back to “available.” - Recordings can move between devices or appear on multiple devices due to users manually sharing recordings. The ability to track recordings by a GUID facilitates tracking as the GUID may move between devices but not the data content of the recording itself.
- In one implementation, the
media integrity verifier 308 checks if a newly connectedremovable storage device 102 is formatted, and then examines a particular location (e.g., a file path, directory path, and/or subdirectories) where recordings and respective metadata, each identified by a GUID, are expected to be found. Directories may also be named with the GUIDs. As mentioned, some implementations check only for existence or presence of a recording while other implementations perform a more in-depth integrity check of the recording's digital file and/or theremovable storage device 102 on which it resides. - The
list builder 318 creates or updates alocal inventory list 116 of recordings currently available to a set top box orother client node 106 at which one or moreremovable storage devices 102 can be connected. For example, a set top box may cache alocal inventory list 116 in memory and perform maintenance on the list whenever the media connection monitor 302 or the directory monitor 304 detect a change. Alternatively, thelist builder 318 may refresh thelocal inventory list 116 as triggered by theperiodic refresh engine 324, described above. Even further, a refresh can be triggered explicitly by user action or if certain tasks are performed, such as moving or deleting a recording from a displayed list of recordings in a user interface. - When a
local inventory list 116 has been newly created or newly updated through maintenance or refreshing, logic built into the fabric of the local inventory engine 114 may cause thelocal inventory list 116 to be uploaded to thenetwork inventory engine 110 for synchronization with thenetwork inventory list 112. Thelocal inventory list 116, since it contains the most current information and metadata about recordings actually available to aclient node 106 and/orremovable storage device 102 associated with theclient node 106, takes priority during synchronization over a pre-existingnetwork inventory list 112. - In one implementation, a local inventory engine 114 uploads a
local inventory list 116 associated with a client node of amultimedia network 100 to an Internet website associated with amultimedia server 104, for example, via a URL such as MediaServiceNetwork.com (intended to be a fictional sample URL name). In some implementations thenetwork scheduler 108 is an XML web service. One implementation uses an extensible markup language (XML) vehicle for the upload. Appendix A, for example, shows a sample schema for an upload in which thelocal inventory list 116 is composed of the GUIDs of recordings currently available to thelocal client node 106. The sample schema uses a Simple Object Access Protocol (SOAP) request and response binding method in XML. - The
list builder 318 may also include ametadata reader 322. In some instances the metadata includes EPG information, but the metadata can also include other information about the actual recording. In some implementations, the metadata can be used to drive remote applications that can remotely manage a recording, playback, or storage of the recording, allowing additional detail of the recording to be used or displayed. Metadata may also be employed to validate the recording, ensuring that the recording integrity has not been compromised. The metadata itself may be stored on both themultimedia server 104 and with the actual data of the recording on theremovable storage device 102. - The metadata may be uploaded to a
multimedia server 104 along with thelocal inventory list 116. In one implementation, a local inventory engine 114 uploads metadata associated with alocal inventory list 116 to an Internet website associated with amultimedia server 104 via a URL such as MediaServiceNetwork.com (again, intended to be a fictional sample URL name). As above, some implementations thenetwork scheduler 108 is an XML web service. One implementation uses an extensible markup language (XML) vehicle for the upload. Appendix B, for example, shows a sample schema for an upload of recording metadata to be reconciled with theinventory list 112 and/or a network store of metadata. The sample schema uses a Simple Object Access Protocol (SOAP) request and response binding method in XML. -
FIG. 4 shows an exemplarynetwork inventory engine 110 that maintains anetwork inventory list 112. Thenetwork inventory list 112 aims to encompasses recordings currently available on diverseremovable storage devices 102 so that the exemplarynetwork inventory engine 110 can make the updated inventory information available to entities on the network, such as theaforementioned network scheduler 108. An exemplarynetwork inventory engine 110 may be implemented in software, hardware, or combinations of hardware, software, firmware, etc. The configuration of an exemplarynetwork inventory engine 110 illustrated inFIG. 4 is only meant to be one example configuration. - The
network inventory engine 110 may include a network configuration monitor 402 to provide themultimedia network 100 an awareness ofclient nodes 106 attached to themultimedia network 100. Amedia connection monitor 404, similar to the connection monitor 302 in the local inventory engine 114, may be included to provide themultimedia network 100 with awareness ofremovable storage devices 102 currently connected toclient nodes 106 in themultimedia network 100. - A local
inventory list reader 406 reads a list of currently available recordings built by a local inventory engine 114. In one implementation, the localinventory list reader 406 uploads alocal inventory list 116 and related metadata as information stored in an XML vehicle, such as the sample schema described above with respect to thelist builder 318 and shown below in Appendices A and B. - A
digital rights manager 408 may be included to update digital rights management (DRM) information that may be present, for example, as part of the uploaded metadata. Thedigital rights manager 408 may direct thenetwork inventory engine 110 to require authorization before disseminating newly available recordings to which digital rights requirements are attached to clients on themultimedia network 100. Thus, thedigital rights manager 408 may track whether aparticular client node 106 has the rights, encryption keys, etc., to receive, play back, or store a recording. Alternatively, the digital rights requirements attached to a secured recording that is newly available to thenetwork 100 from aremovable drive 102 of aclient 106 can be updated and/or modified by thenetwork 100 so that the secured recording can be disseminated freely to clients. But when playback of the secured recording is requested, thedigital rights manager 408 checks for appropriate digital rights and if theclient 106 does not have proper authorization, theclient 106 may be offered an opportunity to procure or purchase a license. - A
synchronizer 410 performs reconciliation between one or more local inventory lists 116 and thenetwork inventory list 112. Asynchronizer 410 may include aGUID reader 412 and ametadata reader 414 similar to those in a local inventory engine 114. Thenetwork inventory engine 110 compares thenetwork inventory list 112 with uploaded local inventory lists 116 and determines which recordings are new, missing, etc. - In one implementation, logic used in the synchronization to compare the uploaded
local inventory list 116 to thenetwork inventory list 112 involves comparisons to determine which recordings exist in each list. The identities of recordings that exist only in the uploadedlocal inventory list 116 are incorporated into thenetwork inventory list 112 as new recordings and the recordings that exist only in thenetwork inventory list 112 may be marked unavailable. - Recordings that are no longer present are marked as unavailable instead of deleted, to allow some flexibility for how recurring recordings are handled—for example, periodic recordings of a television series. A user may choose to treat recordings marked as unavailable as deleted or archived, thus changing how a recurring recording mechanism handles the missing episodes of the series. Again, for recordings that are found to newly exist on a
removable storage device 102, the assigned GUID and the associated metadata are uploaded to themultimedia server 104. - When a
network inventory engine 110 receives alocal inventory list 116 to be reconciled with thenetwork inventory list 112, anupdate dialogue engine 416 included in thesynchronizer 410 may request more information from theclient node 106 or may request metadata associated with the recording. In other words, when thenetwork inventory engine 110 determines that a recording is new to thenetwork inventory list 112, the only information about the recording may be its GUID. Theupdate dialogue engine 416 uses the GUID to find other information about the recording, such as its location and/or other metadata. Likewise, anetwork scheduler 108 may request more information about a recording from thenetwork inventory engine 110, which in turn requests the information from theclient node 106 via theupdate dialogue engine 416. - A marking
engine 418 may also be included in thesynchronizer 410 to designate whether a particular recording in thenetwork inventory list 112 is available or unavailable. - A
user interface generator 420 converts thenetwork inventory list 112 into a serviceable user interface for eachclient node 106, while anupdate broadcaster 422 sends information from the updatednetwork inventory list 112 to applications and nodes that use it, notably a network programming and/orrecording scheduler 108. -
FIG. 5 shows anexemplary multimedia network 500 for sharing and/or scheduling a recording that exists on a removable storage device, across multiple nodes of the multimedia network. The illustrated example configuration is only one arrangement for achieving the sharing, many other configurations are possible. - The
exemplary multimedia network 500 consists of amultimedia server 104 communicatively coupled with multiple client nodes, such as set top boxes and one or more personal computing devices (i.e., 502, 504, 506, 508). Themultimedia server 104 may include anetwork inventory engine 110 and anetwork inventory list 112 as well as anetwork scheduler 108. Each client node may include a respective local inventory engine (510, 512, 514, 516). Each client node may also be capable of connecting with one or more respective removable storage devices (518, 520, 522, 524). - Assuming that a
digital rights manager 408 has determined that there are no restrictions upon sharing recording contents that exist on respectiveremovable storage devices multimedia network 100. Hence, a given client node, such as settop box 508 may be able to access the content of all the removable storage devices currently connected to themultimedia network 500. If digital rights management is active, that is, if some of the recordings have restrictions upon their free dissemination, then clients may be guided toward acquiring a license. In another variation, adigital rights manager 408 has the ability to keep secured recordings private to a particular client or clients and not shared with unauthorized users on thenetwork 100. In this case, secured recordings are flagged and only tied to a particular client or group of clients. - This expanded availability of recordings, even recordings on a removable storage device just recently connected to the
multimedia network 500 for the first time, is depicted in a user interface 526 projected by one of the settop boxes 508. A user of the firstset top box 508 can access content via the user interface 526 that is stored on aremovable storage device 518 that is connected only to a secondset top box 502. In other words, each set top box or personal computing device (510, 512, 514, 516) uploads a respectivelocal inventory list 116 to themultimedia server 104 to be synchronized with thenetwork inventory list 112. Thenetwork scheduler 108 then uses the up-to-datenetwork inventory list 112 to produce a programming availability schedule (e.g., as shown in user interface 526) that can allow access to the content of all connected removable storage devices (518, 520, 522, 524) by any one of the client nodes (502, 504, 506, 508). - Exemplary Methods
- An exemplary method of the subject matter includes detecting a change in a connection between a removable storage device and a multimedia network, and then updating a network inventory list of the recordings based on the change in connection.
- As one of many examples of implementing the exemplary method just described,
FIG. 6 shows a more detailedexemplary method 600 of synchronizing contents of removable storage devices with a multimedia network. In the flow diagram, the operations are summarized in individual blocks. Theexemplary method 600 may be performed by hardware, software, or combinations of both, for example, by elements of an exemplarynetwork inventory engine 110 and/or a local inventory engine 114. - At
block 602, a change in a connection state of a removable storage device, e.g., a connection to a set top box of a multimedia network, is detected. A media connection monitor 302 may determine that a particularremovable storage device 102 has been newly connected or disconnected to a set top box. - At
block 604, theexemplary method 600 determines whether the removable storage device is connected to the set top box. If the removable storage device is not connected, then theexemplary method 600 branches to block 606, but if the removable storage device is connected, then theexemplary method 600 branches to block 608. - At
block 606, recording IDs on a network inventory list that correspond to recordings on the disconnected storage device are marked as unavailable. A markingengine 418 of anetwork inventory engine 110 may keep track of the available/unavailable attribute so that availability of recordings may be displayed on a user interface for interaction with a user or transferred to applications, such as anetwork scheduler 108 that coordinates playback and recording of available multimedia content according to a time schedule. - At block 608, if the removable storage device is connected, the
exemplary method 600 builds alocal inventory list 116 of the recordings that currently exist on the connected storage device. Alist builder 318 of a local inventory engine 114 may first check the physical and data integrity of aremovable storage device 102 and then enlist aGUID reader 320 and ametadata reader 322 to build thelocal inventory list 116. - At
block 609, recordings that are subject to digital rights management may be flagged for processing on aserver 104 of themultimedia network 100. A local digitalrights management engine 316 may detect an encrypted recording and in one implementation is capable of determining a level of authorization that a prospective client on thenetwork 100 would be required to possess in order to access the secured recording. Recordings subject to DRM may also be flagged for access if a client purchases a license, that is, the recordings are flagged for a license purchase offer. In one implementation, thelocal DRM engine 316 includes decryption keys for secured recordings in metadata associated with the recordings. Anetwork server 104 can then distribute the keys according to security rules or according to digital rights possessed by recipients. - At block 610, the local inventory list from block 608 is uploaded to a multimedia server. In some implementations of this
exemplary method 600, thelocal inventory list 116 consists mostly of the GUIDs of recordings found on theremovable storage device 102. This type oflocal inventory list 116 provides knowledge only of the existence or nonexistence of a recording on the removable storage device. In some implementations, theexemplary method 600 can also include an upload of metadata associated with each GUID. - At block 612, the local inventory list is compared with a network inventory list for the connected removable device. A
synchronizer 410 may compare thelocal inventory list 116 with thenetwork list 112. Thelocal inventory list 116 takes precedence over thenetwork inventory list 112 in an accord or synchronization of the recording IDs on each list, as thelocal inventory list 116 has the most current and accurate information about which recordings actually exist on theremovable storage device 102. - At block 613, recordings subject to DRM that were flagged at
block 609, are integrated into thenetwork 100. In one implementation, an authorization requirement—i.e., a DRM status—of each secured recording flagged atblock 609 is checked and updated if necessary to function on thenetwork 100. That is, the secured recording may be made available to all clients on thenetwork 100, but flagged to be accompanied by an offer for unauthorized users to purchase an access license. Or, flagged recordings may be restricted to a certain number of copy or playback operations on thenetwork 100. Likewise, flagged recordings may be restricted to a temporally limited availability period on thenetwork 100. - At
block 614, during the comparison at block 612, theexemplary method 600 determines if a recording ID exists only on the network inventory list. If yes, theexemplary method 600 branches to block 616, but if no, theexemplary method 600 branches to block 618. - At
block 616, if the recording ID exists only on the network list, then the recording is marked as unavailable, since it does not exist on the removable storage device. - At
block 618, theexemplary method 600 determines if the recording ID exists only on the local inventory list. If no, theexemplary method 600 branches to block 620, but if yes, theexemplary method 600 branches to block 622. - At block 620, since the recording ID of a recording on the removable storage device exists on both the local inventory list and the network inventory list, the recording ID remains unaltered on the network inventory list. It should be noted that in some implementations of an
exemplary method 600, a mere change in the data content of a recording or in a single metadatum associated with a recording is sufficient to trigger an update of thenetwork inventory list 112 according to the instantexemplary method 600. - At block 622, since the recording ID exists only on the local inventory list, the recording on the removable storage device is new to the multimedia network. An ID, e.g., a GUID, for the new recording on the removable storage device is added to the network inventory list.
- At block 624, metadata associated with the new recording is uploaded to the multimedia server. The metadata may include electronic program guide (EPG) information, but may also include information relevant to the display of the multimedia content, or control information that can be used by an application that exerts remote management of the recording. The metadata may also include digital rights information that designates which clients can receive, playback, and/or store the recording.
- Conclusion
- The subject matter described above can be implemented in hardware, software, firmware, etc., or combination thereof. In certain implementations, the subject matter may be described in the general context of computer-executable instructions, such as program modules, being executed by a computing device or communications device. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The subject matter can also be practiced in distributed communications environments where tasks are performed over wireless communication by remote processing devices that are linked through a communications network. In a wireless network, program modules may be located in both local and remote communications device storage media including memory storage devices.
- The foregoing discussion describes synchronizing contents of removable storage devices with a multimedia network. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
- Appendix B:
- Sample Exemplary Schema to Upload Recording Metadata to be Reconciled with A Network Inventory List And/Or A Network Store of Metadata, Using A Simple Object Access Protocol (SOAP) Request and Response Binding Method in Extensible Markup Language (XML).
POST /dvr/scheduler.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: http://www.MediaNetworkService.com/UploadRecordingMetadata <?xml version=“1.0” encoding=“utf-8”?> <soap:Envelope xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope/”> <soap:Body> <UploadRecordingMetadata xmlns=“http://www.MediaServiceNetwork.com”> <deviceId>guid</deviceId> <recordingId>guid</recordingId> <recordingMetadata> <Location>string</Location> <ByteSize>unsignedLong</ByteSize> <MetaData> <ActualStart>dateTime</ActualStart> <ActualEnd>dateTime</ActualEnd> <ActualDurationSec>unsignedInt</ActualDurationSec> <GuideMetaData> <EpgId>guid<EpgId> <Channel>unsignedInt</Channel> <ServiceId>guid</ServiceId> <ProgramId>guid</ProgramId> <SeriesId>guid</SeriesId> <EpisodeId>guid</EpisodeId> <Title>string</Title> <EpisodeTitle>string</EpisodeTitle> <Description>string</Description> <StarRating>string</StarRating> <Rating>string</Rating> <People>string</People> <Category>string</Category> <OriginalAir>dateTime</OriginalAir> <Start>dateTime</Start> <End>dateTime</End> <DurationSec>unsignedInt</DurationSec> </GuideMetaData> </MetaData <BookMarkSec>unsignedInt</BookMarkSec> <recordingMetadata> </UploadRecordingMetadata> </soap:Body> <soap:Envelope> HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version=“1.0” encoding=“utf-8”?> <soap:Envelope xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope/”> <soap:Body> <UploadRecordingMetadataResponse xmlns=“http://www.MediaServiceNetwork.com> /> </soap:Body> </soap:Envelope>
Claims (42)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/997,418 US10204338B2 (en) | 2004-11-24 | 2004-11-24 | Synchronizing contents of removable storage devices with a multimedia network |
CA2527491A CA2527491C (en) | 2004-11-24 | 2005-11-23 | Computer program listing |
AT05111157T ATE519293T1 (en) | 2004-11-24 | 2005-11-23 | SYNCHRONIZING CONTENT OF REMOVABLE STORAGE DEVICES IN A MULTIMEDIA NETWORK |
CA2855277A CA2855277A1 (en) | 2004-11-24 | 2005-11-23 | Computer program listing |
EP05111157A EP1662711B1 (en) | 2004-11-24 | 2005-11-23 | Synchronizing contents of removable storage device in a multimedia network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/997,418 US10204338B2 (en) | 2004-11-24 | 2004-11-24 | Synchronizing contents of removable storage devices with a multimedia network |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060112018A1 true US20060112018A1 (en) | 2006-05-25 |
US10204338B2 US10204338B2 (en) | 2019-02-12 |
Family
ID=35990602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/997,418 Active 2032-06-27 US10204338B2 (en) | 2004-11-24 | 2004-11-24 | Synchronizing contents of removable storage devices with a multimedia network |
Country Status (4)
Country | Link |
---|---|
US (1) | US10204338B2 (en) |
EP (1) | EP1662711B1 (en) |
AT (1) | ATE519293T1 (en) |
CA (2) | CA2527491C (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190740A1 (en) * | 2005-01-31 | 2006-08-24 | Yoshihiro Hori | Contents utilization system, contents utilization device and contents utilization information storage device |
US20070055390A1 (en) * | 2005-09-06 | 2007-03-08 | Homexperience Inc. | Extensible universal home automation integration framework and user interface |
US20080154974A1 (en) * | 2006-12-26 | 2008-06-26 | Sony Corporation | Information processing apparatus, information processing method, and program |
US20080195824A1 (en) * | 2007-02-09 | 2008-08-14 | Microsoft Corporation | Context sensitive caching on removable storage |
US20080271112A1 (en) * | 2007-04-30 | 2008-10-30 | Waker Philip M | Automatic file transfer |
US20090327295A1 (en) * | 2008-06-25 | 2009-12-31 | Microsoft Corporation | Maintenance of exo-file system metadata on removable storage device |
US20100198915A1 (en) * | 2007-09-28 | 2010-08-05 | Kabushiki Kaisha Kenwood | Content reproducing apparatus |
US20100257474A1 (en) * | 2007-11-15 | 2010-10-07 | Bochatay Francois | Method enabling a computer apparatus run by an operating system to execute software modules |
US7933870B1 (en) * | 2005-10-12 | 2011-04-26 | Adobe Systems Incorporated | Managing file information |
US20110314038A1 (en) * | 2007-12-20 | 2011-12-22 | Verizon Patent And Licensing Inc. | Personal inventory manager |
WO2012021896A1 (en) * | 2010-08-13 | 2012-02-16 | Temogique, Inc. | Enriching memory and enhancing emotions regarding specific personal events via images, illustrations, audio and video |
US20120110608A1 (en) * | 2010-10-29 | 2012-05-03 | Nbc Universal, Inc. | Digital content and response processing system and method |
WO2013103493A1 (en) * | 2012-01-08 | 2013-07-11 | Licensing Thomson | Apparatus and method for content directory server presentation |
WO2014128686A1 (en) * | 2013-02-20 | 2014-08-28 | Varonis Systems, Inc. | Systems and methodologies for monitoring shared data elements |
US20140258225A1 (en) * | 2013-03-07 | 2014-09-11 | Microsoft Corporation | Systems and methods for host detection of usb asynchronous notification capability |
US20150020137A1 (en) * | 2012-01-31 | 2015-01-15 | Sharp Kabushiki Kaisha | Presentation control apparatus, presentation control method, presentation system, presentation control program, recording medium, and metadata |
US9817605B2 (en) | 2013-12-23 | 2017-11-14 | Sandisk Technologies Llc | Systems and methods of storing data associated with content of a data storage device |
CN107872689A (en) * | 2016-09-26 | 2018-04-03 | 法乐第(北京)网络科技有限公司 | Play content updating method, device, terminal and server |
US10678856B1 (en) * | 2016-09-30 | 2020-06-09 | EMC IP Holding Company LLC | System and method to represent physical data pointers of movable data library |
US10764636B2 (en) | 2014-12-19 | 2020-09-01 | Sagemcom Broadband Sas | Method for announcing services in a communication network |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006053019A2 (en) * | 2004-11-08 | 2006-05-18 | Sharpcast, Inc. | Method and apparatus for a file sharing and synchronization system |
US8106856B2 (en) | 2006-09-06 | 2012-01-31 | Apple Inc. | Portable electronic device for photo management |
KR20090028010A (en) * | 2007-09-13 | 2009-03-18 | 삼성전자주식회사 | How to update data on portable media playback device and apparatus therefor |
US8698762B2 (en) | 2010-01-06 | 2014-04-15 | Apple Inc. | Device, method, and graphical user interface for navigating and displaying content in context |
AU2017100670C4 (en) | 2016-06-12 | 2019-11-21 | Apple Inc. | User interfaces for retrieving contextually relevant media content |
CN110109592B (en) | 2016-09-23 | 2022-09-23 | 苹果公司 | Avatar creation and editing |
US11334596B2 (en) | 2018-04-27 | 2022-05-17 | Dropbox, Inc. | Selectively identifying and recommending digital content items for synchronization |
US11086935B2 (en) * | 2018-05-07 | 2021-08-10 | Apple Inc. | Smart updates from historical database changes |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
DK180171B1 (en) | 2018-05-07 | 2020-07-14 | Apple Inc | USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT |
DK201970535A1 (en) | 2019-05-06 | 2020-12-21 | Apple Inc | Media browsing user interface with intelligently selected representative media items |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5629980A (en) * | 1994-11-23 | 1997-05-13 | Xerox Corporation | System for controlling the distribution and use of digital works |
US5671412A (en) * | 1995-07-28 | 1997-09-23 | Globetrotter Software, Incorporated | License management system for software applications |
US6260040B1 (en) * | 1998-01-05 | 2001-07-10 | International Business Machines Corporation | Shared file system for digital content |
US6341291B1 (en) * | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US20030014333A1 (en) * | 2001-06-19 | 2003-01-16 | Brown Barry Allen Thomas | Portable audio device and network including an audio device |
US20030046437A1 (en) * | 2000-10-23 | 2003-03-06 | Sony Corporation & Sony Electronics Inc. | Content abstraction layer for use in home network applications |
US20040003288A1 (en) * | 2002-06-28 | 2004-01-01 | Intel Corporation | Trusted platform apparatus, system, and method |
US6697948B1 (en) * | 1999-05-05 | 2004-02-24 | Michael O. Rabin | Methods and apparatus for protecting information |
US20040117845A1 (en) * | 2002-12-11 | 2004-06-17 | Jeyhan Karaoguz | Personal inter-home media exchange network |
US20040117429A1 (en) * | 2002-12-11 | 2004-06-17 | Jeyhan Karaoguz | Migration of stored media through a media exchange network |
US20040117822A1 (en) * | 2002-12-11 | 2004-06-17 | Jeyhan Karaoguz | Method and system for personal media program production in a media exchange network |
US20040139173A1 (en) * | 2002-12-11 | 2004-07-15 | Jeyhan Karaoguz | Media processing system automatically offering access to newly available media in a media exchange network |
US7382405B2 (en) * | 2001-12-03 | 2008-06-03 | Nikon Corporation | Electronic apparatus having a user identification function and user identification method |
-
2004
- 2004-11-24 US US10/997,418 patent/US10204338B2/en active Active
-
2005
- 2005-11-23 EP EP05111157A patent/EP1662711B1/en active Active
- 2005-11-23 AT AT05111157T patent/ATE519293T1/en not_active IP Right Cessation
- 2005-11-23 CA CA2527491A patent/CA2527491C/en active Active
- 2005-11-23 CA CA2855277A patent/CA2855277A1/en not_active Abandoned
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5629980A (en) * | 1994-11-23 | 1997-05-13 | Xerox Corporation | System for controlling the distribution and use of digital works |
US5671412A (en) * | 1995-07-28 | 1997-09-23 | Globetrotter Software, Incorporated | License management system for software applications |
US6260040B1 (en) * | 1998-01-05 | 2001-07-10 | International Business Machines Corporation | Shared file system for digital content |
US6341291B1 (en) * | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US6697948B1 (en) * | 1999-05-05 | 2004-02-24 | Michael O. Rabin | Methods and apparatus for protecting information |
US20030046437A1 (en) * | 2000-10-23 | 2003-03-06 | Sony Corporation & Sony Electronics Inc. | Content abstraction layer for use in home network applications |
US20030014333A1 (en) * | 2001-06-19 | 2003-01-16 | Brown Barry Allen Thomas | Portable audio device and network including an audio device |
US7382405B2 (en) * | 2001-12-03 | 2008-06-03 | Nikon Corporation | Electronic apparatus having a user identification function and user identification method |
US20040003288A1 (en) * | 2002-06-28 | 2004-01-01 | Intel Corporation | Trusted platform apparatus, system, and method |
US20040117429A1 (en) * | 2002-12-11 | 2004-06-17 | Jeyhan Karaoguz | Migration of stored media through a media exchange network |
US20040117822A1 (en) * | 2002-12-11 | 2004-06-17 | Jeyhan Karaoguz | Method and system for personal media program production in a media exchange network |
US20040139173A1 (en) * | 2002-12-11 | 2004-07-15 | Jeyhan Karaoguz | Media processing system automatically offering access to newly available media in a media exchange network |
US20040117845A1 (en) * | 2002-12-11 | 2004-06-17 | Jeyhan Karaoguz | Personal inter-home media exchange network |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190740A1 (en) * | 2005-01-31 | 2006-08-24 | Yoshihiro Hori | Contents utilization system, contents utilization device and contents utilization information storage device |
US20070055390A1 (en) * | 2005-09-06 | 2007-03-08 | Homexperience Inc. | Extensible universal home automation integration framework and user interface |
WO2007030595A3 (en) * | 2005-09-06 | 2007-10-04 | Home Xperience Inc | Extensible universal home automation integration framework and user interface |
US7480746B2 (en) * | 2005-09-06 | 2009-01-20 | Home Xperience, Inc. | Extensible universal home automation integration framework and user interface |
US7933870B1 (en) * | 2005-10-12 | 2011-04-26 | Adobe Systems Incorporated | Managing file information |
US20080154974A1 (en) * | 2006-12-26 | 2008-06-26 | Sony Corporation | Information processing apparatus, information processing method, and program |
US8296272B2 (en) * | 2006-12-26 | 2012-10-23 | Sony Corporation | Information processing apparatus, information processing method, and program |
US20080195824A1 (en) * | 2007-02-09 | 2008-08-14 | Microsoft Corporation | Context sensitive caching on removable storage |
US20080271112A1 (en) * | 2007-04-30 | 2008-10-30 | Waker Philip M | Automatic file transfer |
US20100198915A1 (en) * | 2007-09-28 | 2010-08-05 | Kabushiki Kaisha Kenwood | Content reproducing apparatus |
US20100257474A1 (en) * | 2007-11-15 | 2010-10-07 | Bochatay Francois | Method enabling a computer apparatus run by an operating system to execute software modules |
US20110314038A1 (en) * | 2007-12-20 | 2011-12-22 | Verizon Patent And Licensing Inc. | Personal inventory manager |
US8498960B2 (en) * | 2007-12-20 | 2013-07-30 | Verizon Patent And Licensing Inc. | Personal inventory manager |
US20090327295A1 (en) * | 2008-06-25 | 2009-12-31 | Microsoft Corporation | Maintenance of exo-file system metadata on removable storage device |
WO2012021896A1 (en) * | 2010-08-13 | 2012-02-16 | Temogique, Inc. | Enriching memory and enhancing emotions regarding specific personal events via images, illustrations, audio and video |
US10687118B2 (en) * | 2010-10-29 | 2020-06-16 | Nbcuniversal Media, Llc | Digital content and response processing system and method |
US20120110608A1 (en) * | 2010-10-29 | 2012-05-03 | Nbc Universal, Inc. | Digital content and response processing system and method |
US11265612B2 (en) | 2010-10-29 | 2022-03-01 | NBCUniversal Media, LLC. | Digital content and response processing system and method |
WO2013103493A1 (en) * | 2012-01-08 | 2013-07-11 | Licensing Thomson | Apparatus and method for content directory server presentation |
CN104041060A (en) * | 2012-01-08 | 2014-09-10 | 汤姆逊许可公司 | Apparatus and method for content directory server presentation |
US9516382B2 (en) * | 2012-01-08 | 2016-12-06 | Thomson Licensing | Apparatus and method for content directory server presentation |
US20150020121A1 (en) * | 2012-01-08 | 2015-01-15 | Thomson Licensing | Apparatus and method for content directory server presentation |
JP2015510708A (en) * | 2012-01-08 | 2015-04-09 | トムソン ライセンシングThomson Licensing | Method and apparatus for content directory server presentation |
US20150020137A1 (en) * | 2012-01-31 | 2015-01-15 | Sharp Kabushiki Kaisha | Presentation control apparatus, presentation control method, presentation system, presentation control program, recording medium, and metadata |
CN105247495A (en) * | 2013-02-20 | 2016-01-13 | 瓦欧尼斯系统有限公司 | Systems and methods for monitoring shared data elements |
WO2014128686A1 (en) * | 2013-02-20 | 2014-08-28 | Varonis Systems, Inc. | Systems and methodologies for monitoring shared data elements |
KR102219218B1 (en) * | 2013-03-07 | 2021-02-23 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Systems and methods for host detection of usb asynchronous notification capability |
KR20150123827A (en) * | 2013-03-07 | 2015-11-04 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Systems and methods for host detection of usb asynchronous notification capability |
CN105264511A (en) * | 2013-03-07 | 2016-01-20 | 微软技术许可有限责任公司 | Systems and methods for host detection of usb asynchronous notification capability |
KR102270531B1 (en) | 2013-03-07 | 2021-06-28 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Systems and methods for host detection of usb asynchronous notification capability |
RU2667033C2 (en) * | 2013-03-07 | 2018-09-13 | МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи | Systems and methods for host detection of usb asynchronous notification capability |
AU2014226091B2 (en) * | 2013-03-07 | 2019-01-17 | Microsoft Technology Licensing, Llc | Systems and methods for host detection of USB asynchronous notification capability |
US10366077B2 (en) * | 2013-03-07 | 2019-07-30 | Microsoft Technology Licensing, Llc | Systems and methods for host detection of USB asynchronous notification capability |
KR20210021136A (en) * | 2013-03-07 | 2021-02-24 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Systems and methods for host detection of usb asynchronous notification capability |
US20140258225A1 (en) * | 2013-03-07 | 2014-09-11 | Microsoft Corporation | Systems and methods for host detection of usb asynchronous notification capability |
US9589010B2 (en) * | 2013-03-07 | 2017-03-07 | Microsoft Technology Licensing, Llc | Systems and methods for host detection of USB asynchronous notification capability |
US9817605B2 (en) | 2013-12-23 | 2017-11-14 | Sandisk Technologies Llc | Systems and methods of storing data associated with content of a data storage device |
US10764636B2 (en) | 2014-12-19 | 2020-09-01 | Sagemcom Broadband Sas | Method for announcing services in a communication network |
CN107872689A (en) * | 2016-09-26 | 2018-04-03 | 法乐第(北京)网络科技有限公司 | Play content updating method, device, terminal and server |
US10678856B1 (en) * | 2016-09-30 | 2020-06-09 | EMC IP Holding Company LLC | System and method to represent physical data pointers of movable data library |
Also Published As
Publication number | Publication date |
---|---|
CA2527491C (en) | 2014-10-07 |
US10204338B2 (en) | 2019-02-12 |
EP1662711B1 (en) | 2011-08-03 |
CA2527491A1 (en) | 2006-05-24 |
EP1662711A2 (en) | 2006-05-31 |
ATE519293T1 (en) | 2011-08-15 |
CA2855277A1 (en) | 2006-05-24 |
EP1662711A3 (en) | 2007-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204338B2 (en) | Synchronizing contents of removable storage devices with a multimedia network | |
US11853447B2 (en) | Media streaming | |
US10206010B2 (en) | Method of sharing personal media using a digital recorder | |
JP6121096B2 (en) | Method and system for providing users with DAILIES and edited video | |
US9854289B2 (en) | Secure multimedia transfer system | |
US9276941B2 (en) | Method and apparatus for accessing media | |
KR101511682B1 (en) | Synchronizing content betwwen content directory service and control point | |
US20130145016A1 (en) | Methods and apparatuses for domain management | |
US8732784B2 (en) | Hierarchical storage management for data | |
US11977644B2 (en) | Systems and methods for remote ownership and content control of media files on untrusted systems | |
EP2701384B1 (en) | Communication system, communication device and communication method | |
EP2180706B1 (en) | Method of sharing personal media using a digital recorder | |
MXPA05012725A (en) | Synchronizing contents of removable storage devices with a multimedia network. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LEE, VICTOR S.;REEL/FRAME:015582/0899 Effective date: 20050110 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001 Effective date: 20141014 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |