`a2) Patent Application Publication (10) Pub. No.: US 2004/0078812 Al
`(43) Pub. Date: Apr. 22, 2004
`
`Calvert
`
`US 20040078812A1
`
`(54) METHOD AND APPARATUS FOR
`ACQUIRING MEDIA SERVICES AVAILABLE
`FROM CONTENT AGGREGATORS
`
`(76)
`
`Inventor: Kerry Wayne Calvert, Indianapolis, IN
`(US)
`
`Correspondence Address:
`Joseph S Tripoli
`Thomson Multimedia Licensing Inc
`PO Box 5312
`Princeton, NJ 08543-5312 (US)
`
`(21) Appl. No.:
`
`10/250,640
`
`(22) PCT Filed:
`
`Jan. 4, 2002
`
`(86) PCT No.:
`
`PCT/US02/00008
`
`(30)
`
`Foreign Application Priority Data
`
`Jan. 4, 2001
`
`(US) eee sesesestseseseneeneees 60259713
`
`Publication Classification
`
`(51) Unt. CI? cccccccsecsssesseene HO4N 5/445; GOOF 3/00;
`HO4N 7/10; HO4N 7/025;
`HO4H 9/00; HO4N 7/16; GO6F 15/173;
`HO4N 7/173; GO6F 13/00
`ceeccsscseee 725/46; 725/9; 725/14; 709/224;
`725/37; 725/113; 725/35
`
`(52) U.S. Che
`
`(57)
`
`ABSTRACT
`
`A method for generating a unified list of media services
`available from a plurality of content aggregators having
`different data formats. A first list of media services from a
`
`first content aggregator is transmitted to a playback device.
`A second list of media services from a second content
`aggregator is also transmitted to the playback device, which
`combinesbothlists into a unified list of media services. The
`method optionally details the playback of a media service
`from said plurality of content aggregators via a selection
`made on the unified list to a playback device.
`
`CREATING A UNIFIED LIST OF GENRES AND SUB-GENRES FOR DISPLAY
`
`CONTENT AGGREGATORSITE (102) WITH MEDIA SERVICE LIST
`RESPONDING10 THE GET REQUEST
`
`HTTP PROCESSOR (404) COLLECTING RESPONSE FROM THE CONTENT
`AGGREGATOR(102) AND FORWARDING INFORMATION TO CONTENT ADAPTER
`
`CONTENT ADAPTER(406) RECEIVING LIST OF MEDIA SERVICES AND
`INVOKING TRANSFORMATION FOR CREATING THE COMMON DATA
`STRUCTURE CONTAINING GENRES AND SUB-GENRES OF MEDIA SERVICES
`FROM CONTENT AGGREGATOR (102)
`
`APPLE 1045
`
`APPLE 1045
`
`1
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 1 of 10
`
`US 2004/0078812 Al
`
`Sean
`
`=r <r
`
`oS=
`
`1 Ml
`
`110
`
`FG.1
`
`_—
`
` ==—
`
`2
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 2 of 10
`
`US 2004/0078812 Al
`
`104
`
`
`PLAYBACKDEVICE
`202
`
`SET TOP BOX
`204
`
`
` STEREO
`
`
`
`
`
`
`RECEIVER Oe NETWORK
`ow||®||20
`
`DATA
`
`QUTPUT
`
`DEVICE 212
`
`
`
`DISPLAY
`DEVICE
`222
`
`3
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 3 of 10
`
`US 2004/0078812 Al
`
`REQUESTING PARAMETERS FROM
`CONTENT AGGREGATORVIA
`IRadio_Set_Service CALL
`
`STORING PARAMETERS FROM
`CONTENT AGGREGATOR
`
`FORMATTING CONTENTLIST FROM
`CONTENT AGGREGATORVIA
`lradio.List_Content CALL
`
`CONTENTLIST VIA STREAM CALL
`
`REQUESTING MEDIA SERVICE FROM
`CONTENT AGGREGATORDISPLAYED ON
`
`4
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 4 of 10
`
`US 2004/0078812 Al
`
`CONTENT LIST
`
`
`
`
`
`CONTENT
`HTTP
`
`eeAP
`PROCESSOR
`ADAPTER
`CALL
`
`
`
`
`
`
`rm
`45
`we
`ao
`
`
`
`
`
` XML PARSER
`CONTENT DATA
`
`
`408
`40
` Radio API
`
`42
`
`HG. 4
`
`5
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 5 of 10
`
`US 2004/0078812 Al
`
`
`
`
`
`BRASS
`
`SUNCOAST SOUND
`TRIOS
`
`
`
`
`
`COUNTRY
`
`GARTH BROOKS
`CHANNEL
`
`HARDCORE
`
`
`
`ACID JAZZ
`
`ROCK AND ROLL
`
`ROCK AND ROLL
`
`DISCO
`
`
`
`OYNTH
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`COUNTRY
`
`GARTH BROOKS
`CHANNEL
`
`ACID JAZZ
`
`BRASS
`
`SUNCOAST SOUND
`
`TRIOS
`
`HARDCORE
`
`ROCK AND ROLL
`
`DISCO
`
`SYNTH- FIG. 9
`
`6
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 6 of 10
`
`US 2004/0078812 Al
`
`STREAM
`
`REQUESTCALL
`a
`
`meAP
`we
`
`HTTP
`
`PROCESSOR
`ane
`
`42
`
`PLAYBACK
`APPLICATION
`608
`
`CONTENT
`ADAPTER
`406
`
`[Radio API
`
`BUFFER
`604
`
`FIG. 6
`
`7
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 7 of 10
`
`US 2004/0078812 Al
`
`EXECUTING ANIradio_SetService CALL ANDlradio_Content_List
`CALL FOR A FIRST HITP PROCESSOR(404)
`
`EXECUTING AN Iradio_Set_Service CALL AND Iradio_Content_List
`CALL FOR A SECOND HTTP PROCESSOR(404)
`
`702
`
`704
`
`HTTP PROCESSOR(404) PERFORMING A GET REQUEST
`
`706
`
`708
`
`
`
`CONTENT AGGREGATORSITE (102) WITH MEDIA SERVICELIST
`RESPONDING TO THE GET REQUEST
`
`
`HTTP PROCESSOR(404) COLLECTING RESPONSE FROM THE CONTENT
`AGGREGATOR (102) AND FORWARDING INFORMATION TO CONTENT ADAPTER
`
`
`
`
`CONTENT ADAPTER (406) RECEIVING LIST OF MEDIA SERVICES AND
`INVOKING TRANSFORMATION FOR CREATING THE COMMON DATA
`
`STRUCTURE CONTAINING GENRES AND SUB-GENRES OF MEDIA SERVICES
`FROM CONTENT AGGREGATOR(102)
`
`10
`
`"
`
`CREATING A UNIFIED LIST OF GENRES AND SUB-GENRES FOR DISPLAY
`
`74
`
`FIG. 7
`
`8
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 8 of 10
`
`US 2004/0078812 Al
`
`TELEVISION
`208
`
`204
`
`PF
`HARDWARE SERVICES
`802
`
`
`
`STREAM API
`804
`
`CONTENT DIRECTORY
`810
`
`AV TRANSPORT
`82
`
`OTHER
`SERVICES
`808
`
`
`
`
`820 FIG. 8
`
`
`
`
`
`_[;———POINT
`
`
`
`
`ANTENNA
`822
`
`wnowase|[avTRnseon
`=
`SERVICES
`814
`816
`
`9
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 9 of 10
`
`US 2004/0078812 Al
`
`900
`
`<xmlversion ="1.0°%
`<!--MEDIAMATCH_CONTENT_LIST—>
`<!DOCTYPElist
`<ELEMENT mediaservice (location, media_title, player_app, performer, genre, copyright}>
`<ELEMENTlocation (#PCDATA)>
`<ELEMENT media_title (#PCDATA)>
`<!ELEMENTplayer_app (#PCDATA)>
`<ELEMENTperformer (#PCDATA)>
`<!ELEMENT genre (#PCDATA)>
`<!ELEMENT copyright (@PCDATA}>
`
`</mediaservice> FIG. 9
`
`<mediaservice>
`<location>http://www.musictesters.com/buggy/travoltaswingMP3</location>
`<media_title>TravoltaSwing</media_title>
`<player_app>MP3</player_app>
`<perlormer>Travolta_John</performer>
`<genre>Bluegrass</genre>
`<copyright>1989</copyright>
`</mediaservice>
`
`emediaservice>
`<location>121.12.113.331</location>
`<media_title>The_Big_Sleep</media_title>
`<player_app>MPEG_4</player_app>
`<performer>Bogart_Humphrey</performer>
`<genre>Mystery</genre>
`<copyright>1946</copyright>
`
`</mediaservice>
`
`<mediaservice>
`<location>111.345.44.332</location>
`<media_title>Steve_Dahl</media_title
`<player_app>RealAudio</player_app>
`<pertormer>Dahi_Steve</pertormer>
`<genre>Talk_SHow</genre>
`<copyright>2001</copyright>
`
`10
`
`10
`
`
`
`Patent Application Publication Apr. 22,2004 Sheet 10 of 10
`
`US 2004/0078812 Al
`
`1000
`
`
`
`TITLE MEDIA FORMAT|LOCATIONPERFORMER
`
`
`
`
`
`
`
`www.musictesters.com/buggy/
`
`BLUEGRASS] TRAVOLTA SWING] JOHN TRAVOLTA|MUSIC SONG travollaswingMP3
`
`
`
`
`
`
`
`MYSTERY |THEBIG SLEEP|HUMPHREY BOGART|MOVIE 121.12.133.331
`
`TALK SHOW STEVEDAHL|STEVE DAHL DO $11.345,44.332
`
`
`
`TALK SHOW
`
`TITLE
`
`PERFORMER
`
`GENRE
`
`TRAVOLTA SWING
`
`JOHN TRAVOLTA
`
`BLUEGRASS
`
`THEBIG SLEEP
`
`HUMPHREY BOGART
`
`MYSTERY
`
`STEVE DAHL
`
`STEVE DAHL
`
`FIG. 11
`
`11
`
`11
`
`
`
`US 2004/0078812 Al
`
`Apr. 22, 2004
`
`METHOD AND APPARATUS FOR ACQUIRING
`MEDIA SERVICES AVAILABLE FROM CONTENT
`AGGREGATORS
`
`[0001] This invention is related to the field of indexing,
`acquiring, and playing media services, particularly media
`services in the form of streaming media available from a
`plurality of content aggregators.
`
`[0002] Listening to radio broadcast programming, such as
`music, news, and talk shows, is a commonly enjoyed form
`of media entertainment
`that are typically sent as radio
`transmissions through the airwaves.
`
`available to a user are equally as expansive, as a user can
`select to hear a sub-genre of a music genre (e.g., a rock and
`roll station “music genre” that plays 1980’s new wave music
`“sub-genre”). The listener also can manipulate the songs
`(media objects) or content heard into a playlist, which is
`organized by the preferences of the listener. These broad-
`casts are accessed choosing a link (uniform resource indi-
`cator URD to a music file on a website or by using a media
`player that receives streaming feeds of media services.
`Within all of these customizable options,it is difficult for a
`user to find all of the media services available because the
`
`content on the Internet is chaotically organized.
`
`[0007] One development for organizing media services
`[0003] Radio transmissions have problems that arise due
`available through the Internet is the use of a tuning service
`to the inherent physical limitations of using radio waves. For
`or a media subscription servic . These type of services
`example, radio waves lose power the further they are from
`(alternatively known as content aggregators),
`such as
`their broadcast source, whereby it becomes difficult for a
`MUSICMATCH™, LIVE365™, and STREAMWAVES™
`receiver to reliably receive and demodulate a broadcast from
`bring together a plurality of media services to a common
`a long distance. This limitation makesit difficult for listeners
`pointor interface (e.g., a website, a streaming media player
`to receive their favorite stations if outside of a geographic
`with channels) with an architecture where a user selects
`region (e.g., a person wholives in Boston typically can not
`media services from categories including genre and per-
`receive a radio broadcast from Los Angeles). Additionally,
`former. A tuning service is typically proprietary to protect
`the frequencies of radio broadcasts have to be tightly con-
`the copyrighted material comprising media services and
`trolled because the airwaves can only accommodateafinite
`requires an interface to successfully use the tuning service to
`number of electronic-magnetic waves before interference
`results.
`playback an available media service. The restrictions of
`using a proprietary tuning service typically limits a user
`from activating media services available from different
`content aggregators, without switching to an additional
`device.
`
`Thelimitations of broadcasting via radio wavesare
`[0004]
`overcomebyusing alternative broadcasting techniques. One
`approach transmits radio station broadcasts assatellite trans-
`missionsthat are received througha satellite dish coupled to
`an audio decoder. Satellite broadcasts have a further geo-
`graphic range than radio wave based transmissions. Also,
`satellite transmissions can accommodate moreradio stations
`broadcasts than broadcasted as radio waves, by using tech-
`niques as multiplexing and data compression increasing the
`bandwidth efficiency of a transmission. Satellite broadcasts
`are limited in programming choices available, because the
`radio stations are selected by satellite broadcasters and
`broadcasting via satellite is cost prohibitive, which may
`underrepresent
`the broadcasting choices available from
`small media markets.
`
`[0005] The amount of programming choices available to a
`listener (or viewer) has increased since the development of
`radio and video transmissions through a communications
`network such as the Internet. Radio and video services
`(referred to as media services) that were otherwise limited
`by geographic bandwidth or other constraints are broad-
`casted around the world via the Internet. Any user who
`possesses a connection to the Internet and an Internet
`enabled device (computer, cellular phone, MP3 music
`player, Internet appliance, satellite receiver) can receive a
`media service broadcasted in the form of streaming media.
`The media service is encoded and compressed, typically by
`a computer, into packets that conform to a transport proto-
`col, such as TCP/IP. The packets are routed to a listener’s
`device through the Internet, in that software on the listener’s
`decoding device (e.g., a computer with a media player as
`REALPLAYER™, MACROMEDIA PLAYER™,
`and
`MP3PRO™) decompresses and decodes the-packets into an
`audio/video signal for playback on an output device (com-
`puter, receiver, stereo, television set).
`
`[0006] The Internet provides a listener with the ability to
`access thousands of media services. The music genres
`
`12
`
`In accordance with the principles of the present
`[0008]
`invention, a method and apparatusare disclosed that enable
`the indexing and acquisition of media services from a
`plurality of content aggregators. A listing of media services
`is generated by the indexing of available media services
`from the plurality of content aggregators. The method and
`apparatus also describe the retrieval and output of a selected
`media service available from the plurality of content aggre-
`gators to a playback device.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0009] FIG. 1 is a diagram of audio and video based
`media services that are aggregated by a content aggregator.
`
`[0010] FIG. 2 is a diagram of an Internet connection
`between devices using the invention and a plurality of
`content aggregators.
`
`[0011] FIG. 3 is a flowchart of formatting a request to a
`content aggregator.
`
`[0012] FIG. 4 is a block diagram of requesting a content
`list from a content aggregator.
`
`[0013] FIG. 5 is a diagram of audio based media services
`available from a plurality of content aggregators indexed
`into a unified contentlist.
`
`[0014] FIG. 6 is a block diagram of requesting and
`acquiring a media service from a content aggregator.
`
`FIG.7 isa flowchart of a synchronous usage model
`[0015]
`requesting and acquiring music services from a content
`aggregator
`
`[0016] FIG. 8 is a diagram of requesting and acquiring
`music services from a plurality of content aggregators by
`using a control point.
`
`12
`
`
`
`US 2004/0078812 Al
`
`Apr. 22, 2004
`
`[0024] FIG. 2 illustrates a connection between Internet
`enabled devices (a playback device 202, cable set top box
`204, computer, cellular phone, MP3 player, video game
`system) and a plurality of content aggregators. Content
`aggregator 102 receives audio based media services from
`audio website 104 and radio station 106. An Internet enabled
`device, such as playback device 202, accesses content
`aggregator 102 via a communications network 110 (e.g.,
`Internet).
`
`[0025] Playback device 202 communicates with content
`aggregator 102 to request a listing of media services avail-
`able from content aggregator 102 and to receive media
`services selected from the list of media services. Preferably,
`the communications are procedural calls and requests com-
`prising computer commands,for example hypertext markup
`language (HTML) or extensible markup language (XML)
`based requests, transported as packets adhering to a transport
`structure (e.g., Transmission Control Protocol/Internet Pro-
`tocol (TCP/IP)) through communications network 110. The
`procedural calls are formatted through the use of an appli-
`cation programming interface (API). This interface com-
`prises a series of functions that are used by a program or
`device to initiate a specific action (for example, an Internet
`enabled device uses an audio API to control a soundcard for
`the playback of an audio based media service).
`
`[0023] Uniform resource indicators (URIs) are a universal
`[0017] FIG. 9 is a diagram of a content list of media
`set of namesthat refer to existing protocols or name spaces
`services a playback device receives from a content aggre-
`that
`identify resources (e.g., website, streaming media
`gator as computer code.
`server,), services (e.g., videos on demand, internet radio),
`[0018] FIG. 10 is a diagram of a content list of media
`devices (e.g., mobile phone, internet enable appliance), and
`services formatted to the internal data structure of a play-
`data files (e.g., media files and text documents). A URLis a
`back device by a content adapter.
`form of a URI that expresses an address that maps to an
`[0019] FIG. 11 is a display of a content list of media
`access algorithm using network protocols (e.g., TCP/IP or a
`services formatted into a menu by a XMLparser.
`MPEGtransport scheme). When a URLis used, a specific
`[0020]
`In FIG. 1, a composition of media services avail-
`resource, service, device, or data file may be accessed and/or
`manipulated. An alternative form of a URI known as an
`able to a content aggregator 102 is shown. Audio based
`media services, as audio website 104, radio station 106,
`Internet protocol number or address (IP) is a series of
`music service 108, originating as audio based feeds (e.g.,
`numbers that refers to a specific resource, service, or data
`music,
`talk radio show, streaming media files, baseball
`file. Optionally, a URL is mapped to an IP number,typically
`
`game, audio fromatelevision program, audio books), and through a Domain Name Server (DNS), that provides two
`video station 109 (e.g., CNN®, ABC®, DIRECTV®) are
`ways to access a desired resource (e.g., a resource is
`media services available to content aggregator 102 through
`accessed either by using the domain name www.whitehou-
`communications network 110
`(e.g.
`Internet, Public
`se.gov or the IP address 198.137.240.91).
`Switched Telephone Network (PSTN), Local Area Network
`(LAN), wireless network, Digital Subscriber Line (DSL),
`peer to peer network). Preferably, the media services are
`coupled to content aggregator 102 via communications
`network 110 with the media services transmitted as packets
`conforming to a TCP/IP protocol. Optionally, content aggre-
`gator 102 receives audio and video feedsthat are transmitted
`through a wireless interface (radio frequency, microwaves,
`infrared) or receives media objects (e.g., audio-video files
`that are pre-recorded or real
`time feeds transmitted as
`streaming media) that are stored locally at the site of the
`content aggregator 102 (such asin a hard disk drive, optical
`storage, removable storage device, or magnetic tape).
`[0021] The mediaservices available for transmission com-
`prise audio and video feeds. Audio website 104 is an Internet
`based website that comprises audio based media services
`that are transmitted in the form of streaming media or are
`computer files partially or completely transmitted. Option-
`ally, the media services may purport to a type of mediafile
`format
`(e.g.. REALAUDIO®, REALMEDIA®, APPLE
`QUICKTIME®, MICROSOFT® WINDOWS MEDIA™
`FORMAT, MPEG-2 LAYERIII AUDIO, and MP3®)that is
`played back via
`a media player
`(REALPLAYER®,
`WINAMP®, and MICROSOFT® WINDOWS MEDIA™
`PLAYER). Radio station 106 is a content provider that
`broadcasts radio programs as audio based streamed media
`services. The broadcasts may be live or prerecorded. Music
`service 108 is a media service that is subscription based
`(e.g., MUSAK®, MUSIC CHOICE®) that broadcasts pro-
`grammingas an audio based media service available through
`the content aggregator 102. Video feed 109 is a media
`service that is transmitted from a television station (e.g.,
`CNN, ABC ) oras a video service (e.g., a movie on demand)
`available to content aggregator 102.
`[0022]
`In accordance with the principles of the present
`invention, content aggregator 102, in an alternative embodi-
`ment, exists as a web resource (e.g., website, index, catalog)
`that comprises Uniform Resource Indicators (URIs) that link
`to the location of media services. A playback program (e.g.,
`a streaming media player) directly accesses a media service
`at its listed location (by using the listed link) instead of
`receiving the media service directly from content aggregator
`102. Content aggregator 102 may comprise an index of links
`to the location of media services and may have media
`services that are transmitted directly from content aggrega-
`tor 102.
`
`[0026] Playback device 202, as an Internet enable device,
`contains hardware and software (APIs and program subrou-
`tines) for communicating and interacting with content aggre-
`gator 102. Preferably, playback device 202 comprises cen-
`tral processing unit (CPU) 214, program memory 216, data
`memory 218, an audio speaker 220, display device 222, and
`input device 224. CPU 214 (a computer processor) pro-
`cesses audio services received from the content aggregator
`102, received via communications network 110. CPU 214 is
`coupled to data memory 218 that stores data received from
`the content congregator 102 and selected media services.
`Program memory 216, connected to CPU 214, stores pro-
`gramming instructions and APIs used to communicate with
`and process the media services obtained from content aggre-
`gator 102.
`
`[0027] Display device 222 displays the program genres
`and subgenres of audio based media services available from
`content aggregator 102. Preferably, display device 222 is a
`television display, LED display, or LCD display. The genres
`
`13
`
`13
`
`
`
`US 2004/0078812 Al
`
`Apr. 22, 2004
`
`and sub-genres are selected by using input device 224 by
`engaging a button, dial, or touch screen interface, or other
`tactile mechanism available on input device 224. CPU 204
`requests (via a command such as a computer command or a
`procedural call) an audio based media service (in this
`example from a radio station 106) through content aggre-
`gator 102, after the media service was selected via input
`device 224. Content aggregator 102 receives the request
`from playback device 202 and,
`in response, sends the
`selected media service to playback device 202 in the form of
`a packetized transmission. Playback device 202 processes
`the media service and outputs the results through connected
`audio speaker (loudspeaker) 220. In an alternative embodi-
`ment,
`the selected media service is video based and is
`outputted to display device 222.
`
`[0028] Set top box 204 is an Internet enabled device that
`receives audio and video based media services from, for
`example, cable or broadcast television stations. Preferably,
`set top box 204 is a conduit for media services that are
`multi-threaded or multiplexed by set top box 204 to devices
`that are not Internet enabled (e.g., stereo receiver 206 and
`television audio output 208). For example, set top box 204
`receives a classical music based media service, whichset top
`box 204 sends to stereo receiver 206. At the same time,set
`top box 204 receives a newscast media service that
`is
`transmitted to coupled television 208. Optionally, set top
`box 204 transmits audio services to an attached data network
`210 (e.g., Ethernet network, wireless RF network, power
`line based network,or infrared network) that is connected to
`output device 212 (connector or audio speaker) that outputs
`the media services as a signal.
`
`[0029] Multi-threading operates by set top box 204 divid-
`ing up its processing tasks (housekeeping tasks, data
`retrieval, processing data, outputting data) into a number of
`timeslots. Each processing task is allocated a number of
`timeslots. Processing tasks of a high priority (playback of a
`media service) receive a larger number of timeslots than
`other processing tasks (updating the display of available
`media services). The times slots as allocated in accordance
`with a predetermined procedure. In the current example, set
`top box 204 divides each second into ten timeslots: four
`timeslots are allocated for the classical music media service,
`four timeslots are for the newscast media service, and the
`remaining two timeslots are for housekeeping procedures.
`Set top box 204 then processes the media services and
`performs housekeeping tasks
`in accordance with the
`timeslots allocated. An embodiment of the invention sup-
`ports that time slots durations may be unequal or equal
`amounts of time.
`
`[0030] FIG. 3 showsa flowchart of a method of config-
`uring a device (playback device 202 or set top box 204) to
`the same data format as content aggregator 102 for acquiring
`and outputting selected media services. In the preferred
`embodiment, playback device 202 communicates with a
`content aggregator 102 through communications network
`110 in accordance with computerinstructions controlling the
`CPU 214. The computer instructions comprising an API
`operating through specific procedural calls. The API
`requests parameters from content aggregator 102 via a
`Set_Service_Call in step 302. The parameters transmitted to
`playback d vice develop a data and communication structure
`used by playback device 202 to communicate with content
`aggregator 102. The communication structure is the format
`
`used to communicate data between playback device 202 and
`content aggregator 102. Preferably, the playback device 202
`conforms with TCP/IP, Open Systems Interconnection (OSI)
`protocol, 3G, or WAP based transport protocols architec-
`tures. Accordingly, playback device 202 determines the
`communications structure of content aggregator 102 by
`using a handshake process and receiving data back that
`comports to a predetermined communications structure.
`Also, playback device 202 passively receives a data stream
`from content aggregator 102, whereby playback device 202
`determines the communication structure based upon key
`attributes that exist in the data stream. For example, play-
`back device 202 reads a headerof a received data packet and
`determines that the data packet comports to a MPEGtrans-
`port and data scheme.
`
`[0031] For example, a sample data structure comprises
`media service menus,
`the locations (URIs) and types of
`media service formats (Real Audio, Microsoft Media Player,
`MP3)available from the providers of the media servicesthat
`correspond to a style sheet Playback device 202 receives the
`style sheet from content aggregator 102 and formats incom-
`ing and outgoing data accordingly. Preferably, the determi-
`nation of data structure comprises a document object model
`(DOM) comprising three levels. Level 1 establishes the
`format governing the exchange of data (e.g.. XML and
`HMTL). Level 2 controls presentation and manipulation of
`data being transmitted (using style sheets). Level 3 defines
`a content model(e.g., data variables and metadatafields) and
`events used for a document (function key F12 saves a
`document). Optionally, Multipurpose Internet Mail Exten-
`sions (MIME) compliant classes and object types are used to
`define the objects available. Playback device 202 stores data
`structure parameters from content aggregator 102 into the
`program memory 216,
`in step 304, and formats future
`communications with the content aggregator 102 accord-
`ingly.
`
`[0032] The use of a DOM allowsplayback device 202 to
`support new document types and media formats as multi-
`media standards adjust. For example, a new content aggre-
`gator uses a new multimedia player to play back available
`media services. Playback device 202, when requesting a
`media service from the new content aggregator, will read the
`corresponding DOM andlocate the new multimedia player
`(either by a embedded locator in the DOM orbyreferring to
`an external database). Playback device 202 then requests a
`codec (update) for the new media player, which is stored
`once the codec is received. The media service is ready to be
`outputted by playback device 202 using the new media
`player.
`
`[0033] With the data structure parameters stored, playback
`device 202 requests a content list of media services from
`content aggregator 102 via a List_Content_Call issued by
`CPU 214, in step 306. As displayed in FIG. 4, the List-
`_Content_Call comprises an Iradio API 412 that initiates an
`Iradio Request API 402 (stored in program memory 216)
`that allocates and manages the internal resources used for
`the content list request. Preferably, CPU 214 designates
`operational cycles for the content list request and designates
`space in the data memory 218 for the storage of a content
`list. Optionally, Request API 402 manages multiple requests
`for contentlists from a plurality of content aggregators 102,
`simultaneously.
`
`14
`
`14
`
`
`
`US 2004/0078812 Al
`
`Apr. 22, 2004
`
`[0034] CPU 214 then issues a HTTP processor API 404
`subroutine that controlling the communication transmissions
`with content aggregator 102. HTTP processor API 404
`functions in accordance with the parameters stored in step
`302 by managing the connection, communications, and
`HTTPprotocol exchange with the content aggregator 102.
`This includes all processing related to HTTP URIredirec-
`tion, error recognition, and response classification as a
`standard response to a stream comprising a media service.
`HTTPprocessor API 404 transmits the contentlist requestto
`content aggregator 102 via communications network 110.
`Content aggregator 102 responds by transmitting a content
`list of available media services received through HTTP
`processor API 404.
`
`[0035] After receiving the contentlist, preferably in a pred
`termined format, CPU 214 initiates content adapter 406
`routine that formats the received contentlist to an internal
`format of data and an internal data structure used by play-
`back device 202. For example, CPU 214 uses a XML
`(internal format of data) based document type definition
`(DTD)that predefines the internal data structure (datafields)
`used for playback device 202. Data received from the
`content aggregator 102,
`in a XML format,
`is directly
`matched to the data fields defined by the DTD. If the data
`received from content aggregator 102 does not comply with
`the internal data format (XML), content adapter 406 formats
`the data into XML, preferably by the use of translation
`tables, and associates the formatted data into the internal
`data structure (DTD)of playback device 202. Optionally, the
`formatted data and data received from content aggregator
`102 are stored in data memory 218. Also,
`the DTD is
`updateable (for example, an update sent as a style sheet via
`the Internet 110 overwrites an existing DTD).
`
`XMLparser 408 receives the XML based data from
`[0036]
`the content adapter 406 (or from the data memory 218), and
`maps the XML based data to preselected menu elementsthat
`are displayed and manipulated by a user. The data mapping
`accomplished via a data table that indicates which variables
`from the internal data structure are mapped to preselected
`menu elements.
`
`[0037] FIG. 9 is a diagram of a content list of media
`services 900 (in XML format) the playback device 202
`receives from content aggregator 102. FIG. 10 is a display
`of a content list of media services 1000 formatted to the
`
`internal data structure of the playback device 202 by the
`content adapter 406. FIG. 11 is a display of a contentlist of
`media services 1100 formatted into a menu by the XML
`parser 408.
`
`[0038] As an exemplary embodiment, data formatted by
`the XMLparser 408, is displayed as a hierarchical menu on
`display device 222. The hierarchical menulists fields that
`are either preselected or designated by a user (sample fields
`are media service,
`title, media type, performer, content
`aggregator source, etc.). For example, a “top” level of the
`menu is displayed by genre (e.g., talk show, music, news,
`sports talk, mystery, soap opera,etc.). When a userselects a
`genre listed on the “top” menu level via input device 224,
`content data procedure 410 initiated by CPU 214 checks
`data memory 218 if there are any sub-genres or available
`media services listed in association with the selected genre.
`Alternatively, content data procedure 410 issues an addi-
`tional content list call 401 to content aggregator 102 for
`
`more information that is associated with the selected genre
`(repeating the steps discussed above). Content data proce-
`dure 410 generates and displays from the associated data a
`“second” level menu listed underneath the “top” level. The
`user then makesa selection from the “second” level, and
`content data procedure 410 continues to issue content list
`calls 401, until the user selects a media service for playback.
`
`[0039] After a media service is selected via input device
`224 (e.g., from a hierarchical menu ora listing of available
`media services), CPU 214 issues an Iradio_Stream_Con-
`tents_call API, in step 308, to retrieve the selected media
`service from the content aggregator 102. The Iradio_Stream-
`_Contents_call API, as displayed in FIG. 6, begins with a
`Stream Request Call 602 that determines a location of the
`requested media service (preferably the media service’s
`URI) either through data returned from the Iradio_List_Con-
`tent_Call (in data memory 218) or through other means(e.g.,
`as requesting the location of the media service from the
`content aggregator 102). Optionally, Iradio_Stream_Con-
`tents_call API 308 supports
`asynchronous
`(multiple)
`requests for media services via the multithreading capability
`described above.
`
`[0040] Once the location of the selected media service is
`known,the CPU 214 issues an Iradio API 412 that starts with
`the Request API 402 subroutine for allocating and managing
`resources used for the Stream Request Call 602. HTTP
`processor API 404 is issued, as part of Iradio API 412, to
`connectto the location of the selected media service via the
`communications network 110. The connection to the loca-
`tion of the media service is a direct connection (website,
`storage device, cellular network, etc.), a connection made
`through cont nt aggregator 102 to the location of the media
`service, or a connection that is redirected to the location of
`the media service. HTTP processor API 404 also manages
`the details of locating stream data in the response that comes
`from the requested media service’s location. The request for
`a media service is preferably made as a HTTP or MIME
`compliant
`request
`containing information
`about
`the
`resources required to playback the media service (such as a
`media player). Along with standard HTTPredirect process-
`ing, HTTP processor API 404 analyzes the HTTP response
`header to determine whether the response is a stream, media
`file, or other type of multimedia format (e.g. a REAL-
`PLAYER® based stream, a non-streamed MP3file, or a
`video signal). Once the determin