System and Method for Streaming

The system addresses the lack of streaming platforms by embedding a streaming widget in websites using a unique stream key, enabling real-time streaming and connecting streamers with organizations for collaborative live streaming, thus improving sales and customer interaction.

JP2025518317APending Publication Date: 2025-06-12デッドマントレバー
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024571153
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-05-30
Filing Date
2023-05-30
Publication Date
2025-06-12

AI Technical Summary

Technical Problem

Current streaming platforms lack the capability to convert websites into streaming delivery platforms, and there is no known platform for connecting streamers with organizations for live streaming on the organization's website, posing challenges in increasing sales, improving website stickiness, and enhancing customer interaction.

Method used

A system that includes a processor, memory, and a streaming widget embedded in a web page, which communicates electronically with a streaming application via an API using a unique stream key, enabling real-time or near real-time streaming data processing and display.

Benefits of technology

Enables website owners to convert their sites into streaming platforms, facilitating live streaming and improving customer interaction, while allowing streamers to connect with organizations for collaborative streaming efforts, thereby enhancing sales and website engagement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025518317000001_ABST
    Figure 2025518317000001_ABST
Patent Text Reader

Abstract

Devices and methods for providing streaming data via a web page are disclosed herein. The device includes a processor, a memory, and at least one user input device. Computer-executable instructions are stored in the memory. The computer instructions can be executed by the processor to display a web page and a widget embedded in the web page via a display. The widget includes a streaming element for processing and displaying streaming data. The widget can be configured to communicate electronically with a streaming application that generated the streaming data via an application programming interface. The widget is associated with the streaming application by a unique stream key.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 346,962, filed May 30, 2022. The entire content of U.S. Provisional Patent Application No. 63 / 346,962 is hereby incorporated by reference for all purposes.

[0002] This disclosure relates to devices, systems, and methods related to the production and distribution of digital content streams, and more particularly to providing live video production, editing, distribution, and streaming over a computer network.

Background Art

[0003] The increasing availability and constant evolution of Internet technology have made it possible to distribute multimedia content to users using the Internet and the Internet protocol (IP). Anyone with access to the Internet can become a content provider by uploading digital audio or video to a streaming media service, and the uploaded content can be made available to thousands of users. The details of the operation of providing access to users for the uploaded content can be managed by a streaming media service platform.

[0004] A streaming system facilitates the distribution of digital content to users. The streaming system can store content on a storage medium that may be locally available or accessible via a storage area network connection, such as a magnetic hard drive. A user can browse the available content and may be able to request the transmission of desired digital content. The content can then be sent to the user's device using one of a number of possible transmission protocols. Commercial streaming platforms are often available to streaming media service providers as a "black box" in that the streaming media service provider cannot change the software and can only build solutions using the application programming interface (API) provided by the streaming media server platform.

[0005] Content providers must overcome several technical challenges for the streaming of content to multiple users, and more specifically, for the streaming of content to live visitors of a particular website. Specifically, there is no streaming platform that enables website owners to convert their websites into a streaming delivery platform to increase sales and / or improve website stickiness and / or customer interaction. Further, there is no known streaming platform for connecting a streamer to an organization for the purpose of streaming on the organization's website.

[0006] The spread of the use of a number of different video encoding and streaming standards, the implementation forms of these encoding and streaming standards by different vendors, which bring about a number of different variants of the encoded video bit stream, and the corresponding multiple different versions of streaming media players for receiving and displaying content on websites make the aforementioned tasks even more difficult. For example, a number of video encoder implementation forms and / or video player implementation forms cause extremely complex technical problems, such as making code changes to the streaming media platform. Furthermore, streaming media platform operators can be exposed to additional complexity by having to test the compatibility between the different variants of the streaming media formats generated by different encoders and streaming media players implemented on different websites.

Summary of the Invention

[0007] According to one embodiment, a device is disclosed that includes a processor and a memory, a display, at least one user input device, and computer-executable instructions stored in the memory that are executable by the processor to display a web page and widgets embedded in the web page via the display, where the widget includes a streaming element for processing streaming data, the widget is configured to communicate electronically with a streaming application that generates streaming data via an application programming interface, and there, the widget is associated with the streaming application by a unique stream key.

[0008] For example, a unique stream key is embedded in a streaming widget code block associated with a widget such that an application programming interface is configured to route streaming data generated by a streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key.

[0009] For example, a unique stream key is generated by one or more servers and embedded in a streaming widget code block associated with the widget by one or more servers prior to embedding the streaming widget code block into the source code of a web page.

[0010] For example, the streaming data is real-time or near real-time streaming data.

[0011] For example, an application programming interface is configured to format streaming data generated by a streaming application into a format suitable for display by a widget.

[0012] For example, an application programming interface is configured to format streaming data by changing the bit rate of the streaming data and / or transcoding from one protocol to another prior to sending the formatted streaming data to the widget.

[0013] For example, the streaming data includes video data and / or audio data.

[0014] For example, the widget further includes a chat element for processing chat data.

[0015] The device is a mobile device, a point-of-sale information management device, a personal computer, a laptop, a tablet, a handheld device, a wearable device, and / or a gaming device.

[0016] According to one embodiment, a method for providing streaming data is disclosed, including: providing a streaming application for generating streaming data; providing an application programming interface for processing the streaming data generated by the streaming application; providing a web page and a widget embedded in the web page via a device display, where the widget includes a streaming element for processing the streaming data and is configured to communicate electronically with the streaming application via the application programming interface, and where the widget is associated with the streaming application by a unique stream key.

[0017] For example, the method includes generating a unique stream key and embedding the unique stream key into a streaming widget code block associated with the widget prior to embedding the streaming widget code block into the source code of the web page.

[0018] For example, the method includes generating the streaming data by the streaming application and formatting the streaming data by the application programming interface into a format suitable for display by a widget embedded in the web page.

[0019] For example, the method includes formatting streaming data by an application programming interface by changing the bit rate of the streaming data and / or transcoding from one protocol to another prior to sending the formatted streaming data to a widget.

[0020] According to one embodiment, an apparatus for generating a streaming widget is disclosed that includes: a memory; a processor in communication with the memory and configured to issue a plurality of processing instructions stored in the memory, wherein the processor issues instructions for: obtaining widget customization parameters via a website hosted on a server; generating a streaming widget code block based on the obtained widget customization parameters, wherein a unique stream key is embedded in the streaming widget code block such that the widget can be identified by an application programming interface by using the unique stream key; and providing the streaming widget code block.

[0021] According to one embodiment, a method for generating a streaming widget code block is disclosed that includes: obtaining widget customization parameters from a user via a website hosted on a server; generating a streaming widget code block based on the obtained widget customization parameters, wherein a unique stream key is embedded in the streaming widget code block such that the widget can be identified by an application programming interface by using the unique stream key; and providing the streaming widget code block.

[0022] According to one embodiment, there is disclosed a system for connecting a streamer to an organization for the purpose of streaming on the organization's website, including a computer processor and a computer-readable storage device including computer code stored therein that, when executed by the computer processor, causes the computer processor to perform operations including: identifying a streamer for live streaming electronic content; identifying an organization that attempts to collaborate with the streamer for live streaming on the organization's website; and matching the streamer and the organization for collaboration based on one or more selection criteria.

[0023] For example, the operations further include providing a streaming application to the streamer to generate streaming data.

[0024] For example, the operations further include providing an application programming interface for processing the streaming data generated by the streaming application.

[0025] For example, the operations further include providing a widget to the organization for embedding in the organization's website, the widget including a streaming element for processing streaming data, the widget being configured to generate streaming data and communicate electronically with the streaming application via the application programming interface.

[0026] For example, the widget can be associated with the streaming application by a unique stream key.

[0027] For example, a unique stream key is embedded in the widget such that the application programming interface is configured to route streaming data generated by a streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key.

[0028] For example, the operation further includes generating a unique stream key and embedding the unique stream key in a streaming widget code block associated with the widget prior to embedding the streaming widget code block into the source code of the organization's website.

[0029] For example, the streaming data can be real-time or near real-time streaming data.

[0030] According to one embodiment, a method for connecting a streamer to an organization for the purpose of streaming on the organization's website is disclosed, including: identifying a streamer for live streaming electronic content; identifying an organization that attempts to collaborate with the streamer for live streaming on the organization's website; and matching the streamer and the organization for collaboration based on one or more selection criteria.

[0031] For example, the method further includes providing a streaming application to the streamer for generating streaming data.

[0032] For example, the method further includes providing an application programming interface for processing streaming data generated by the streaming application.

[0033] For example, the method further includes providing the organization with a widget for embedding in the organization's website, the widget including a streaming element for processing streaming data, the widget being configured to generate streaming data and communicate electronically with a streaming application via an application programming interface.

[0034] For example, the widget is associated with the streaming application by a unique stream key.

[0035] For example, a unique stream key is embedded in the widget such that the application programming interface is configured to route streaming data generated by the streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key.

[0036] For example, the method further includes generating a unique stream key and embedding the unique stream key in a streaming widget code block associated with the widget prior to embedding the streaming widget code block in the source code of the organization's website.

[0037] For example, the streaming data is real-time or near real-time streaming data.

Brief Description of the Drawings

[0038]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Best Mode for Carrying Out the Invention

[0039] The present subject matter relates to improvements in video streaming technology.

[0040] Referring to FIG. 1, an exemplary embodiment of a system 101 for improved video production, editing, broadcasting, distribution, and live streaming is disclosed. A user of the system described herein may be connected to a network, such as the Internet or other wired and / or wireless communication networks, local-area network (LAN), wide-area network (WAN), cellular network, etc. In this exemplary embodiment, the system enables a streamer 103 to create and broadcast a live stream that can be embedded in other digital content streams via the network through the use of one or more interconnected communicating servers. For example, the streamer 103 may be able to edit and control the distribution of a live stream via the network to multiple viewers on multiple platforms.

[0041] As described in this disclosure, the system 101 enables a client (e.g., a streamer, website owner, etc.) to register and pay via an online service and / or platform (e.g., a website, application, etc.), and to receive a stream key and a code fragment of a widget that they can embed in their website. The stream key enables the client to live stream from a streaming application 111 (e.g., Streamlabs, OBS) to a website 113 having a streaming widget embedded in its source code. A unique stream key and a streaming widget code block (i.e., code fragment) are generated by one or more servers of the system for each client. The unique stream key is embedded in the streaming widget code block associated with a particular client widget by the servers of the system prior to the embedding of the streaming widget code block into the source code of the client's web page. Multiple stream keys and code blocks can be generated depending on the client requests and the web infrastructure.

[0042] As described above, the unique stream key is embedded in the streaming widget code block associated with the widget. The widget uses the unique stream key to be identified by an application programming interface (API) such that the API is configured to route a live stream generated by a particular streamer to a particular widget selected and / or identified by the streamer. Advantageously, using this system, the streamer has the ability to choose which widget to stream to, i.e., the ability to connect to the selection of a particular website to stream to.

[0043] A streaming widget code block is embedded in the source code of a web page. After the web page is provided by an Internet browser 117, a widget 115 is added to a website 113. Note that a web page is a single document on the web that uses a unique URL, while a website is a collection of multiple web pages in which information on related topics or other subjects is linked together under the same domain address.

[0044] The widget 115 can be an element of a graphical user interface (GUI) that displays data (such as stream data, video, audio, graphic elements, polls, etc.) and / or provides a specific way for a user to interact with a system or application. For example, the widget 115 can be a floating tab. For example, the widget 115 can be visible to an Internet user visiting a website 113 linked to a web page. For example, the widget enables video streaming and integrated chat. An Internet user can click on the widget 115 to view a live stream generated by a streamer 103 and / or chat with the streamer 103.

[0045] Referring back to FIG. 1, the system includes a streaming application 111. The streaming application 111 can be executed on a computer system such as a desktop computer, a tablet, a mobile phone, a personal computer, a laptop, a tablet, a handheld device, a wearable device, a gaming device, etc. The computer system may include an input device (e.g., a microphone, a camera, a capture card, a keyboard, etc.). Live stream data can be generated by the input device. For example: a microphone can capture audio from a streamer and generate audio data therefrom, a camera can capture an image and / or video of the streamer and generate video data therefrom, and a keyboard can capture chat data from the streamer. The streaming data generated by the input device is captured and / or stored by the streaming application 111.

[0046] Streaming application 111 can be operated by a streamer 103 to start and / or control a live stream (including streaming data) delivered to a streaming widget 115. The streaming application 111 delivers a live stream to the streaming widget 115 via an application programming interface (API) 119. In one embodiment, the streaming application 111 may be a web editor including a graphical user interface (GUI) on the streamer's computer system, and may be configured as a website using HTTP or other similar protocols with which a user interacts to operate a live stream such as a video production project. Each video production project can enable the streamer to operate, start, and / or control any of a number of live streams. The system may include one or more servers that store, receive, and / or host the streamer's live stream including various streaming data.

[0047] Using the streaming application 111, the streamer can perform several functions and operations related to streaming. The streaming application 111 can provide a visual graphical user interface work area and control panel for the assembly, operation, and production of live stream broadcasts, including but not limited to video broadcast project management, starting a stream, stopping a stream, adding and / or removing digital content streams, digital content assets, users, switching broadcast scenes, applying filters, etc. The operation of the live stream can further include, but is not limited to, video and image asset layering, volume control, on-screen text, graphic animation, etc.

[0048] The user can perform these functions and operations via a streaming application, and Application 111 can translate these functions and operations into digital content stream selection, general application / user settings, and user qualification information-related data, all of which are periodically recorded and retrieved from a database stored in the system's server. Further, Streaming Application 111 can be a recipient of network traffic and can function as a preview service for digital assets stored in a live stream and / or the system's cloud storage.

[0049] Referring back to FIG. 1, the system further includes an Application Programming Interface (API) 119. The Application Programming Interface 119 is in electronic communication with the Streaming Application 111 and the Streaming Widget 115. The Application Programming Interface 119 can operate as an ingestion and encoding system responsible for processing and formatting one or more streams from the Streaming Application 111. For example, the Application Programming Interface 119 can change the bitrate of a stream and / or transcode from one protocol such as RTMP to another protocol such as DASH, RTP, WebRTC, or other such streaming protocols known to those skilled in the art. For example, DASH (i.e., Dynamic Adaptive Streaming over HTTP), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high-quality streaming of media content over the Internet.

[0050] In one embodiment, the system can broadcast a plurality of streams initiated by a user that are processed via a streaming application to create a composite stream that can then be broadcast to a plurality of third-party platforms (e.g., devices, etc.) via an application programming interface. For example, each of the third-party platforms can receive the stream from the application programming interface as a clone stream that has been transcoded to the respective required format and / or protocol by the application programming interface. A unique stream key can be embedded in a streaming widget code block associated with a widget of the third-party platform. The widget can be identified by the application programming interface by using the unique stream key such that the application programming interface is configured to route the streaming data generated by the streaming application to the widget. The broadcast of a live stream to one or a plurality of third-party streaming platforms can also be accomplished via a user login system on a web application through an authorized user. The user qualification information can be stored in a database on the server.

[0051] Referring back to FIG. 1, Internet browser 117 is shown. An Internet browser is application software for accessing the World Wide Web or a local website. For example, when a user requests a web page from a particular website, the web browser obtains the required content from the web server and then displays the page on the user's device. The browser can be used on devices such as desktops, laptops, tablets, and smartphones.

[0052] The Internet browser 117 can display the website 113 using HTTP or other similar protocols. A web page is a hypertext document on an information space such as the World Wide Web (WWW) where documents and other web resources can be accessed via the Internet using a browser. The website 113 can be delivered to the user 105 by a web server and displayed on the web browser 117. The website 113 can be composed of a number of web pages linked together under a common domain name.

[0053] As described above, the streaming widget code block can be embedded in the source code of the web page of the website 113. After such embedding, after the web page is provided by the Internet browser 117, the widget 115 is added to the website 113. A widget is an element of a graphical user interface (GUI) that provides a specific way for a user to interact with the operating system or application implemented on a device by displaying information.

[0054] The widget can communicate electronically with the streaming application via an application programming interface. The streaming application can generate streaming data. The streaming data can be real-time or near real-time streaming data. The streaming data can include video data and / or audio data. The real-time or near real-time streaming data can be generated by the streaming application and processed by the application programming interface. The application programming interface can be configured to format the streaming data generated by the streaming application into a format suitable for display by the widget.

[0055] The widget can receive streaming data from a streaming application via an application programming interface. The widget can be associated with the streaming application by a unique stream key. The unique stream key can be embedded in a streaming widget code block associated with the widget. The widget can be identified by the application programming interface by using the unique stream key such that the application programming interface is configured to route streaming data generated by the streaming application to the widget.

[0056] The unique stream key can be generated by one or more servers. The unique stream key can be embedded in a streaming widget code block associated with the widget by one or more servers prior to embedding the streaming widget code block into the source code of a web page.

[0057] In one embodiment, the widget can include a streaming element for processing and / or displaying streaming data.

[0058] In another embodiment, the widget can also include a chat element for processing chat data. The chat element can enable a real-time text-based interactive discussion among multiple users of the system.

[0059] In yet another embodiment, the widget may include an audio / video chat element, a recording / playback element, at least one recording / playback element, an audio / video editing element, a document viewing / editing element, a diagram editing / viewing element, a whiteboard element, a voting element, a survey element, a user list element, a screen sharing element, or any combination thereof. For example, the audio / video chat element can enable real-time audio and video chat between users of the system via their respective devices. For example, each user can simultaneously view real-time video and audio feeds / streams broadcast from multiple users of the system. Further, the audio / video chat element can support a recording mode and can be used to record a user's audio and / or video input for use in various ways.

[0060] The document viewing element can enable a user to load and view text-based documents in various formats (e.g., Microsoft Office, PDF). The whiteboard element can enable a user to draw diagrams individually (e.g., visible to only one user) or collaboratively (e.g., with other users in real-time (e.g., live) and non-real-time (e.g., non-live)). The voting element can enable a user to define and / or participate in question-based voting both in real-time and non-real-time. The survey element can enable a user to define and / or participate in a survey both in real-time and non-real-time. The user list element can enable a user of the system to view information about other users of the system and / or to interact with or claim interaction with other users of the system.

[0061] Referring to FIG. 1, a docker 121 for processing chat data from a user is shown. The docker communicates electronically with widget 115 and stream application 111. The docker includes a database for a real-time chat database (e.g., for MongoDB). Docker 121 can be executed on the same server as application programming interface 119, or the docker and the application programming interface can be executed on different servers. For example, in one embodiment, the chat docker is not expected to require much scaling, while the stream application programming interface may require very fast and much scaling because it can process a large amount of data depending on the amount of users.

[0062] Returning to FIG. 1 for reference, a dashboard 123 is shown. The dashboard provides an interface (e.g., a GUI) between the user and a system for managing streams. For example, the dashboard can include a website. For example, using the dashboard, a user can generate a stream key. To generate a stream key: the user logs in to the website, the user can create an account, and the user can obtain a stream package and pay for the package using electronic payment (such as a credit card). The key (e.g., the key required by the user for a streaming application / streaming lab, etc.) will then be provided to the user on the dashboard of the website, and the user will be able to copy and paste the key and start the stream. The user will also obtain a small piece of code (which is the widget code) that the user (or web developer) can insert into the source code of the user's website. Because of that piece of code, when the website is loaded in the browser, the widget will become visible to the user.

[0063] Referring to FIG. 2, an exemplary embodiment of the website 201 of the stream service provider is shown. Under the common tab 211, common services publicly available to all users are shown. The common services may include: the landing page 213 of the service and the streamer, the streaming of the organization (video stream and chat) 215, the registration of standard users 217, and the modification of user profiles 219. Under the service tab, a dashboard 221 of the services available to the client of the stream service provider when they log in to the website is shown. The client services may include: the management of the organization (super admin) 223, the management of users (super admin, admin) 225, the generation of widgets for the client website (admin) 227, and the streaming metadata for connection (admin) 229.

[0064] Referring to FIG. 3, an exemplary computer environment is shown in which example embodiments and aspects of the subject matter may be implemented. The computer device environment is merely one example of a suitable computer environment and is not intended to suggest any limitation as to the scope of use or functionality. A number of other general purpose or special purpose computer device environments or configurations may be used. Examples of well-known computer devices, environments, and / or configurations suitable for use include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, network personal computers (PCs), minicomputers, mainframe computers, embedded systems, distributed computer environments including any of the foregoing systems or devices, and the like.

[0065] Computer-executable instructions, such as program modules, executed by a computer may be used. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. A distributed computer environment may be used where tasks are performed by remote processing devices linked via a communications network or other data transmission medium. In a distributed computer environment, program modules and other data may be located in both local and remote computer storage media including memory storage devices.

[0066] Referring to FIG. 3, an exemplary system for implementing the aspects described herein includes a device, such as computer device 301. In its most basic configuration, computer device 301 typically includes at least one processing unit 309 and memory 303. Depending on the exact configuration and type of the computer device, memory 303 may include volatile memory (e.g., random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), flash memory, etc.), or some combination thereof.

[0067] Computer device 301 may have additional features / functionality. For example, computer device 301 may include additional storage (removable and / or non-removable), including but not limited to magnetic or optical disks or tapes. Such additional storage is shown in FIG. 3 by removable storage 311 and non-removable storage 313.

[0068] Computer device 301 may include various computer-readable media. Computer-readable media can be any available media that can be accessed by device 301 and includes both volatile and non-volatile media, removable and non-removable media.

[0069] A computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Memory 303, removable storage 311, and non-removable storage 313 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, electrically erasable program read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by computer device 600. Any such computer storage media may be part of computer device 600.

[0070] Computer device 301 may include a communication connection 319 that enables the device to communicate with other devices. Computer device 301 may also have input devices 317 such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output devices 315 such as a display, speaker, printer, etc. may also be included. All of these devices are well known in the art and need not be discussed in detail herein.

[0071] It should be understood that the various techniques described herein can be implemented in relation to hardware components or software components, or, where appropriate, a combination of both. Exemplary types of hardware components that can be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip systems (SOCs), complex programmable logic devices (CPLDs), and the like. The methods and apparatuses of the subject matter of this disclosure, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) implemented in a tangible medium, such as a floppy disk, a CD-ROM, a hard drive, or any other machine-readable storage medium, where the program code, when loaded and executed by a machine, such as a computer, causes the machine to become an apparatus for practicing the subject matter of this disclosure.

[0072] Referring to FIG. 4, a method 401 for generating a streaming widget code block is disclosed. At 403, the method includes obtaining widget customization parameters. For example, the parameters can be obtained from a website hosted on a server. For example, the parameters can be obtained from the dashboard described in FIG. 1 or 2. At 405, the method includes generating a streaming widget code block based on the obtained widget customization parameters. For example, a device or server can automatically generate the streaming widget code. When generated, a unique stream key is embedded in the streaming widget code block so that the widget can be identified by an application programming interface by using the unique stream key. Using the key, the application programming interface can be configured to route the streaming data generated by the streaming application to the widget.

[0073] At 407, the method includes providing the generated streaming widget code block. The generated streaming widget code block can be provided to the user via a website (e.g., the dashboard provided herein) or a server by email, text, or any other means of electronic communication.

[0074] An apparatus for generating a streaming widget is provided herein. The apparatus includes a memory and a processor configured to communicate with the memory and issue a plurality of processing instructions stored in the memory. The processor can obtain widget customization parameters from a user of a website hosted on a server via the website, generate a streaming widget code block based on the obtained widget customization parameters, and issue instructions for providing the streaming widget code block to a GUI of the device.

[0075] According to one embodiment, the present subject matter discloses a streaming system (i.e., a computer platform) for connecting a streamer to an organization for the purpose of being streamed on the organization's website. The system can provide the streamer and the organization with tools they need to effectively manage all of their streaming requirements. The system can support organizational relationships with all types of streamers and deliver the benefits resulting from connecting the streamer and the organization together in the cloud while supporting all aspects of streaming involvement and management via e-commerce.

[0076] For example, the system features are designed to facilitate connecting the streamer and the organization to enable the following: easy reach and engagement with streamers and organizations that may want to do business with each other, the organization to do business with a streamer by enabling the organization to search for, compare, engage with, and collaborate with streamers registered within the system, the streamer to search for organizations to do business with by enabling the streamer to search for, compare, engage with, and collaborate with organizations registered within the system, and the streamer and the organization to engage in and conduct e-commerce with each other.

[0077] The system can provide the capabilities of a platform portal or an e-commerce marketplace, including a central "commercial hub", where: streamers and / or organizations can register and maintain their profiles, catalogs, and service information; streamers can view registered organizations and invite and / or collaborate with them to join their private marketplaces; organizations can invite and / or collaborate with registered streamers to join their private marketplaces; streamers can be made easily accessible to organizations; organizations can be made easily accessible to streamers; and streamers and / or organizations can automate the exchange of electronic orders and invoice documents.

[0078] A computer system is provided herein for connecting a streamer to an organization for the purpose of streaming on the organization's website. The system includes a computer processor and a computer-readable memory device, as previously disclosed in the present disclosure. The computer-readable memory device includes computer code stored therein that, when executed by the computer processor, causes the computer processor to perform operations including: identifying a streamer for live streaming of electronic content; identifying an organization that attempts to collaborate with the streamer for live streaming on the organization's website; and matching the streamer and the organization for collaboration based on one or more selection criteria. The selection criteria may include: streamer popularity, streamer engagement with a particular online audience / online community, streamer growth, price, reputation of the streamer and / or organization, streamer suitability for a particular online campaign, recommendations by others, and existing relationships.

[0079] The operations may include: providing a streaming application to a streamer to generate streaming data, providing an application programming interface for processing the streaming data generated by the streaming application, providing a widget to an organization for embedding in the organization's website, the widget including a streaming element for processing the streaming data, the widget being configured to generate the streaming data and communicate electronically with the streaming application via the application programming interface.

[0080] The widget may be associated with the streaming application by a unique stream key. For example, a unique stream key is embedded in the widget such that the application programming interface is configured to route the streaming data generated by the streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key.

[0081] The operations may further include generating a unique stream key and embedding the unique stream key in a streaming widget code block associated with the widget prior to embedding the streaming widget code block into the source code of the organization's website. For example, the streaming data may be real-time or near real-time streaming data.

[0082] Referring to FIG. 5, a method 501 for connecting a streamer to an organization for the purpose of being streamed on the organization's website is shown. At 503, the method includes identifying a streamer for live streaming electronic content. At 505, the method includes identifying an organization that attempts to collaborate with the streamer for live streaming on the organization's website. At 507, the method includes matching the streamer and the organization for collaboration based on one or more selection criteria. The selection criteria may include: the popularity of the streamer, the streamer's engagement with a specific online viewer / online community, the growth of the streamer, the price, the reputation of the streamer and / or the organization, the suitability of the streamer for a specific online campaign, recommendations by others, and existing relationships.

[0083] The method may further include providing a streaming application to the streamer for generating streaming data, and / or providing an application programming interface for processing the streaming data generated by the streaming application.

[0084] The method may further include providing a widget to the organization for embedding on the organization's website, the widget including a streaming element for processing streaming data, the widget being configured to generate streaming data and communicate electronically with the streaming application via the application programming interface.

[0085] For example, a widget is associated with a streaming application by a unique stream key. For example, a unique stream key is embedded in the widget such that an application programming interface is configured to route streaming data generated by the streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key.

[0086] The method may further include generating a unique stream key and embedding the unique stream key in a streaming widget code block associated with the widget prior to embedding the streaming widget code block in the source code of the organization's website. For example, the streaming data is real-time or near real-time streaming data.

[0087] The drawings and the foregoing give examples of embodiments. It will be understood by those skilled in the art that one or more of the elements described may be combined well into a single functional element. Alternatively, certain elements may be divided into a plurality of functional elements. Elements from one embodiment may be added to another embodiment. For example, the order of the processes described herein may be changed and is not limited to the manner described herein. Further, any of the actions of the flow diagrams need not be implemented in the order shown, and not all acts need necessarily be performed. Also, those acts that are not dependent on other acts may be performed in parallel with other acts. The scope of the embodiments is in no way limited by these specific examples.

Claims

**Claim 1** A device comprising a processor, a memory, a display, at least one user input device, computer-executable instructions stored in the memory, executable by the processor to display a web page and a widget embedded in the web page via the display wherein the widget includes a streaming element for processing streaming data, the widget is configured to communicate electronically with a streaming application that generates the streaming data via an application programming interface, and the widget is associated with the streaming application by a unique stream key. **Claim 2** The device according to claim 1, wherein the unique stream key is embedded in a streaming widget code block associated with the widget such that the application programming interface is configured to route the streaming data generated by the streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key. **Claim 3** The device according to claim 2, wherein the unique stream key is generated by one or more servers and is embedded in the streaming widget code block associated with the widget by the one or more servers prior to embedding of the streaming widget code block into the source code of the web page. **Claim 4** The device according to claim 3, wherein the streaming data is real-time or near real-time streaming data. **Claim 5** The device according to claim 4, wherein the real-time or quasi-real-time streaming data is generated by the streaming application, processed by the application programming interface, and the application programming interface is configured to format the streaming data generated by the streaming application into a format suitable for display by the widget.

6. The device according to claim 5, wherein the application programming interface is configured to format the streaming data by changing the bit rate of the streaming data and / or performing a codec change from one protocol to another prior to transmitting the formatted streaming data to the widget.

7. The device according to claim 1, wherein the streaming data includes video data and / or audio data.

8. The device according to claim 1, wherein the widget further includes a chat element for processing chat data.

9. The device according to claim 1, wherein the device is a mobile device, a point-of-sale information management device, a personal computer, a laptop, a tablet, a handheld device, a wearable device, and / or a gaming device.

10. A method for providing streaming data, comprising: providing a streaming application for generating streaming data; providing an application programming interface for processing the streaming data generated by the streaming application; To provide a web page and a widget embedded in the web page via a device display, the widget includes a streaming element for processing streaming data, the widget is configured to communicate electronically with the streaming application via the application programming interface, and the widget is associated with the streaming application by a unique stream key, and the providing A method including. **Claim 11** The method according to claim 10, wherein the unique stream key is embedded in the widget such that the application programming interface is configured to route the streaming data generated by the streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key. **Claim 12** Generating the unique stream key; Embedding the unique stream key in a streaming widget code block associated with the widget prior to embedding the streaming widget code block into the source code of the web page The method according to claim 10, including. **Claim 13** The method according to claim 10, wherein the streaming data is real-time or near-real-time streaming data. **Claim 14** Generating the streaming data by the streaming application; Formatting, by the application programming interface, the streaming data into a format suitable for display by the widget embedded in the web page The method according to claim 13, including. **Claim 15** Formatting the streaming data by the application programming interface by changing the bit rate of the streaming data and / or performing a codec change from one protocol to another prior to sending the formatted streaming data to the widget The method according to claim 14, further comprising **Claim 16** The method according to claim 10, wherein the streaming data includes video data and / or audio data **Claim 17** The method according to claim 10, wherein the widget further includes a chat element for processing chat data **Claim 18** The method according to claim 10, wherein the device includes a mobile device, a point-of-sale information management device, a personal computer, a laptop, a tablet, a handheld device, a wearable device, and / or a gaming device **Claim 19** An apparatus for generating a streaming widget code block, comprising a memory a processor configured to communicate with the memory and issue a plurality of processing instructions stored in the memory, the processor being acquiring widget customization parameters via a website hosted on a server generating a streaming widget code block based on the acquired widget customization parameters, the generating including embedding a unique stream key in the streaming widget code block such that the widget can be identified by an application programming interface by using the unique stream key, and providing the generated streaming widget code block the processor issuing instructions to perform An apparatus comprising **Claim 20** A method for generating a streaming widget code block, comprising acquiring widget customization parameters via a website hosted on a server Generating a streaming widget code block based on the obtained widget customization parameters, wherein the unique stream key is embedded in the streaming widget code block so that the widget can be identified by an application programming interface by using the unique stream key, the generating Providing the generated streaming widget code block The method including the above

21. A system for connecting a streamer to an organization for the purpose of streaming on the organization's website, comprising A computer processor, and A computer-readable storage device including computer code stored therein, which when executed by the computer processor causes the computer processor to Identify a streamer for live streaming electronic content, Identify an organization that attempts to collaborate with the streamer for live streaming on the organization's website, and Match the streamer and the organization for collaboration based on one or more selection criteria The computer-readable storage device that causes the above operations to be performed by the computer processor The system comprising the above

22. The system according to claim 21, wherein the operation further includes providing a streaming application to the streamer for generating streaming data

23. The system according to claim 22, wherein the operation further includes providing an application programming interface for processing the streaming data generated by the streaming application

24. The system according to claim 23, wherein the operation further includes providing a widget to the organization for embedding in the organization's website, the widget including a streaming element for processing streaming data, and the widget being configured to communicate electronically with a streaming application that generates the streaming data via an application programming interface

25. The system according to claim 24, wherein the widget is associated with the streaming application by a unique stream key.

26. The system according to claim 25, wherein the unique stream key is embedded in the widget such that the application programming interface is configured to route the streaming data generated by the streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key.

27. The system according to claim 21, wherein the operation further includes generating a unique stream key and embedding the unique stream key in a streaming widget code block associated with the widget prior to embedding the streaming widget code block into the source code of the organization's website.

28. The system according to claim 26, wherein the streaming data is real-time or near real-time streaming data.

29. A method for connecting a streamer to an organization for the purpose of streaming on the organization's website, the method comprising: identifying a streamer for live streaming electronic content; identifying an organization that intends to collaborate with the streamer for live streaming on the organization's website; matching the streamer and the organization for collaboration based on one or more selection criteria and.

30. The method according to claim 29, further comprising providing a streaming application to the streamer for generating streaming data.

31. The method according to claim 30, further comprising providing an application programming interface for processing the streaming data generated by the streaming application.

32. Further comprising providing the widget to the organization for embedding in the organization's website, the widget including a streaming element for processing streaming data, the widget being configured to communicate electronically with a streaming application that generates the streaming data via an application programming interface, the method of claim 29.

33. The method of claim 32, wherein the widget is associated with the streaming application by a unique stream key.

34. The unique stream key is embedded in the widget such that the application programming interface is configured to route the streaming data generated by the streaming application to the widget, and the widget is identified by the application programming interface by using the unique stream key, the method of claim 33.

35. The method of claim 34, wherein the operation further comprises generating the unique stream key and embedding the unique stream key in the streaming widget code block associated with the widget prior to embedding the streaming widget code block in the source code of the organization's website.

36. The method of claim 35, wherein the streaming data is real-time or near real-time streaming data.