GB2600090A - Computer-implemented method and system - Google Patents

Computer-implemented method and system Download PDF

Info

Publication number
GB2600090A
GB2600090A GB2015907.5A GB202015907A GB2600090A GB 2600090 A GB2600090 A GB 2600090A GB 202015907 A GB202015907 A GB 202015907A GB 2600090 A GB2600090 A GB 2600090A
Authority
GB
United Kingdom
Prior art keywords
user
client
content
data
media
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.)
Withdrawn
Application number
GB2015907.5A
Other versions
GB202015907D0 (en
Inventor
Lee Robert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Reas Group Ltd
Original Assignee
Reas Group Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Reas Group Ltd filed Critical Reas Group Ltd
Priority to GB2015907.5A priority Critical patent/GB2600090A/en
Publication of GB202015907D0 publication Critical patent/GB202015907D0/en
Priority to GB2110375.9A priority patent/GB2602178A/en
Publication of GB2600090A publication Critical patent/GB2600090A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management

Abstract

A media analysis platform is used to capture data associated with users viewing or interacting with content provided by a client. The capture of the data can be controlled based on settings assigned to a client (e.g. the media provider) by a user of the platform. This gives the user control over who can use their personal data of their user profile related to the media analysis platform and in particular it provides control over whether or what data the media provider (the ‘client’) can obtain relating to the user consuming content from a particular provider. The user establishes a profile which can be used to view content associated with the provider of that content. The user can then control, using their user permissions, what data is captured by the platform regarding the users viewing or interaction with the content associated with the account. Accordingly, user data, which could be personal data, is only transmitted to a given client (media provider) when the user has set permissions to indicate that this can be shared with the given client. The client may relate to a public video streaming service.

Description

COMPUTER-IMPLEMENTED METHOD AND SYSTEM
FIELD
The present invention relates to a computer-implemented method and system. BACKGROUND Multimedia content such as video and music is ubiquitous in the modern world. It is used across the full spectrum of entertainment but also for delivering information, training and product details. It provides a way of efficiently and easily conveying information without a person needing to read large amounts of text, which consumes time and can be more difficult to digest.
For providers of multimedia content, however, it can be difficult to tell who is looking at their content and how and where it is being perceived. This can be due to specific privacy concerns but also due to the general anonymity often provided by the worldwide web.
There are many platforms for the consumption of multimedia content and particularly video content. They include Youtube, Vimeo and TikTok. They host a large amount of content on behalf of the creators of content but they are restricted in the information they can provide about who is watching the content.
Security concerns mean that viewers of content are reluctant to allow their data to be transmitted to other devices. This may be because the transmission of data exposes that data to man-in-the-middle attacks and because of the fear around cyber-attacks which could potentially release personal data into the public sphere Accordingly, with existing media content viewing or sharing platforms it is difficult to capture and analyse data relating to views or interaction with content, and then react or respond to such analysis in a manner that is accurate, tailored, scalable as well as compliant with one or more existing security or privacy regulations. The inventors have identified a solution to address at least the above drawbacks.
Aspects and embodiments were conceived with the foregoing in mind. SUMMARY Viewed from a first aspect, there is provided a computer implemented method for providing a media analysis platform for one or more clients. The computer-implemented method may be implemented using a single or group of linked computing devices each configured to implement a whole or part of the method. A media analysis platform may be a system which enables data regarding the viewing of multimedia content to be examined and/or used.
The method may be implemented by a processing resource. A processing resource may be a processor, a group of linked processors, or it may be software implemented, such as a cloud resource. The method may comprise the steps of creating a client profile for a given client among the one of more clients, the given client being a provider of media content. A client profile may be implemented using a data structure which forms a record in a database of all of the clients which use the media analysis platform to enable their content to be viewed or shared with one or more users or user entities via one or more user terminals or devices. The data structure may be any structure which can be used to organise data. Content means any form of audio-visual content, documents, audio-only content or visual-only content.
The method may further comprise providing an access point pertaining to the platform. The access point may be a user input region on a page provided by an application or any other aspect of computer functionality which enables details to be entered via an interface to request access to the media analysis platform.
Responsive to receipt of an input via the access point from a user entity, the method may further includes the step of creating or accessing a user profile for the user entity, the user profile including a first account for media content provided by the given client, wherein the first account is associated with user data and user permissions that are specific to the given client. A user profile can be created using data provided by a user who wishes to view content using the media analysis platform. A user profile may be stored as one or more data structures which store the user data in a database of users. The association between the account and the user profile may be established using a flag or other suitable pointer in a user data structure. User permissions are settings saved by the user for the account of the given client. The settings relate to the permission of the user for personal data to be transmitted to that client when the content is being viewed.
The method may further comprise providing for the user entity based on the first account, access to at least one media file associated with the given client via an interface or access point associated with the platform. That is to say, the user is given access to at least one media file associated with that client. The access is via an interface which may be an application programming interface(API), i.e. where the content is stored externally to the platform (e.g. YouTube) or via an internal interface where the content is native to the platform, i.e. uploaded by the client.
In accordance with any aspect, content may be any type of content which includes video, audio, audio-visual, text or voice.
Responsive to the user entity viewing or interacting with the at least one media file via the interface, the method may further include: (a) capturing data associated with such viewing or interaction, said capturing based on the user permissions for the first account; (b) sending the captured data and the user data to the given client, said sending based one the user permissions for the first account; (c) updating a setting for the first account based on the at least one media file consumed via the interface.
The steps (a) to (c) may be repeated for each media file viewed by the user.
The at least one media file may be a private media file in that it may only be viewed through the platform.
The steps (a) to(c) may be repeated for the viewing of further content associated with the client account. The further account may be transmitted to the user based on the user's viewing habits. The further content may be based on metrics associated with the user's viewing habits. The metrics may be based on viewing patterns, location patterns (i.e. where the content is viewed), frequency of viewings, timing of viewings and any other data which can be measured from a user viewing content associated with a client account That is to say, a method in accordance with the first aspect enables a user to establish a profile which can then be used to view content associated with the provider of that content. The user can then control, using their user permissions, what data is captured by the platform regarding the users viewing or interaction with the content associated with the account.
The effect of this is that user data, for instance, personal data is only transmitted to the given client when the user has set permissions to indicated that this can be shared with the given client. This reduces the opportunities for the personal data to be intercepted by malicious third parties and also reduces the demands on the network from the media analysis platform as only data which needs to be transmitted to a client is being transmitted to the client.
Personal data is any data can be used to identify a person. Examples include, the user's name, telephone number, address, health records and financial records.
The client profile may be associated with a plurality of media files, the plurality of media files including a subset of at least one public media file, the remaining media files in the plurality being private to the platform.
A public media file is a media file which is available for viewing on a public streaming service. Commonly known examples of a public streaming service are YouTube and Vimeo. A private media file is a media file which is only available via the platform.
The effect of this is that a user can use the method to view media files which they cannot retrieve anywhere else, and is based on their viewing or interaction history or pattern associated with their account, i.e. a first account for the given client. This gives the user more control over what they are viewing.
The access point is made available upon provision or display of the at least one media file in the subset. The effect of this is that the access to the user profile can be enabled through the display of the public media file, i.e. on YouTube. This removes the step of the user needing to actively seek out the access point when they realise they are interested in the content.
The access is enabled via input of a user identifier such as, for example, a password or an identifier for a third party social media account such as, for example, Facebook or Twitter. This may entail a user interface being provided on a computing device which comprises input regions which are configured to receive the user identifier. The input may also be provided using an application programming interface (API) call to a third party social media provider to obtain the identifier for that account to enable that access to be provided to the platform.
The method may further comprise step (d) receiving further media content from the given client via the interface based on the updated setting wherein the method includes repeating steps (a) to (d) described above for the further media content. The effect of this is that further media content may be provided if the updated setting indicates permission to do so. The further media content may be based on viewing habits, stated user preferences, tags associated with previously viewed content or on request from the user.
The step (a) may further include capturing data related to the location of the viewing or interaction. The effect of this is that the location of the viewing or interaction can be used to inform the content which may be sent to the user. The location may be fed into a machine learning algorithm which is configured to use the information to inform the client or the platform of content which may be of interest to that user.
For example, if the machine learning algorithm indicates the user likes to look at the goals from the previous night's football when he is at the train station the following morning, further content may be provided at the time the user usually looks at the platform which contains analysis of those results or the platform may even provide content related to the teams who played in those games. The machine learning algorithm may be implemented using a known model such as, for example, an artificial neural network (ANN).
ANNs, otherwise known as connectionist systems are computing systems vaguely inspired by the biological neural networks. Such systems "learn" tasks by considering examples, generally without task-specific programming. They do this without any a prior knowledge about the task or tasks, and instead, they evolve their own set of relevant characteristics from the learning/training material that they process. ANNs are considered nonlinear statistical data modeling tools where the complex relationships between inputs and outputs are modeled or patterns are found.
ANNs can be hardware-(neurons are represented by physical components) or software-based (computer models) and can use a variety of topologies and learning algorithms.
ANNs usually have three layers that are interconnected. The first layer consists of input neurons. Those neurons send data on to the second layer, referred to a hidden layer which implements a function and which in turn sends the output neurons to the third layer. There may be a plurality of hidden layers in the ANN. With respect to the number of neurons in the input layer, this parameter is based on training data.
The second or hidden layer in a neural network implements one or more functions. For example, the function or functions may each compute a linear transformation or a classification of the previous layer or compute logical functions. For instance, considering that the input vector can be represented as x, the hidden layer functions as h and the output as y,then the ANN may be understood as implementing a function f using the second or hidden layer that maps from x to h and another function g that maps from h to y. So the hidden layer's activation is f(x) and the output of the network is g(f(x)) The application of machine learning using an ANN may enable the platform to generate outputs which are based on the viewing patterns of the user. For example, the platform may be trained to generate an output based on a specific combination of inputs. One example, the platform may determine that a user accesses the platform at the same time in the same place each day and infer from that the user follows a particular journey to a workplace. This may be used to generate content which indicates to the user breaking news about the areas that they pass through on the way to work.
The ANN may be trained based on historical data related to the interaction with the client content on other content platforms, the behaviour of the user in the system or based on expert input. One example of such training may be location-based. This may be that a user who is persistently logging into the system 100 in the same location each day may want to hear news about that location and the platform may provide content containing that news. This may also be that a user logs into the system at the same train station at the same time each day and the transport operator for that train station uses the platform to provide content related to the train times each day.
The method may further comprise a step (e) of sending the user data into a contact database based on the user permissions for the given client. The effect of this is that the user data can be fed into a contact database which can be used to contact the user.
The user profile may be associated with a further plurality of accounts for media content for one or more other clients, wherein each account is associated with user data and user permission specific to the respective other client.
Access to at least one media file associated with the respective other client may be provided via a user input region on a user interface associated with the platform. The user input region may be a box in which a search term is placed,or it may be an icon identifying the user's favourite content provider.
The method may further comprise the user entity viewing or interacting with the at least one media file via a user interface, the method further includes the steps (a) to (c) in respect of the at least one media file associated with the respective other client.
The user permissions associated with a client comprises a privacy setting which determines whether personal data for the user can be sent to the client. The personal data may include any one of the user's name, address, telephone number, email address, national insurance number, national identity number, passport number or any other detail which can identify the user.
The privacy setting may determine whether data sent to the client includes location data corresponding to the location of the viewing or interaction with the media file.
The privacy setting may be adjusted via a user interface on which the media file is displayed during the viewing or interaction with the media file. The effect of this is that the settings can be adjusted for each client in that different clients can have different settings. This means the user can select to send their personal data to a first client but not to a second client.
The captured data is used to determine a pattern associated with the activity of the user. The pattern may be determined based on any metric which can be measured using the viewing of the content, e.g. the time of the viewing or interaction, the location of the viewing or interaction or the frequency of the interaction.
The pattern may be used to determine media content to show to the user or send to the user. That is to say, patterns may be used to inform further content which may be sent to or notified to the user. For example, if a pattern indicates a user always accesses the system between the hours of 7:30 and 8:00 am in the vicinity of Glasgow Charing Cross station, the processing resource may determine that further content can be transmitted to the user regarding breakfast providers in that area.
The data associated with the viewing or interaction may be retrieved from a first data structure containing data corresponding to the user permissions for the respective client account. The data structure may be a record in a database which contains a flag which either confirms that the user permits the data to be transmitted to the client or denies the user permits the data to be transmitted to the client.
The method may further comprise providing an interface to enable the user associated with the user profile to communicate with the client associated with the client account. The interface may be displayed adjacent to the content or inside the content.
The effect of this is the user can contact the client before, whilst or after viewing the content.
The interface may comprise a hyperlink which, upon selection, opens or activates an electronic mail client hosted on the device associated with the user. That is to say, the hyperlink may operate as a "mailto" link which opens the default mail client which is in use on the device. The platform populates the "To" field with an email address which can be used to contact the client.
The interface may initialise a telecommunications link where the user may use voice, audio, video or text to communicate with the client.
The interface may initialise a chat interface configured to enable the user and the client to communicate with each other using portions of text.
The interface may be provided to the user on an electronic device via an electronic display.
The interface may comprise a form comprising a plurality of input regions, wherein each input region corresponds to information to be communicated to the client from or by the user. The input regions may enable the upload of a file which contains the information the user wishes to transmit to the client. The file may be a video file, a voice file, an audio file or a text file. The input regions may be configured to receive text input containing the information the user wishes to transmit to the client.
The method may further comprise providing an interface configured to enable the user associated with a user profile to upload content to the platform. The interface may enable the upload of a file containing the content from a device associated with the user, i.e. a device which the user is using the access the platform.
The method may comprise receive input from the user requesting association of the content with the user profile. The input may be via a selectable link which initialises an approval process where the content is approved or disapproved.
The method may further comprise providing approval of the association of the content with the user profile. This may be responsive to input from the user requesting the approval.
The method may further comprise receiving input from the user requesting association of the content with a client account associated with a client. The input may generate a message which is transmitted to the client which the client can use as an interface to approve the content which may be part of notifying the client of the request from the user requesting association of the content with the client account. The method may then further comprise receiving input from the client either confirming or denying approval of the content with the client account and, based on the input from the client, notifying the user of confirmation or denial of association of the content with the client account.
The platform may be configured to provide an interface configured to receive input identifying a third party, wherein responsive to receiving the input identifying the third party, the content uploaded by the user is transmitted to the third party.
The processing resource may be a processor, a plurality of processors or a cloud based resource.
Viewed from a second aspect, there is provided a computer-implemented method of providing access to a media analysis platform to a client to enable the client to examine viewing or interaction data pertaining media content provided by the client. That is to say, the second aspect enables a client to access a platform to look at viewing and interaction data pertaining to media content they have provided. The method may be implemented by a processing resource associated with the platform. The method may comprise creating a client profile for the client and associating the client profile with media content provided by the client, the media content comprising at least one media file. A client profile may correspond to a presence for the client in the media analysis platform. The presence may be implemented by a client data structure and one or more other data structures which are associated with the client data structure.
The method may further comprise receiving a request from a client to access the media analysis platform via an access point configured to receive authentication information from the client entity. The access point may be implemented by a user interface which requests authentication information from a client entity. A client entity may be any suitable computing device.
The method may further comprise enabling access to the media analysis platform based on the authentication information provided by the client entity. That is to say, if the authentication information is associated with a client account, the access is provided. If a valid account cannot be determined, then access is denied.
The method may further comprise retrieving the viewing or interaction data associated with the media content provided by the client and determining the presence of user data in the retrieved viewing or interaction data. That is to say, the method comprises retrieving data which relates to a user viewing or interacting with content provided by the client. The method then determines whether user data has been provided. That is to say, the method may determine whether permission has been given for the client to obtain the user data or use the user data in some other way, such as to contact the user directly or feed the user data into a client relationship management platform.
The method may further comprise displaying the viewing or interaction data on a media analysis portal. The data may be displayed in another user interface which enables the data to be downloaded and/or exported to, for example, an external database which may be client relationship management database.
The effect of a method in accordance with the second aspect is that a client can only access data provided during viewing or interaction with content if they have been permitted to by the user associated with that data. This provides the effect that the client only uses data they are given permission to use but also saves the clients network resources as they are not storing unnecessary data they cannot use.
The media content may comprise at least one of native content, a plurality of multimedia files, a playlist comprising a plurality of clips. A playlist may be compiled by a client and may comprise a mixture of native content, private media files and public media files. Private media files may be media files which can only be viewed on the media analysis platform and public media files may be media files which can be found on a third party streaming service. The plurality of clips may be determined by an order assigned by a client.
Native content is a term used to describe content which is generated by the client and uploaded directly to the platform, i.e. it is not linked to the platform from YouTube or another public streaming service.
The effect of this is that compilations of content which is shown on different platforms can be shown on a single platform.
The viewing or interaction data comprises location data associated with the location at which the respective content was viewed. The effect of that is that the client can access data relating to the location where the content was viewed. This may be used to infer interest in other content. For example, if the content provider was a designer clothing brand and the location inferred that the user was close to Bond Street, London, the method may provide content which was particular to the Bond Street store in London, i.e. special offers in that store or even discount codes for that store.
Viewed from a third aspect, there is provided a computer-implemented method of enabling a user to view or interact with media content provided by a client entity via a media analysis portal. That is to say, the method in accordance with the third aspect enables a user to view or interact with media content provided by a client via a media analysis portal. This may be an interface or application that is made available on a user entity, which may be a processing device or terminal associated with the user.
The method may be implemented by a processing resource such as a processor, a group of processors or a cloud based processing resource.
The method may comprise providing an access point to a media access portal on a first user entity associated with a user. An access point may be an input field in a user interface which receives user authentication details such as, for example, a password or a social media identifier.
The method may further comprise retrieving media content associated with a client account associated with a user profile associated with the user. The media content may comprise video, audio-visual, music or document files to be viewed. Association with a client account means the media content is stored and identified in a database which is related to a data structure associated with the client.
The method may further comprise displaying the media content via a user interface on a second user entity associated with the user to enable the user to view or interact with the media content. The second user entity may be the same as the first user entity or it may be a distinct computing device. That is to say, the first user entity may be a mobile computing device and the second user entity may be a different mobile computing device or a laptop computer.
The method may further comprise capturing information associated with the viewing or interaction of the user with the media content, said capturing based on user permissions associated with the client account. That is to say, the information is only captured if the user permits the capture to take place The information may comprise personal information associated with the user.
The method may further comprise sending captured information to the client entity based on the user permissions. That is to say, if the user permits the information to be sent it is sent and if the user does not permit the information to be sent it is not sent.
A method in accordance with the third aspect provides a method by which a user can view content but choose to only send information if they want to. This reduces demand on the devices on which the method is being run but also means that data regarding the user is not sent onto a network where it can be surreptitiously accessed.
The access point may be provided responsive to viewing a public media file associated with the client entity. A public media file may be one which is accessible through a public streaming service such as YouTube.
The access point may be configured to receive an input identifier for the user, wherein the input identifier may be a password or an input identifier is provided by a social media provider.
The media content may be retrieved based on previous interaction with the user. That is to say, the media content may be determined based on patterns determined from past interaction from the user. For example, if the user has an interest in football and the content provider is a sports broadcaster, then they may only provide football content to the user and not content pertaining to rugby or another sport.
The previous interaction may be used to determine a pattern used to determine media content provided to the user. That is to say, the viewing or interaction data may be used to infer a pattern. Such a pattern may relate to the time the user accesses the content. For example, if the client is a news broadcaster and the user only accesses the content early in the morning, the method may determine the content should be in the form of a playlist of clips reporting on news stories from the previous 24 hours.
The media content may be retrieved based on location information associated with the user. That is to say, if the user is always viewing content from Central Paris, the viewing or interaction data may be used to determine that media content may be focused on Paris.
The media content may comprise a plurality of files which may comprise a plurality of distinct media files which may be displayed in an order assigned by the client.
The user profile may be further associated with a plurality of other client accounts, each associated with media content provided by the respective client. That is to say, a user profile may be associated with other content providers. This may be determined by the interests of the user. The method may determine, from a user's viewing or interaction data, that a particular client's content may be of interest and may suggest the user view that content.
The user permission setting may be adjusted via the user interface. The first user entity and the second user entity may be identical.
The user permission may comprise a privacy flag to determine whether private information relating to the user can be send to the client entity. Private information may be personal information which can be used to identify the user. Private information may also be information relating to particular viewing habits and specific content the user likes to view.
Viewed from a fourth aspect, there is provided a computer-implemented method of enabling a user to view media content on a computing device, the method implemented by a processing resource, the method comprising providing an access point to a media access portal on the computing device; receiving authentication details corresponding to a user profile associated with the user via the access point; using the authentication details to determine association between the user and a user profile; based on the determined association, enabling a user to view media content on the first computing device; receiving input providing or withholding consent for personal data associated with the user to be sent to a client associated with the media content.
Viewed from a fifth aspect, there is provided a computer implemented method of enabling a client to view viewing or interaction data associated with content on a computing device, the method comprising providing access to an account associated with the client on the computing device; retrieving data associated with content associated with the account from a storage resource; determining the presence of personal data associated with individuals who have viewed or interacted with the content; retrieving the personal data to determine inferences about the individuals who have viewed or interacted with the content.
In other aspects, there may be a system which is configured to implement the method of any of the first, second, third, fourth or fifth aspects.
DESCRIPTION
First, second and third embodiments in accordance with the above aspects will now be described by way of example only and with reference to the following figures in which: Figure la schematically illustrates a system for media content analysis in accordance with a first embodiment; Figure lb schematically illustrates a flow chart of the steps taken to establish a client account on a system; Figure 2 schematically illustrates the registration of a user on a system in accordance with the first embodiment, second embodiment or third embodiment; Figures 3, 3a and 3c schematically illustrates a flow chart representing the capture of data from a user entity in accordance with the first embodiment; Figure 3b illustrates a user interface provided by a system in accordance with the first embodiment, second embodiment or third embodiment; Figure 4 schematically illustrates a system in accordance with a second embodiment; Figures 4a, 4b and 4c illustrate flow charts representing the capture of data using a system in accordance with the second embodiment; Figure 5a schematically illustrates a system in accordance with a third embodiment; Figures 5b and 5c illustrate a flow diagram representing the capture of data using a system in accordance with a third embodiment; Figure 6 illustrates a flow diagram describing how a user may upload their own content for approval by the client in accordance with a system in accordance with any of the first, second or third embodiments; Figure 7 illustrates a user interface which may be used by a user to upload content for approval by the client.
We illustrate an example set of embodiments below with reference to example only of a system which captures data from users who view content and enable content providers to utilise that captured data subject to various permissions regarding the user's personal data. Whilst they are described as separate embodiments, it will be understood that features from all embodiments can be combined with features from other embodiments.
Personal data is any information which can be used to identify a person. That is, any information relating to an identified natural person. An identifiable natural person is one which can be identified, directly or indirectly, in particular by a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural of social identify of that person.
Reference will be made to various data structures which can be stored in storage module 110. Storage module 110 can be implemented in the Firebase Rea!time Database and used to store the data structures where they can be retrieved by the database module 108. The described data structures can be stored as collections, documents, fields, and sub-collections in Firebase Realtime Database. Storage of any of the data structures may be implemented using software defined storage or hardware defined storage.
We now illustrate, with reference to Figures la and lb, a system 100 in accordance with first embodiment.
System 100 comprises an administration interface module 102, an administration services module 104, an identity access management module 106, a database module 108, a storage module 110, an application services module 112 and a user entity 114. Each of these modules is configured to communicate with each other using any suitable telecommunication means. Each of the user entity 114 and the client entity 140 is configured to communicate respectively with the application services module 112 and the administration interface module 102 using any suitable telecommunications means. Each of the modules may be located separately relative to any of the other modules.
User entity 114 may be a mobile computing device such as a mobile telephone, a laptop or a tablet. It will typically be configured with a web browser to enable access to the internet to utilise third party sources 122 which provide streaming 120 (e.g. Youtube and Vimeo), enhanced identity services 118 (e.g. LinkedIn) and identity services 116 (e.g. Google Passwords).
Client entity 114 may be a mobile computing device such as a mobile telephone, a laptop or a tablet. It will typically be configured with a web browser to enable access to the internet and to the administration interface module 102.
Any of the modules which form part of system 100 may be implemented in hardware, as a collection of suitably configured processors, or virtually in software or using a cloud resource such as Amazon Web Services or Microsoft Azure.
Figure lb describes how a client may register an account on the system 100. A client who wants to register a profile on the system 100 issues a request from a client entity 140 to the administration interface module 102 for a client account to be set up on the system in a step 5100. Responsive to receiving the request, the administration interface module 102 provides a client registration form to be instantiated through a web browser on the client entity 140 in a step 5102. The client registration form comprises fields which require the name of the client, email addresses of authorised users, email addresses of super users, i.e. users who can enable or restrict access to aspects of functionality for other users and preferences regarding the layout, look and feel of the client profile when it is seen by a user. On submission of the details, the information is transmitted in a request to administration interface module 102 in a step S104 for the client account to be set up.
On receiving the information, the administration interface module 102 transmits a request to administration services module 104 for the client data structure to be instantiated in the client database in a step S106. The administration services module 104 generates a numerical identifier for the client and forwards that to the database module 108 with a request for a client data structure to be instantiated in the client database with the generated numerical identifier in a step 5108.
The database module 108 utilises database management system (DBMS) 124 to create the client data structure in the client database which is indexed by the numerical identifier assigned to the client by administration services module 104. This is step 5110. That is to say, the client data structure can be a record in a client database which contains all of the information provided by the client. The database managed by the DBMS 124 may be a relational database which can relate the client record to users whose profile is associated the client account (as set out below) and identifiers for media files which are uploaded by the client.
The data structures sit under the identifier assigned to the client which allows roles to be associated with a user and their usage can then be used to determine further content which can be provided and also determine patterns of viewing. The client can add their own users and users can also add themselves to access a client's content. The user data is captured and collated with the viewing data as described below.
On creation of the client data structure, the database module 108 issues a request for content to the administration services module 104 in a step S112. The client data structure is stored as part of the client database in storage module 110.
On receiving the request for content in step S112, the administration services module 104 transmits a request to the administration services module 104 for the client content to the administration interface module 102 in a step S114. The administration interface module 102 retrieves a form comprising input fields in which content can be uploaded or links to content on third party providers such as YouTube and/or Vimeo can be input. This form is provided to the client entity 140 in a step S116.
The content and/or the links to content, is then provided in the form and the content is submitted in a step S118. On receiving the content, the administration interface module 102 provides a request to administration services module 104 for the content to be saved in association with the client data structure. The client may also assign tags to each content corresponding to subject matter, product lines or topics which are described in the video.
The administration services module 104 assigns a content identification number to each content item and then issues a request to the database module 108 for data structures to be set up for each content item. The data structure will be identified in the system by the content identification number. Each client also has, associated with it, a content data structure which lists all of the content as records and records the metrics associated with each content item, i.e. how many times it has been viewed, what times of day, etc. The database module 108 issues a request to the DBMS 124 for the content to be recorded in a step S120 and stored with the appropriate identification numbers in association with the client database. Where a link has been provided, i.e. a link to a YouTube video, the link is stored in order to enable the relevant application programming interface (API) call to be made when the respective content is required.
The client account is then established in the system 100.
The client, or at least representatives of the client, may login to the system and assign roles to other representatives of the client. These roles, which may be described as super-users, may inhibit or enable specific activities related to the content associated with the client account or inhibit or enable access to data generated by the system 100 using the client account. That is to say, the super-users of the client account may provide some users at the client with privileges in the system which enable some activities and inhibit others. That is to say, some users may be allowed only to upload content to the client account, for example. Some users may be prevented from looking at data stored in association with the client account. Each user at the client may be assigned their own data structure, i.e. a client user data structure and any privileges may be implemented by a specific flag in a field of the client user data structure.
A client representative may be associated with specific user profiles in the system, i.e. user profiles established in accordance with steps 5200 to S208 set out below. That is to say, a client representative, super-user or otherwise, may be assigned to specific user profiles in the system 100 or specific aspects of the client's content. This means that such a user can be enabled to interact directly with some users but not with others. Enabled or restricted features can be implemented by flags in fields of the client user data structure. The client user data structure may be identified in the system 100 by an identification number given to the user. The identification number may be listed as a user in the client data structure and this may be used as a key to identify the client user data structure.
We will now describe how a user entity 114 may enable a user to register a profile on the system 100 with reference to Figure 2. A user can register a profile on systems in accordance with other embodiments using the same sequence of steps.
If a user is streaming video content using a streaming service 120 such as YouTube, then they may search for a video provided by a client of system 100. That is, a client with an account in the system 100 may already have posted content onto YouTube and the user may have come across this content. This client may be a manufacturer of electrical goods, a manufacturer of cars, a sports brand, a sports team, a particular celebrity or social media influencer or another organisation of interest. On finding that piece of video content, there may embedded inside the stream of the content or even in a text portion accompanying the stream an invitation to view more content from the provider. On clicking the link in a step 5200, the user of user entity 114 is asked to install an application which will enable access to system 100. The application may be retrieved from an application store such as, for example, the Apple store.
On installation of the application on the user entity 114, the user is requested to register with the system in a step 5202, where a page is presented which asks the user for a password. The page may also present icons for identity services such as Google ID, i.e. the email address which they use to identify themselves to the Google Chrome web browser. Selection of these icons will enable the user to register on the system using their Google ID. Other options may be their Facebook password or a LinkedIn password. This will mean the user's personal information in their user profile is taken from the corresponding social media account.
On a request for registration, the request is transmitted to the application services module 112 in a step 5204. The application services module 112 is configured to respond with a request for further details about the user at the user entity 114. The further details include a name, a contact email address, an address and a mobile telephone number. Other personal information may also be included in the request and some of it may be included in optional fields which the user may or may not to choose to populate. The user, on submitting the personal information in a step 5206, is then provided with a page which tells them to check their contact email to find a verification link which they click, in a step S208 and which validates their user profile in the system 100. On validation, the application services module 112 issues a request to the storage module 110 for the user profile to be stored. The request also requests that the user profile be associated with the client account which corresponds to the client who provided the content accompanying the link selected in step 5200. The registration information, i.e. the google ID and/or other password, and the personal information are stored in a user data structure inside the storage module 110. The database module 108 utilises a database management system (DBMS) 124 to update a data structure which lists all of the registered users. The registered users are indexed using an identification number assigned to each registered user. A record corresponding to each registered user contains their registration information and the personal information they have provided. Fields are also provided for client accounts with which the user profile is associated.
With the application installed on the user entity 114 and the user registered in the system 100, the user can then select other content associated with that content provider and view that content.
We will next describe, with reference to Figures 3, 3a, 3b and 3c, how the system 100 captures information as the user views content associated with the content provider and that information can be used to generate further content which may be provided for that user.
The user at the user entity 114 accesses the system using the user entity 114 on which the application has been installed. This may be by clicking a uniform resource locator (URL) which is provided as part of or as an accompaniment to content provided by a client of system 100 which is being viewed on the user entity 114. That is to say, the URL may be embedded in the content or it may be provided in an accompanying text portion adjacent to the content on a streaming service such as Youtube or Vimeo. On selecting the URL, the browser on the user entity 114 launches the application which asks for the user's identity used to register on the system 100 in steps 5200 to S208. On providing the user identity, the user entity 114 issues a request for access to the content associated with the content provider in a step 5300. An identification number associated with the content provider is identified by the selected URL to the application services module 112 and the application services module 112 is configured to use the identification number associated with the content provider to identify the associated content as content the user wishes to view. The identification number is the number assigned to the client by the administration services module 104 in steps 5100 to 5120 described above. The identification number is used to identify the client to the system when the client links to content on the system on a streaming service 122 which is external to the system 100. That is to say, the user's access to the system on user entity 114 may be as a result of viewing content on a third party streaming service such as Youtube or Vimeo.
In a step S302, the application services module 112 issues a request to the identity and access management module 106 for authentication of the user using the user's identity. The identity and access management module 106 is configured to issue a request to the database module 108 for a user profile associated with the user identity in a step S304. If the database module 108 determines that a user profile associated with the user identity does not exist, then it will issue a response to the identity and access management module 106 to deny access to the system 100 and the content associated with the content provider in a step S306. A request is then transmitted back to the user entity 114 for a corrected user identity and this sequence repeats until a user ID associated with an account is provided up to a number of attempts at which the identity and access management module 106 will mark the IP address of the user entity 114 as dangerous for a specific period of time, e.g. 30 days.
If the database module 108 determines that a user profile associated with the user identity does exist, the database module 108 will then issue a response confirming the user profile to the identity and access management module 106. That is to say, the database module 108 determines whether a user data structure exists which corresponds to the user trying to access the system 100.
The identity and access management module 106 then issues a request to the database module 108 to check the user profile is associated with an account provided by the client who provided the content of interest. The database module 108 checks the user profile for a flag corresponding to the client account in a step S308. The flag will be contained in the data structure generated in the steps S200 to S208 which contains the information about the user. The flag will be in an associated accounts field. There may be many associated accounts field corresponding to the plurality of client accounts with which the user account is associated.
If the flag exists then the database module 108 confirms the presence of the flag, i.e. the association between the user profile and the client account, to the identity and access management module 106 in a step S310. If the flag does not exist, i.e. the association between the user profile and the client account is not established, then the database module 108 places a flag in the data structure corresponding to the user profile which establishes the association between the user profile and the client account in the system 100. This is step S312.
That is to say, the identity and access management module 106 is configured to determine that the user profile is registered on the system and also configured to determine the presence of an association between the user profile and the client account. In the event the association does not exist, a flag is placed into a data structure corresponding to the user profile which sets the association between the client account and the user profile as an attribute in the user profile.
The client also has a data structure which contains details of users who are associated with the account. This data structure is created by the system 100 when the client has an account and is used to register the association. It is not directly accessible by the client in order to maintain the privacy of the user profiles associated with the client account.
On confirmation of the presence of the user profile in the system 100 and confirmation of the association of the user profile and the client account, the user is provided access to the system 100 using the application installed on the user entity 114 in a step 8314. On enabling the user to access to the system, the content corresponding to the associated client account is displayed on the user entity through the interface provided by the application in a step 8316. That is to say, the content associated with the client account is provided to the user on successful access to the system 100.
The collection of content provided to the user may be a mixture of content which is published on a public streaming service 122 (e.g. YouTube and/or Vimeo) and content which is specific to the system 100, i.e. private content for users of the system who are associated with the client account. The content may also include the multimedia clip which led the user to access the system 100 initially.
The content corresponding to the associated client account may be displayed as a list of media clips inside a user interface 300. This is illustrated in Figure 3b. The name of the client associated with the client account is shown in one box 302 inside the user interface 300. The name of the user associated with the user profile is shown in another box 304. The selected content is displayed inside a box 306. The content associated with the client account is shown in a box 308 as a series of links each corresponding to an item of content. The selected link is played in box 306. The box 308 may also contain a scroll box to enable the user to scroll through the content associated with the client account. The user interface 300 also contains a search box to enable search terms to be used to search for content.
User interface 300 may additionally comprise a further link 314 which initialises an interface which enables the user to communicate with the client associated with the content displayed in box 306.
User interface 300 may additionally comprise a link 316 which activates an interface which enables a user to upload their own content for approval by the client. This will be described in more detail below.
Each of the links in box 308 corresponds to a multimedia file which is stored in storage module 110. Each item of content and therefore each multimedia file is assigned to data structure related to the client data structure associated with the account. A multimedia file may correspond to a plurality of different multimedia clips which form a playlist. Even a multimedia file which has a plurality of different multimedia clips has its own data structure. That is to say, each item of content which is associated with a client account is given its own data structure which is related to the client data structure and identified in the client data structure by an identification number given to the account. Each content data structure has the content provider identification number as a field so that the respective client, i.e. the client responsible for the content, can be related to the content by the system.
Each multimedia file is stored in storage module 110 in a data structure which is associated with the client account. That is to say, each multimedia file is identified in a data structure which contains a pointer to a location in storage where the multimedia file is contained. Each multimedia file is identified by its own number which enables it to be identified in the system when further analysis is carried out as part of a media analysis platform provided by system 100.
The multimedia files are uploaded to the system 100 by the client associated with the client account by a user at the client. The user uploads the specific media file to the administration interface module 102 and submits a request to the administration services module 104 for the content to be associated with the client account. The administration services module 104 initialises a data structure for the specific media file and assigns an identification number which is used to identify the multimedia file and the corresponding data structure. The data structure is stored by storage module 110 and DBMS 124 is used to generate a client content record in a client account database administered by the database module 108. Alternatively or additionally, the client may import content from third party streaming services such as YouTube and/or Vimeo. The client may also build playlists from different files by combining them into a single stream and saving them as a single file with a single identification number.
On selection of a link in box 308 the user entity 114 sends a request for the multimedia content corresponding to that link to the application services module 112 in a step S318. The application services module 112 responds to that request by providing a request for the selected content files from the storage module 110 in a step 5320. The storage module 110, responsive to receiving the request, provides a message to the administration services module 104 in a step 5322 (see Figure 3a) to indicate the content has been requested. The identification number corresponding to the selected multimedia file is used in the request to identify the selected multimedia content to the administration services module 104. The instance of the selected multimedia content being selected is recorded in a data structure corresponding to that content in a step 5324. The storage module 110 responds to the request from the application services module 112 by providing the files corresponding to the selected multimedia content to the application services module 112 in a step 5326. The selected multimedia content can then be transmitted to the user entity 114 in a step 5328 and played inside the box 308 on the user entity 114 in a step S330.
The user interface 300 also comprises a slider 310 which can be moved between first and second positions responsive to user input. The first position of the slider 310 indicates that the user is content for their personal data to be transmitted to the client associated with the client account which has provided the content being played inside box 306. The second position of the slider indicates that the user is not content for their personal data to be transmitted to the client associated with the client account which has provided the content played inside box 306.
Whilst the selected multimedia content is being played inside the box 306, the application can receive input from the slider 310 in a step 5332 to indicate whether the user associated with the user profile is content for their personal data to be sent to the client associated with the client account, i.e. the client named in box 302. The input from the slider 310 can be provided at any time whilst the user is viewing content from the respective client named in box 302.
The slider 310 is intended to illustrate the feature that the user can control who is receiving their personal data directly from the user interface 300 but it is not intended for the functionality to be provided only by a slider. Any suitable mechanism for receiving user input to change the permission settings can be used. That is to say, from the user interface 300 provided through the application on the user entity 114, the user can change user permissions regarding who receives their personal data. The effect of this is that the user controls who receives their data and who can use that data to contact them and that this control can be effected easily and simply through a user interface such as the one illustrated with reference to Figure 3b.
If the input indicates the user does permit their personal data to be sent to the client, a request is transmitted to the application services module 114 in a step 5334 for a corresponding flag in the data structure corresponding to the user profile to be updated. The application services module 114 responds to the request in a step 5336 by issuing a request to the identity and access management module 106 for a corresponding flag to be updated and it issues the corresponding request to the database module 108 in a step 5338.
The database module 108 comprises a database management system (DBMS) 124 which is configured to update the corresponding data structures for the client, i.e. the specific data structure assigned to the selected content and the data structure corresponding to the content uploaded by the client, and the user. Therefore, in response to the request in step 5338, the DBMS 124 updates the corresponding data structures, i.e. the data structure corresponding to the client and the data structure corresponding to the user and the changes are stored with a request to the storage module 110 in a step 5340. That is to say, the user permissions are updated to say the user's personal data can be transmitted to the client associated with the profile on which the selected content is provided. This means that next time the user is in the system 100 and views that content or content associated with the client account, the settings are already aligned with their preferences but can be easily adjusted by simply moving the slider 310.
The database module 108, having received a confirmation response from the storage module 110, then issues a response to the identity and access management module 106 confirming the changes have been made in a step 5342.
The identity and access management module 106 the user's personal data to the administration services module 104 in a step 5344.
If the input in step 5332 indicates the user does not permit their personal data to be sent to the client associated with the client account, then the user is allowed to continue viewing the content associated with the client but the only information that is transmitted is the time of viewing, the IP address of the user entity 114 and the location data associated with the location of the viewing in a step 5346.
Optionally, when the user specifies their permission for their data to be sent to the client, the application services module 114 may be configured to ask if the location data should be included with the personal data that is being sent.
That is to say, the user, when viewing the content provided by the client, can control whether that client can receive their personal data, which may include their location data.
The data received at the administration services module 104 in step 5344 or step 5346 can be stored in a data structure which corresponds to the particular media file they have viewed. That is to say, the personal data is stored in the content data structure corresponding to the particular media file which has been viewed.
In both cases, the time of viewing, the location of viewing and the IP address of the user entity 114 will be stored in a record in the data structure. If the user at the user entity 114 has indicated their consent to their personal data being shared with the client in step 5332, then the personal data received in step 5344 is stored in the corresponding record. The data received in step 5344 is also stored in a general data structure which records the time the user logged into the system 100, the access point to the system, i.e. whether it was through content on a third party streaming service 122 or an enhanced identity service 118, the geo-location data (if permitted by the user) and when the user exited the app or switched to another content provider.
The client can then access the data stored as a result of steps 5344 or 5346 and the use of this data is now described with reference to Figure 3c.
If the client wants to access the data stored as a result of steps 5344 or 5346 then they may access the administrator interface module 102 through a client entity such as a suitably configured personal computer, a laptop computer, a tablet or a mobile telephone. The client entity is configured to issue a request to the administration interface module 102 for access to the data stored by the administration services module. This is step 5348.
The administration interface module 102, responsive to receiving the request in step 5348, is configured to request the data from the administration services module 104 in a step 5350.
The administration services module 102 accesses the stored data by issuing a request (in a step 5352) to storage module 110 for the data structure corresponding to the client's content, i.e. the general data structure referenced above where the data received in step 5344 is stored.
Responsive to receiving the request, the storage module 110 returns the data structure to the administration services module 104. The administration services module 104 then provides the data structure 104 to the administration interface module 102 where it can be displayed in a step 5354.
This enables representatives of the client to see who is viewing the content. The information can then be exported into a file in a step S356 which can then be used as information which can then be used to contact the respective user.
That is to say, the user who is viewing the content can control the transmission of their personal information in that they can adjust the slider 310 to say their personal information can be passed to the client who provided the content. The slider 310 can also be used to withhold permission for their personal information to be passed to the client who provided the content.
Various viewing metrics related to the viewing of the content can be stored by the storage module 110 and recorded by application services module 112. The viewing metrics for the user can be collated by the client profile and used to determine further content which can be sent to the user. Such viewing metrics include time of login, location of login, frequency of login, time of logout, how often the user immediately switches to another item of content from the same client and how long the user views content for. This can be used to determine further content but it can also be used by the learning module 126 to determine patterns for the interactions between the user and the system 100.
For example, if a user logs in frequently, i.e. more than twice a day, for example, but only tends to view content for 3 minutes at the most, then the system 100 may determine he or she is more likely to look at shorter clips of content. This informs the further content which may be displayed to that user.
Additionally or alternatively, the administration services module 104 may be configured to determine that a user has viewed a specific media file and, if the personal data has been provided, retrieve further content which can then be provided to that user through the user interface 300. The further content may be tagged by the administration services module 104 as being similar in substantive content to the file the user has already viewed. That is to say, if the content the user has viewed relates to, for example, a new type of shaving gel, the further content may relate to a new moisturiser which is tagged as being complimentary to that shaving gel. That is to say, further content may be sent to the user profile based on their previous behaviour.
Additionally or alternatively the administration services module 104 may additionally comprise a learning module 126 which is configured to retrieve the stored data from the administration services module 104 and apply techniques of machine learning (such as AN Ns) to determine patterns in the behaviour of users. This may be that the techniques are trained to learn that a user is always logging in at 8 am in the vicinity of Kings Cross Station in London. This data can be used to inform content which may be suggested to that client. Such content may inform the user of a coffee shop in the area or of breaking news about the area. The learning module may be trained to provide output based on a pattern of behaviour determined based on the metrics associated with the user's behaviour when logging into the system 100. For example, if the user always logs into the system 100 on a Monday morning and looks at the content provided by their favourite sports team, the learning module 126 may provide an output which indicates to the system that the highlights from the game over the weekend should be pushed to the user's profile as that is what the user is most likely to be looking for.
Alternatively or additionally the administration services module 104 may store an administrator data structure which is configured and accessed by a super user at the client. The administrator data structure may contain a list of employees at the client and privileges assigned to those employees. For example, less senior employees may be prevented from seeing user data. The administration services module 104 will then anonymise requested lists or request further authorisation input from another employee with the correct privileges.
Additionally or alternatively, the administration services module 104 may determine that a user has been viewing informative content provided by the client. For example, the content may be provided by a cybersecurity solutions provider and the specific media file viewed by the client may relate to an introduction to distributed denial of service attacks. The administration services module 104 may then use the viewing of this content to increase a grade on the user profile corresponding to distributed denial or service attacks. That is to say, the system 100 can use the content to represent a graded skillset of the user. The next time the user is logged into system 100 they are notified of this update and then offered the chance to update their LinkedIn account in respect of this skill. This can be implemented by a call for the API of LinkedIn which can grant access to the user's account and enable the skillset to be displayed on their LinkedIn account.
Additionally or alternatively, the user can be provided with access to a log of their own activity inside the system. This can include logins, views of specific content and changes to their personal data flag for a specific account.
Additionally or alternatively, the administration services module 104 may provide notifications to users regarding new content uploaded to a client account with which they are associated. This can be achieved by sending a message to an email address provided to the system or through the user interface 300.
Additionally or alternatively; the link 314 initialises an interface through which the user can communicate with the client associated with the content displayed on box 306. Upon selecting the link 314, an electronic mail client associated with user entity 114 is activated and the "To" field, i.e. the destination for the electronic mail, is populated with a contact email address which is retrieved from the client data structure associated with the client who provides the content displayed in box 306. The link 314 may alternatively initialise a form or a chat interface which is configured to receive the message to be transmitted to the client. The form may comprise a plurality of input regions which are configured to receive the user's information that the user wishes to transmit to the client. The input regions may receive information such as the name, email address and other information which the user wishes to provide to the client. On entry of the information to be transmitted to the client, the information is transmitted using any suitable means. This could be via the respective modules in the system 100 or via the internet. The client can then receive the information and utilise it for their own or the user's benefit. The link 314 may also initialise an interface configured to receive video, voice or other audio visual content which contains the information that user wishes to transmit to the client.
That is to say, a system 100 in accordance with the first embodiment provides an application which enables the viewing of multimedia content from third party streaming providers such as YouTube and Vimeo; continuous checking of permission for the client to access the users data, the functionality to provide clients with a platform to compile content into playlists, the functionality to provide feedback regarding the graded skillset or knowledge of the user, the functionality to retrieve information from social media to populate their profile in system 100 and the functionality to enable clients to assign super users in accounts to configure specific roles for specific people who have access to their account.
The permissions provided by the user using the slider 310 may be altered for each client account during each access and the permission assigned by the user is logged in the respective user data structure and client data structure. This means that a user profile may be associated with multiple client accounts on which they view content. For example, a user may use the system 100 to view content from their favourite fast food provider and will change their permissions to enable the fast food provider to contact them with the latest offers. The same user may also use the system 100 to view contented related to the latest new cars from their favourite manufacturer but change their permissions to prevent the manufacturer from contacting them as they are not ready to discuss a purchase. In each instance, the steps of S300 to 5356 are repeated for each access to the system 100 as each access corresponds to a new instance of the application on the user entity 114.
That is to say, a user profile can be associated with multiple client accounts corresponding to their different interests. The user data structure can contain a flag for each client account with which they wish to be associated. A first client account could relate to their favourite sports team, a second client account could relate to their favourite musician, a third account could relate to their favourite fast food provider and a fourth account could relate to their employer. The permissions related to the transmission of the user's personal data can be adjusted for each account. This means that for the first account, the permission may be provided for the personal data to be provided to the sports team and it may be used by the sports team to provide further content. It means for the second account, the permission may be withheld. The user may also withhold permission for the other two accounts. However, they may adjust the permissions easily and quickly using the user interface 300.
We will now describe, with reference to Figures 4, 4a, 4b and 4c, a system 400 in accordance with a second embodiment.
System 400 comprises an administration interface module 402, an administration services module 404, an identity access management module 406, a database module 408, a storage module 410, an application services module 412 and a user entity 414.
User entity 414 may be a mobile computing device such as a mobile telephone, a laptop or a tablet. It will typically be configured with a web browser to enable access to the internet to utilise third party sources 422 which provide streaming 420 (e.g. Youtube and Vimeo), enhanced identity services 418 (e.g. LinkedIn) and identity services 416 (e.g. Google Passwords).
Client entity 440 may be any computing device which is configured to communicate with administration interface module 102.
As will be described below, system 400 provides an interface between the administration services module 404 and a client relationship management (CRM) system 428.
A user may register a user profile on system 400 in exactly the same way as with system 100. For the sake of brevity, we will not provide a separate description of the registration process in respect of system 400. A client may establish a client account in exactly the same way as with system 100.
Any of the modules which form part of system 400 may be implemented in hardware, as a collection of suitably configured processors, or virtually in software or using a cloud resource such as Amazon Web Services or Microsoft Azure.
We will now describe how a user may view content provided by a client using system 400 and how system 400 captures information as the user views content associated with the content provider and how that information can be used to generate further content which may be provided for that user.
The user at the user entity 414 accesses the system using the user entity 414 on which the application has been installed. This may be by clicking a uniform resource locator CURL) which is provided as part of or as an accompaniment to content provided by a client of system 400 which is being viewed on the user entity 414. The content may be provided on a streaming service such as Youtube or Vimeo. This causes the user entity 114 to launch the application which asks for the user's identity used to register on the system 400. On providing the user identity, the user entity 414 issues a request for access to the content associated with the content provider in a step 5500. An identification number associated with the content provider is identified by the selected URL to the application services module 112 and the application services module 112 is configured to use the identification number associated with the content provider to identify the associated content as content the user wishes to view. That is to say, the user's access to the system on user entity 114 may be as a result of viewing content on a third party streaming service such as Youtube or Vimeo.
In a step 5502, the application services module 412 issues a request to the identity and access management module 406 for authentication of the user using the user's identity. The identity and access management module 406 is configured to issue a request to the database module 408 for a user profile associated with the user identity in a step 5404. Similar to system 100, if the database module 408 determines that a user profile associated with the user identity does not exist, then it will issue a response to the identity and access management module 106 to deny access to the system 400 and the content associated with the content provider in a step 5506. The user profile may be deemed by the system 400 not to exist if a data structure containing the user identity (ID) cannot be found by storage module 410.
A request is then transmitted back to the user entity 414 for a corrected user identity and this sequence repeats until a user ID associated with an account is provided up to a number of attempts at which the identity and access management module 406 will mark the IP address of the user entity 414 as dangerous for a specific period of time, e.g. 30 days. That is to say, if a user cannot provide a valid user ID despite repeated attempts then they can be blocked out the system. System 400 may additionally use a CAPTCHA system to validate that a user entity 414 is being controlled by a human being.
If the database module 408 determines that a user profile associated with the user identity does exist, the database module 408 will then issue a response confirming the user profile to the identity and access management module 406. The identity and access management module 406 then issues a request to the database module 408 to check the user profile is associated with an account provided by the client who provided the content of interest. The database module 408 checks the user profile for a flag corresponding to the client account in a step 5508. The flag will be contained in the data structure generated in the steps 5200 to 5208 which contains the information about the user. The flag will be in an associated accounts field, a field which identifies a client account which the user has associated themselves with through activity in the system 400. There may be many associated accounts field corresponding to the plurality of client accounts with which the user account is associated. A particularly active user may have a larger number of accounts than a less active user.
If the flag exists then the database module 408 confirms the presence of the flag, i.e. the association between the user profile and the client account, to the identity and access management module 406 in a step 5510. If the flag does not exist, i.e. the association between the user profile and the client account is not established, then the database module 108 places a flag in the data structure corresponding to the user profile which establishes the association between the user profile and the client account in the system 100. This is step 5512.
That is to say, the identity and access management module 406 is configured to determine that the user profile is registered on the system and also configured to determine the presence of an association between the user profile and the client account. In the event the association does not exist, a flag is placed into a data structure corresponding to the user profile which sets the association between the client account and the user profile as an attribute in the user profile. Alternatively or additionally, the user may be prompted to seek their consent for the flag to be placed in their data structure, i.e. permission may be sought from the user for the association between the account and the client to be set up.
The client also has a data structure which contains details of users who are associated with the account. This data structure is created by the system 400 when the client opens an account and is used to register the association. It is not directly accessible by the client in order to maintain the privacy of the user profiles associated with the client account.
On confirmation of the presence of the user profile in the system 400 and confirmation of the association of the user profile and the client account, the user is provided access to the system 400 using the application installed on the user entity 414 in a step 5514. On enabling the user to access to the system, the content corresponding to the associated client account is displayed on the user entity through the interface provided by the application in a step 8516. That is to say, the content associated with the client account is provided to the user on successful access to the system 100.
The collection of content provided to the user may be a mixture of content which is published on a public streaming service 122 (e.g. YouTube and/or Vimeo) and content which is specific to the system 100, i.e. private content for users of the system who are associated with the client account. The content may also include the multimedia clip which led the user to access the system 100 initially.
The content corresponding to the associated client account may be displayed as a list of media clips inside the user interface 300. This is illustrated in Figure 3b. The name of the client associated with the client account is shown in one box 302 inside the user interface 300. The name of the user associated with the user profile is shown in another box 304. The selected content is displayed inside a box 306. The content associated with the client account is shown in a box 308 as a series of links each corresponding to an item of content. The selected link is played in box 306. The box 308 may also contain a scroll box to enable the user to scroll through the content associated with the client account.
Each of the links in box 308 corresponds to a multimedia file which is stored in a data structure associated with the account A multimedia file may correspond to a plurality of different multimedia clips which form a playlist.
Each multimedia file is stored in storage module 410 in a data structure which is associated with the client account. That is to say, each multimedia file is identified in a data structure which contains a pointer to a location in storage where the multimedia file is contained. Each multimedia file is identified by its own number which enables it to be identified in the system when further analysis is carried out as part of a media analysis platform provided by system 400.
The multimedia files are uploaded to the system 400 by the client associated with the client account by a user at the client. The user uploads the specific media file to the administration interface module 402 and submits a request to the administration services module 404 for the content to be associated with the client account. The administration services module 404 initialises a data structure for the specific media file and assigns an identification number which is used to identify the multimedia file and the corresponding data structure. The data structure is stored by storage module 410 and DBMS 424 is used to generate a client content record in a client account database administered by the database module 108. Alternatively or additionally, the client may import content from third party streaming services such as YouTube and/or Vimeo. The client may also build playlists from different files by combining them into a single stream and saving them as a single file with a single identification number.
The content uploaded by the client may be native content which they have generated themselves. Any content uploaded by the client to the system may also be provided with tags by the client to designate areas of interest which may correspond to the uploaded content. That is to say, for a client who is a manufacturer of sports shoes, they may wish to tag their new video for a new style of football boot with the words football, soccer or the name of a particular footballer who wears the boot. This means the video can be identified by the system 400 as belonging to a particular field of interest and the user may be notified of the existence of this content when they access the system to view the client content or even if they access the system to view the content of another client.
Native content may be transcoded by the administration services module 404 into a variety of formats, each suitable for a particular type of device. Each format may be stored separately within the data structure corresponding to the media file used to save the content. That is to say, for a file containing native content, the corresponding data structure may contain a plurality of versions. Each of which will be optimised for display on a known type of user entity e.g. one type for mobile telephone, one type for personal computer etc. On selection of a link in box 308 the user entity 414 sends a request for the multimedia content corresponding to that link to the application services module 412 in a step S518. The application services module 412 responds to that request by providing a request for the selected content files from the storage module 410 in a step 5520. The storage module 410, responsive to receiving the request, provides a message to the administration services module 404 in a step 5522 to indicate the content has been requested. The identification number corresponding to the selected multimedia file is used in the request to identify the selected multimedia content to the administration services module 504. The instance of the selected multimedia content being selected is recorded in a data structure corresponding to that content in a step S524. The storage module 410 responds to the request from the application services module 412 by providing the files corresponding to the selected multimedia content to the application services module 412 in a step S526. The selected multimedia content can then be transmitted to the user entity 414 in a step 5528 and played inside the box 308 on the user entity 414 in a step S530.
As with the first embodiment the user interface 300 can receive input from a slider 310 which can be moved between first and second positions responsive to the input. The first position of the slider 310 indicates that the user permits their personal data to be transmitted to the client associated with the client account which has provided the content being played inside box 306. The second position of the slider indicates that the user does not permit their personal data to be transmitted to the client associated with the client account which has provided the content played inside box 306.
Whilst the selected multimedia content is being played inside the box 306, the application can receive input from the slider 310 in a step 5532 to indicate whether the user associated with the user profile is content for their personal data to be sent to the client associated with the client account, i.e. the client named in box 302. The input from the slider 310 can be provided at any time whilst the user is viewing content from the respective client named in box 302. That is to say, the permission for the personal data to be shared with the client can be changed, provided, or withdrawn at any time whilst the user at user entity 414 is logged into the system to view the client's content.
The slider 310 is intended to illustrate the feature that the user can control who is receiving their personal data directly from the user interface 300 but it is not intended for the functionality to be provided only by a slider. Any suitable mechanism for receiving user input to change the permission settings can be used. That is to say, from the user interface 300 provided through the application on the user entity 414, the user can change user permissions regarding who receives their personal data. Similarly to the first embodiment, the effect of this is that the user controls who receives their data and who can use that data to contact them and that this control can be effected easily and simply through a user interface such as the one illustrated with reference to Figure 3b.
If the input indicates the user does permit their personal data to be sent to the client, a request is transmitted to the application services module 414 in a step 5534 for a corresponding flag in the data structure corresponding to the user profile to be updated. The application services module 114 responds to the request in a step S536 by issuing a request to the identity and access management module 406 for a corresponding flag to be updated and it issues the corresponding request to the database module 408 in a step S538.
The database module 408 comprises a database management system (DBMS) 424 which is configured to update the corresponding data structures for the client, i.e. the specific data structure assigned to the selected content and the data structure corresponding to the content uploaded by the client, and the user. Therefore, in response to the request in step S538, the DBMS 424 updates the corresponding data structures, i.e. the data structure corresponding to the client and the data structure corresponding to the user and the changes are stored with a request to the storage module 510 in a step S540. That is to say, the user permissions are updated to say the user's personal data can be transmitted to the client associated with the profile on which the selected content is provided. This means that next time the user is in the system 400 and views that content or content associated with the client account, the settings are already aligned with their preferences but can be easily adjusted by simply moving the slider 310 on the user interface 300.
The database module 408, having received a confirmation response from the storage module 410, then issues a response to the identity and access management module 406 confirming the changes have been made in a step 5542.
The identity and access management module 406 then transmits the user personal data to the administration services module 404 in a step 5544.
If the input in step 5532 indicates the user does not permit their personal data to be sent to the client associated with the client account, then the user is allowed to continue viewing the content associated with the client but the only information that is transmitted is the time of viewing, the IP address of the user entity 514 and the location data associated with the location of the viewing in a step 5546.
Optionally, when the user specifies their permission for their data to be sent to the client, the application services module 514 may be configured to ask if the location data should be included with the personal data that is being sent.
That is to say, the user, when viewing the content provided by the client, can control whether that client can receive their personal data, which may include their location data.
The data received at the administration services module 504 in step 5544 or step 5546 can be stored in a data structure which corresponds to the particular media file they have viewed.
In both cases, the time of viewing, the location of viewing and the IP address of the user entity 414 will be stored in a record in the data structure. If the user at the user entity 414 has indicated their permission to their personal data being shared with the client in step 5532, then the personal data received in step 5544 is stored in the corresponding record. The data received in step 5544 is also stored in a general data structure which records the time the user logged into the system 400, the access point to the system, i.e. whether it was through content on a third party streaming service 422 or an enhanced identity service 418, the geo-location data (if permitted by the user) and when the user exited the instance of the application on the user entity 414 or switched to another content provider.
The client can then utilise the data stored as a result of step 5544 and the use of this data is now described with reference to Figure 4c.
If the client wants to access the data stored as a result of steps 5544 then they may access the administrator interface module 402 through a client entity such as a suitably configured personal computer, a laptop computer, a tablet or a mobile telephone. The client entity is configured to receive input requesting upload of the data to the CRM system 428 in a step 5546.
The administration interface module 102, responsive to receiving the request in step 5548, is configured to request the upload of the data from the administration services module 104 in a step S550.
The administration services module 104 then issues an application programming interface (API) call in a step S552 and retrieves the data from storage module 110. The administration services module 104 converts the data into a format specified by the API and then provides it an input to the API. The data is then uploaded to the CRM system in a step 5554.
The personal data of the individuals who have viewed the content then be used in the CRM without needing to download the data to an external computing device, thereby reducing the risk the data would be exposed outside of the system 400. The effect of this is increased protection for personal data stored inside system 400. There is lower risk of accidental disclosure of the data as it is being transmitted from the system to the CRM system used by the client.
Additionally or alternatively, the administration services module 404 may be configured to determine that a user has viewed a specific media file and, if the personal data has been provided, retrieve further content which can then be provided to that user through the user interface 300. The further content may be tagged by the administration services module 104 as being similar in substantive content to the file the user has already viewed. That is to say, if the content the user has viewed relates to, for example, a new type of shaving gel, the further content may relate to a new moisturiser which is tagged as being complimentary to that shaving gel. That is to say, each file containing content can be tagged by the client who uploads the content so that it can be categorised as belonging to a specific product group or area of interest. This means that when a user views a particular piece of content with a specific tag, the system 400 can automatically notify the user of other content which may be of interest by comparing the tags of content frequently viewed by the user with tags attributed to other content. The tags may be stored in a data structure corresponding to the particular piece of content. The application services module 412 may be configured to automatically provide the notification to the user when the administration services module determines the presence of content which may be interest. The effect of this is that notifications are provided without the client input and the need to manually process the information before pushing it through the system 400.
Additionally or alternatively, the client may also provide content from their social media channels through their account as part of their native content or a playlist. That is to say, content from Facebook, lnstagram, Twitter, LinkedIn and Microsoft Stream may be added to the content associated with a client account.
Additionally or alternatively the administration services module 104 may additionally comprise a learning module 426 which is configured to retrieve the stored data from the administration services module 404 and apply techniques of machine learning (such as ANNs) to determine trends in the behaviour of users. This may be that the techniques are trained to determine that a user is particularly interested in travel as they are frequently viewing content from a travel agent (e.g. Expedia). This information may be used to push further travel content to the user. The learning module 426 may be further configured to determine that the user is particularly interested in travel to South America and may use this information to notify them of clients who upload content with the associated tags "South America" and the countries within South America.
We now describe, with reference to Figures 5a, 5b and Sc, a system 600 which enables a client to utilise data captured from the viewing of content to initialise payment for goods related to the content.
System 600 comprises an administration interface module 602, an administration services module 604, an identity access management module 606, a database module 608, a storage module 610, an application services module 612 and a user entity 614. Each works in the same way as the corresponding module in system 400. Client entity 640 works the same way as client entity 440.
User entity 614 may be a mobile computing device such as a mobile telephone, a laptop or a tablet. It will typically be configured with a web browser to enable access to the internet to utilise third party sources 622 which provide streaming 620 (e.g. Youtube and Vimeo), enhanced identity services 618 (e.g. Linkedln) and identity services 616 (e.g. Google Passwords).
As with system 400, system 600 provides an interface between the administration services module 604 and a client relationship management (CRM) system 628.
User entity 614 also provides an interface with a commerce module 630 which will be described below.
A user may register a user profile on system 600 in exactly the same way as with system 100. For the sake of brevity, we will not provide a separate description of the registration process in respect of system 600.
Any of the modules which form part of system 600 may be implemented in hardware, as a collection of suitably configured processors, or virtually in software or using a cloud resource such as Amazon Web Services or Microsoft Azure.
We will now describe how a user may view content provided by a client using system 600 and how system 600 captures information as the user views content associated with the content provider and how that information can be used to generate further content which may be provided for that user.
The user at the user entity 614 accesses the system using the user entity 614 on which the application has been installed. This may be by clicking a uniform resource locator (URL) which is provided as part of or as an accompaniment to content provided by a client of system 600 which is being viewed on the user entity 614. As with systems 100 and 400, the content may be provided on a streaming service such as Youtube or Vimeo. This causes the user entity 614 to launch the application which asks for the user's identity used to register on the system 600. On providing the user identity, the user entity 614 issues a request for access to the content associated with the content provider in a step 5700. An identification number associated with the content provider is identified by the selected URL to the application services module 612 and the application services module 612 is configured to use the identification number associated with the content provider to identify the associated content as content the user wishes to view. That is to say, the user's access to the system on user entity 114 may be as a result of viewing content on a third party streaming service such as Youtube or Vimeo. The content may be placed onto the third party streaming website by a content provider who is identified in the system using a number which can be part of the URL selected by the user when they are viewing content on Youtube and/or Vimeo. This means the link will identify the client account associated with the content provider as the number will be assigned to that content provider by the system 600.
In a step S702, the application services module 612 issues a request to the identity and access management module 606 for authentication of the user using the user's identity. The identity and access management module 606 is configured to issue a request to the database module 608 for a user profile associated with the user identity in a step 5704. Similar to system 100, if the database module 608 determines that a user profile associated with the user identity does not exist, then it will issue a response to the identity and access management module 606 to deny access to the system 600 and the content associated with the content provider in a step 5706. The user profile may be deemed by the system 600 not to exist if a data structure containing the user identity (ID) cannot be found by storage module 610.
A request is then transmitted back to the user entity 614 for a corrected user identity and this sequence repeats until a user ID associated with an account is provided up to a number of attempts at which the identity and access management module 606 will mark the IP address of the user entity 614 as dangerous for a specific period of time, e.g. 30 days. That is to say, if a user cannot provide a valid user ID despite repeated attempts then they can be blocked out the system. System 600 may additionally use a CAPTCHA system to validate that a user entity 614 is being controlled by a human being.
If the database module 608 determines that a user profile associated with the user identity does exist, the database module 608 will then issue a response confirming the user profile to the identity and access management module 606. The identity and access management module 406 then issues a request to the database module 608 to check the user profile is associated with an account provided by the client who provided the content of interest. The database module 608 checks the user profile for a flag corresponding to the client account in a step 5708. The flag will be contained in the data structure generated in the steps 5200 to 5208 which contains the information about the user. The flag will be in an associated accounts field, a field which identifies a client account which the user has associated themselves with through activity in the system 600. There may be many associated accounts field corresponding to the plurality of client accounts with which the user account is associated. A particularly active user may have a larger number of accounts than a less active user.
If the flag exists then the database module 608 confirms the presence of the flag, i.e. the association between the user profile and the client account, to the identity and access management module 606 in a step S710. If the flag does not exist, i.e. the association between the user profile and the client account is not established, then the database module 608 places a flag in the data structure corresponding to the user profile which establishes the association between the user profile and the client account in the system 600. This is step 5712.
That is to say, the identity and access management module 606 is configured to determine that the user profile is registered on the system and also configured to determine the presence of an association between the user profile and the client account. In the event the association does not exist, a flag is placed into a data structure corresponding to the user profile which sets the association between the client account and the user profile as an attribute in the user profile. Alternatively or additionally, the user may be prompted to seek their consent for the flag to be placed in their data structure, i.e. permission may be sought from the user for the association between the account and the client to be set up.
The client also has a data structure which contains details of users who are associated with the account. This data structure is created by the system 600 when the client opens an account and is used to register the association. It is not directly accessible by the client in order to maintain the privacy of the user profiles associated with the client account.
On confirmation of the presence of the user profile in the system 600 and confirmation of the association of the user profile and the client account, the user is provided access to the system 400 using the application installed on the user entity 614 in a step 8714. On enabling the user to access to the system, the content corresponding to the associated client account is displayed on the user entity through the interface provided by the application in a step 8716. That is to say, the content associated with the client account is provided to the user on successful access to the system 600.
The collection of content provided to the user may be a mixture of content which is published on a public streaming service 622 (e.g. YouTube and/or Vimeo) and content which is specific to the system 600, i.e. private content for users of the system who are associated with the client account. The content may also include the multimedia clip which led the user to access the system 600 initially.
The content corresponding to the associated client account may be displayed as a list of media clips inside the user interface 300 illustrated in Figure 3b. The name of the client associated with the client account is shown in one box 302 inside the user interface 300. The name of the user associated with the user profile is shown in another box 304. The selected content is displayed inside a box 306. The content associated with the client account is shown in a box 308 as a series of links each corresponding to an item of content. The selected link is played in box 306. The box 308 may also contain a scroll box to enable the user to scroll through the content associated with the client account.
Each of the links in box 308 corresponds to a multimedia file which is stored in a data structure associated with the account A multimedia file may correspond to a plurality of different multimedia clips which form a playlist.
Each multimedia file is stored in storage module 610 in a data structure which is associated with the client account. That is to say, each multimedia file is identified in a data structure which contains a pointer to a location in storage where the multimedia file is contained. Each multimedia file is identified by its own number which enables it to be identified in the system when further analysis is carried out as part of a media analysis platform provided by system 600.
The multimedia files are uploaded to the system 600 by the client associated with the client account by a user at the client. The user uploads the specific media file to the administration interface module 602 and submits a request to the administration services module 604 for the content to be associated with the client account. The administration services module 604 initialises a data structure for the specific media file and assigns an identification number which is used to identify the multimedia file and the corresponding data structure. The data structure is stored by storage module 610 and DBMS 624 is used to generate a client content record in a client account database administered by the database module 608. Alternatively or additionally, the client may import content from third party streaming services such as YouTube and/or Vimeo. The client may also build playlists from different files by combining them into a single stream and saving them as a single file with a single identification number.
The content uploaded by the client may be native content which they have generated themselves. Any content uploaded by the client to the system may also be provided with tags by the client to designate areas of interest which may correspond to the uploaded content, as with system 400. The tags may also be associated by the system with a product sold or distributed by the client who provides the content. For example, if the content provider is a distributor of virtual reality headsets, then the user interface 300 may also contain a link 312 which directs the user to a commerce module 630 where they can purchase more content On selection of a link in box 308 the user entity 614 sends a request for the multimedia content corresponding to that link to the application services module 612 in a step S718.
Responsive to receiving the request in step 5718, the application services module 612 checks to see if the user has paid for the content by checking the user's payment status in their data structure by issuing a payment status request to the database module 608 in a step 5720. The database module 608 issues a request to the DBMS 624 for the payment status of the user. The DBMS 624 queries the database of registered users using the user's identification number assigned during registration in steps 5200 to 5208.
The query contains the user's identification number and searches for a specific payment flag in the user database. The specific payment flag details a tariff which is currently assigned to the respective user. For example, the flag may say "MONTHLYPAYPREMIUM" and this indicates a tariff where the user pays monthly for a premium service where the user is provided with as much content as they wish in that time. In this example, the payment flag does say "MONTHLYPAYPREMIUM" which says the user is on this tariff. Another flag is provided which simply says whether the user has paid or not. In this example, the user has paid. The DMBS 624 therefore returns a result that the payment status is up to date and the selected content can be accessed. The database module therefore returns a response to the request provided in step S720 with a confirmation that the payment status is up to date. That is to say, a message is transmitted to the application services module 612 to say the user's payment status is up to date and the content can be accessed. This is step 5722.
The content can then be accessed as it can be in accordance with steps S520 to 5546. That is to say,if the query returns a positive response, the selected content can be viewed and the transmission of the user's personal data can be provided or withheld dependent on the user input whilst viewing the content provided by the client associated with the client account.
If the query returns a negative response, i.e. that the payment status is not up to date, the application services module 612 issues a request to user entity 614 for payment in a step 5724. The application provides a link which, when selected, initialises a payment update process as detailed in Figure Sc.
On selection of the link provided by the application, the payment process is initiated in a step S800. On initialisation of the payment process, the user entity 614 issues a request to the commerce module 630 in a step S802 for the commerce module 630 to open up an interface with an e-commerce service such as Stripe. On receiving the request, the commerce module 630 issues a API call to an e-commerce provider such as, for example, Stripe in a step S804. This opens up a secure payment channel between the commerce module 630 and the e-commerce provider. The commerce module 630 may secure the user's payment card details in secure, encrypted storage.
The commerce module 630 provides a list of selectable tariffs to the user entity for selection by the user in a step S806. The tariffs may include "PAYMONTHLYPREMIUM" as detailed above but may also include other tariffs as set out in the table below: Tariff Identifier Tariff PAYMONTHLYPREMIUM Monthly payment taken from user's account in exchange for full content.
PAYASYOUGO User pays for content on a credit basis, i.e. pays 10 GBP and gets charged 0.3 GBP every time content is viewed until the 10 GBP is spent.
PAYMONTHLY Monthly payment taken from user's account but they cannot access all content.
The user selects the tariff they want, i.e. PAYMONTHLYPREMIUM, in a step S808. The user entity 614 submits the selection to the commerce module 630 and the commerce module 630 retrieves the user's payment details which are provided to the e-commerce provider using the respective API. This brings the payment into effect in a step S810.
On making the payment, a confirmation is provided to the application services module 612 in a step S812. The application services module 612 then issues a request for the payment status of the user to be updated in a step S814.
The selected content can then be accessed as it can be in accordance with steps 5520 to 5546. As a result, the distribution of personal data can also be controlled and the content can be viewed.
The system 600 allows the client to directly monetise their content through their platform for their users. The tariffs identified above are only examples and can be customised by the client for their content.
Alternatively or additionally, a user can also link their profile to other user profiles and can share content and notifications, whether they relate to new content or updated skillsets or another aspect of content, to others in their list of other users. This may enable third parties to view their profile and contact them about potential job opportunities or other opportunities. The system 600 may perform this automatically if, for example, interests indicated by activities of one user correspond with the activities of another.
That is to say, a system in accordance with any of the described embodiments provides user profile customisation, user social media integration, user location and information collection and playlist creation. To the best of our knowledge this is currently not offered by any other available system.
The system not only supports embedding and playing content from YouTube, Vimeo and other third party streaming services but also enables the client to upload their own native content.
The content uploaded by a client, whether native or otherwise, may also be assigned tags and hash values to facilitate searching of content using a search functionality provided by a system in accordance with any of the embodiments.
Clients who have an account on the system can also sell adverts which will be provided to users who show interest in particular content, as determined by the system. Interest in particular content can be demonstrated by frequently viewing content which carries a particular tag. For example, frequently viewing content with the "outdoor pursuits" tag indicates the user is interested in outdoor pursuits. Distributors of outdoor clothing may use the system to provide advertising to those users.
Clients can also link their accounts to other types of content such as documents, podcasts, live streams, virtual reality content and others.
The learning modules of any of the systems 100, 400 or 600 can also apply machine learning (such as ANNs) techniques to the user data to determine trends in user behaviour such as when they are likely to login to the system (for resource allocation), when they view content and how often, where they view content from and when they leave the system or client account. This can be provided to the client either with personal data or without, depending on the user permissions.
Users can also add content they have seen to a "watch later" list if they do not have the time to watch the content at the initial login. The system may store content which has been added to the "watch later" list in association with the user profile.
A system in accordance with the first, second or third embodiments enables a user to control the distribution of their personal data. This means they have control over the exposure of the personal data to cyber-attacks and to viewing from third parties.
A system in accordance with the first, second or third embodiments enables a user to view content they wish to view whilst restricting the contact providers can have with them.
The restriction of the transmission of personal data to only the times the user wishes it to be transmitted also reduces the demand on network resources which will implement the transmission.
The system in accordance with the first, second or third embodiments may enable the user to upload their own content for approval by a client. We will now describe this process with reference to Figures 6 and 7.
A user who wishes to upload content to the media access platform may launch the application on user entity 114 and provide input into user interface 300 which indicates their desire to upload their own content in a step 51000. This may involve selection of link 316 which activates an interface 900 (as illustrated in Figure 7) which contains an input region 902 into which a file location can be entered, wherein the file at the file location contains the content the user wishes to upload. The link 904 is then selected to upload the file identified in input region 902 to the system 100 in a step 51002.
The interface 900 contains a box 906 which contains details of the client such as the name of the client and a text description of the content displayed in box 306.
On selection of the link 904 in step 51002, a request is transmitted from the user entity 114 to the application services module 112 for approval of the content by the client associated with the content displayed in box 306 in a step 51004.
The application services module 112 transmits a request to database module 108 for the client to be contacted for approval in a step 51006. The database module 108 timestamps the request and records the request in the user data structure in a step 51008. The database module 108 then transmits the content to the administration services module 104 with a request for the client to be issued with a form which comprises an approval or disapproval link, in addition to a region in which the content is displayed. This is step 51010.
On receiving the request in step 51010, the form is retrieved from local storage by the administration services module 104 and a region of the form is populated with the content uploaded by the user. The form is then transmitted to the administration interface module 602 which utilises a web browser at client entity 140 to display the form to the client. That is to the client is provided with a web-page containing the uploaded content and an approval or disapproval link. The client can then review the content to see if it is appropriate. If not appropriate the client can select disapproval and if appropriate the client can select approval. This is step 51012 On selection of the link, the output, i.e. approval or disapproval, is then transmitted to the administration services module 104 with a request for the uploaded content to be assigned a data structure which is related to the client data structure. That is to say, the uploaded content is given its own data structure like any other content. This allows metrics regarding viewing of the content to be stored in a structured and measurable way. This is step 51014.
If the content is approved, then in step S1016, the administration services module 104 transmits the request for a data structure to be assigned to the uploaded content and for the uploaded content to be stored. The request is transmitted to the database module 608. On receiving the request, the database module 608 assigns an identification number to the uploaded content which is used to index the data structure corresponding to the content. The DBMS 124 then stores the data structure corresponding to the content using the storage module 610. The data structure is also populated with the identification number of the user who uploaded it and a permission flag which describes whether the client has the permission to share the content with other parties.
The database module 608 then provides a message to the application services module 612 for a confirmation notification to be provided to the user entity 114 where it can be viewed. The confirmation notification is transmitted to the user entity 114 where it is viewed by the user. This is step 51018.
If the content is disapproved, then in step 81020, the administration services module 104 transmits a request for a denial notification to be issued to the user. The request is transmitted to the database module 108 which records the denial against the user data structure.
The database module 108 then transmits a message to the application services module 112 for a denial notification to be provided to the user at the user entity 114. The user is then provided with the denial notification in step 81022 That is to say, the user can be provided with the opportunity to upload their own content which is the approved by the client. The client may then identify third parties which may be interested in the content uploaded by the user. The third parties may be other clients or other users. The client can then share the uploaded content with those third parties if the user permits them to do so.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be capable of designing many alternative embodiments without departing from the scope of the invention as defined by the appended claims. In the claims, any reference signs placed in parentheses shall not be construed as limiting the claims. The word "comprising" and "comprises", and the like, does not exclude the presence of elements or steps other than those listed in any claim or the specification as a whole. In the present specification, "comprises" means "includes or consists of' and "comprising" means "including or consisting of". The singular reference of an element does not exclude the plural reference of such elements and vice-versa. The invention may be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer. In a device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims (56)

  1. CLAIMS1. A computer implemented method for providing a media analysis platform for one or more clients, the method implemented by a processing resource and comprising the steps of: creating a client profile for a given client among the one of more clients, the given client being a provider of media content, providing an access point pertaining to the platform, responsive to receipt of an input via the access point from a user entity, the method further includes the steps of: creating or accessing a user profile for the user entity, the user profile including a first account for media content provided by the given client, wherein the first account is associated with user data and user permissions that are specific to the given client; providing for the user entity based on the first account, access to at least one media file associated with the given client via an interface associated with the platform; responsive to the user entity viewing or interacting with the at least one media file via the interface, the method further includes: (a) capturing data associated with such viewing or interaction, said capturing based on the user permissions for the first account; (b) sending the captured data and the user data to the given client, said sending based one the user permissions for the first account; and (c) updating a setting for the first account based on the at least one media file consumed via the interface.
  2. 2. A method according to Claim 1, wherein the client profile is associated with a plurality of media files, the plurality of media files including a subset of at least one public media file, the remaining media files in the plurality being private to the platform.
  3. 3. A method according to Claim 2, wherein the access point is made available upon provision or display of the at least one media file in the subset.
  4. 4. A method according to any preceding claim, wherein the access is enabled via input of a user identifier.
  5. 5. A method according to Claim 4, wherein the user identifier is a password.
  6. 6. A method according to Claim 4, wherein the user identifier is an identifier for a third party social media account.
  7. 7. A method according to any preceding claim, wherein the method further comprises a step (d) receiving further media content from the given client via the interface based on the updated setting; wherein the method includes repeating steps (a) to (d) for the further media content.
  8. 8. A method according to any preceding claim, wherein the step (a) further includes capturing data related to the location of the viewing or interaction.
  9. 9. A method according to any preceding claim, wherein the method further comprises a step (e) sending the user data into a contact database based on the user permissions for the given client.
  10. 10. A method according to any preceding claim, wherein the user profile includes a further plurality of accounts for media content for one or more other clients, wherein each account is associated with user data and user permission specific to the respective other client.
  11. 11. A method according to Claim 10, wherein access to at least one media file associated with the respective other client is provided via a user input region on a user interface associated with the platform.
  12. 12. A method according to Claim 11, wherein, responsive to the user entity viewing or interacting with the at least one media file via the interface, the method further includes the steps (a) to (c) in respect of the at least one media file associated with the respective other client.
  13. 13. A method according to any preceding claim, wherein the user permissions associated with a client comprises a privacy setting which determines whether personal data for the user can be sent to the client.
  14. 14. A method according to Claim 13, wherein the privacy setting determines whether data sent to the client includes location data corresponding to the location of the viewing or interaction with the media file.
  15. 15. A method according to any of Claim 13 or Claim 14 wherein the privacy setting can be adjusted via a user interface on which the media file is displayed during the viewing or interaction with the media file.
  16. 16. A method according to any preceding claim, wherein the captured data is used to determine a pattern associated with the activity of the user.
  17. 17. A method according to Claim 16, wherein the pattern used to determine media content to show to the user or send to the user.
  18. 18. A method according to any preceding claim, wherein the data associated with the viewing or interaction is retrieved from a first data structure containing data corresponding to the user permissions for the respective client account.
  19. 19. A method according to any preceding claim, the method further comprising providing an interface to enable the user associated with the user profile to communicate with the client associated with the client account.
  20. 20. A method according to Claim 19, wherein the interface activates an electronic mail client to enable the user to send an electronic mail to the client.
  21. 21. A method according to Claim 19, wherein the interface initiates a chat interface configured to enable the user and the client to communicate with each other.
  22. 22. A method according to Claim 19, wherein the interface generates a form comprising a plurality of input regions, wherein each input region corresponds to information to be communicated to the client from the user.
  23. 23. A method according to any preceding claim, the method further comprising: providing an interface configured to enable the user associated with a user profile to upload content to the platform; receiving input from the user requesting association of the content with the user profile; providing approval of the association of the content with the user profile.
  24. 24. A method according to Claim 23, the method further comprising: receiving input from the user requesting association of the content with a client account associated with a client; notifying the client of the request from the user requesting association of the content with the client account; receiving input from the client either confirming or denying approval of the content with the client account and, based on the input from the client, notifying the user of confirmation or denial of association of the content with the client account.
  25. 25. A method according to Claim 24, wherein notifying the client of the request from the user requesting association of the content with the client account comprises: providing an interface to the client to enable the client to view the content.
  26. 26. A method according to Claim 24 or 25, wherein the platform is configured to provide an interface configured to receive input identifying a third party, wherein responsive to receiving the input identifying the third party, the content is transmitted to the third party.
  27. 27. A method according to any preceding claim, wherein the processing resource is a processor.
  28. 28. A method according to any of Claims 1 to 26, wherein the processing resource is a cloud based resource.
  29. 29. A computer-implemented method of providing access a media analysis platform to a client to enable the client to examine viewing or interaction data pertaining to media content provided by the client, the method implemented by a processing resource associated with the platform, the method comprising: creating a client profile for the client and associating the client profile with media content provided by the client, the media content comprising at least one media file; receiving a request from a client to access the media analysis platform via an access portal configured to receive authentication information from the client; enabling access to the media analysis platform based on the authentication information provided by the; retrieving the viewing or interaction data associated with the media content provided by the client and determining the presence of user data in the retrieved viewing or interaction data; displaying the viewing or interaction data on a media analysis portal.
  30. 30. A method according to Claim 29, wherein determining the presence of user data in the retrieved viewing or interaction data comprises determining permission to use the user data.
  31. 31. A method according to Claim 29 or 30, further comprising determining the presence in the viewing or interaction data of user data associated with a user captured from the viewing or interaction of the media file.
  32. 32. A method according to Claim 31, wherein the method further comprises downloading the user data to an external database.
  33. 33. A method according to Claim 32 wherein the external database is a client relationship management database.
  34. 34. A method according to any of Claims 29 to 33 wherein the media content comprises at least one of native content; a plurality of multimedia files; a playlist comprising a plurality of clips.
  35. 35. A method according to Claim 34, wherein the plurality of clips is determined by an order assigned by client entity associated with the client.
  36. 36. A method according to any of Claims 29 to 35, wherein the viewing or interaction data comprises location data associated with the location at which the respective content was viewed.
  37. 37. A computer-implemented method of enabling a user to view or interact with media content provided by a client entity via a media access portal, the method implemented by a processing resource, the method comprising: providing an access point to a media access portal on a first user entity associated with a user; retrieving media content associated with a client account associated with a user profile associated with the user; displaying the media content via a user interface on a second user entity associated with the user to enable the user to view or interact with the media content; capturing information associated with the viewing or interaction of the user with the media content, said capturing based on user permissions associated with the client account; sending captured information to the client entity based on the user permissions.
  38. 38. A method according to Claim 37, where the access point is provided responsive to viewing a public media file associated with the client entity.
  39. 39. A method according to Claim 37, wherein the access point is configured to receive an input identifier for the user.
  40. 40. A method according to Claim 39 wherein the input identifier is a password.
  41. 41. A method according to Claim 39 or Claim 40 wherein the input identifier is provided by a social media provider.
  42. 42. A method according to any of Claims 37 to 41, wherein the media content is retrieved based on previous interaction with the user.
  43. 43. A method according to Claim 30, wherein the previous interaction is used to determine a pattern used to determine media content provided to the user.
  44. 44. A method according to any of Claims 37 to 43, wherein the media content is retrieved based on location information associated with the user.
  45. 45. A method according to any of Claims 37 to 44, wherein the media content comprises a plurality of files.
  46. 46. A method according to Claim 45, wherein the plurality of files is displayed in an order assigned by the client.
  47. 47. A method according to any of Claims 41 to 46, wherein the user profile is further associated with a plurality of other client accounts, each associated with media content provided by the respective client.
  48. 48. A method according to Claim 47, wherein the captured information is sent to the client entity based on a user permission setting assigned to the respective client.
  49. 49. A method according to Claim 48, wherein the user permission setting is adjusted via the user interface.
  50. 50. A method according to Claim 49, wherein the first user entity and the second user entity are identical.
  51. 51. A method according to any of Claims 41 to 50, wherein the user permission comprises a privacy flag to determine whether private information relating to the user can be send to the client entity.
  52. 52. A method according to any of Claims 37 to 51, wherein the processing resource is a processor.
  53. 53. A method according to any of Claims 37 to 52, wherein the processing resource is a cloud resource.
  54. 54. A computer-implemented method of enabling a user to view media content on a computing device, the method implemented by a processing resource, the method comprising: providing an access point to a media access portal on the computing device; receiving authentication details corresponding to a user profile associated with the user via the access point; using the authentication details to determine association between the user and a user profile; based on the determined association, enabling a user to view media content on the first computing device; receiving input providing or withholding consent for personal data associated with the user to be sent to a client associated with the media content.
  55. 55. A computer implemented method of enabling a client to view viewing or interaction data associated with content on a computing device, the method comprising: providing access to an account associated with the client on the computing device; retrieving data associated with content associated with the account from a storage resource; determining the presence of personal data associated with individuals who have viewed or interacted with the content; retrieving the personal data to determine inferences about the individuals who have viewed or interacted with the content.
  56. 56. A system configured to implement any one of the Claims 1 to 55.
GB2015907.5A 2020-10-07 2020-10-07 Computer-implemented method and system Withdrawn GB2600090A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB2015907.5A GB2600090A (en) 2020-10-07 2020-10-07 Computer-implemented method and system
GB2110375.9A GB2602178A (en) 2020-10-07 2021-07-19 Computer-implemented method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB2015907.5A GB2600090A (en) 2020-10-07 2020-10-07 Computer-implemented method and system

Publications (2)

Publication Number Publication Date
GB202015907D0 GB202015907D0 (en) 2020-11-18
GB2600090A true GB2600090A (en) 2022-04-27

Family

ID=73139055

Family Applications (2)

Application Number Title Priority Date Filing Date
GB2015907.5A Withdrawn GB2600090A (en) 2020-10-07 2020-10-07 Computer-implemented method and system
GB2110375.9A Pending GB2602178A (en) 2020-10-07 2021-07-19 Computer-implemented method and system

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB2110375.9A Pending GB2602178A (en) 2020-10-07 2021-07-19 Computer-implemented method and system

Country Status (1)

Country Link
GB (2) GB2600090A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1133908A2 (en) 2000-03-10 2001-09-19 Andrew John Garnett Spreading machines for spreading animal bedding material

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070088817A1 (en) * 2005-10-14 2007-04-19 Microsoft Corporation Shared video service
US20140282851A1 (en) * 2013-03-13 2014-09-18 Synacor Inc. Content and service aggregation, management and presentation system
US20180144153A1 (en) * 2016-11-21 2018-05-24 Adobe Systems Incorporated Providing user control of shared personal information

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9124651B2 (en) * 2010-03-30 2015-09-01 Microsoft Technology Licensing, Llc Controlling media consumption privacy settings
US20150249543A1 (en) * 2014-02-28 2015-09-03 United Video Properties, Inc. Systems and methods for connecting a plurality of users based on a common interest in an unpopular media asset

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070088817A1 (en) * 2005-10-14 2007-04-19 Microsoft Corporation Shared video service
US20140282851A1 (en) * 2013-03-13 2014-09-18 Synacor Inc. Content and service aggregation, management and presentation system
US20180144153A1 (en) * 2016-11-21 2018-05-24 Adobe Systems Incorporated Providing user control of shared personal information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1133908A2 (en) 2000-03-10 2001-09-19 Andrew John Garnett Spreading machines for spreading animal bedding material

Also Published As

Publication number Publication date
GB202110375D0 (en) 2021-09-01
GB202015907D0 (en) 2020-11-18
GB2602178A (en) 2022-06-22

Similar Documents

Publication Publication Date Title
US11790117B2 (en) Systems and methods for enforcing privacy-respectful, trusted communications
US11797698B2 (en) Decentralized consent network for decoupling the storage of personally identifiable user data from user profiling data
US9087216B2 (en) Dynamic de-identification and anonymity
US9087215B2 (en) Dynamic de-identification and anonymity
US8442910B2 (en) Systems and methods for using verified information cards in a communications network
US20140287723A1 (en) Mobile Applications For Dynamic De-Identification And Anonymity
US20130332987A1 (en) Data collection and analysis systems and methods
US20120246065A1 (en) Techniques for offering context to service providers utilizing incentives
US20110119361A1 (en) System and method for managing redacted electronic documents using callback triggers
US8812372B2 (en) Method of anonymising an interaction between devices
WO2008122825A1 (en) Content delivery system and method of delivering content
US20180005276A1 (en) User controlled profiles
Travizano et al. Wibson: A case study of a decentralized, privacy-preserving data marketplace
US10931650B1 (en) Apparatus and method for building, extending and managing interactions between digital identities and digital identity applications
US20110246213A1 (en) Techniques for offering context to service providers utilizing an approval service and incentives utlizing online secure profile storage
EP1692837B1 (en) Method and system for user modelling
US20110247030A1 (en) Incentives based techniques for offering context to service providers utilizing syncronizing profile stores
US20110246283A1 (en) Approval service based techniques for offering context to service providers utilizing incentives
US20140359784A1 (en) Method of Anonymising an Interaction Between Devices
GB2600090A (en) Computer-implemented method and system
US20230078396A1 (en) System and method for the creation, management, and delivery of personal packets of information to be utilized as reverse cookies within network-based environments
Alekseenko Privacy, Data Protection, and Public Interest Considerations for Fintech
US20230368191A1 (en) Database representation of a public trust ledger
Puglisi Analysis, modelling and protection of online private data
Palme Digital content consumption on mobile devices

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)