PRERECORDED MEDIA AUTHENTICATION AND DOWNLOAD SYSTEM
Field of the Invention
The present invention relates to the field of prerecorded media such as prerecorded cassette tapes, prerecorded CD ROMS, prerecorded NHS tapes, prerecorded hard drives, prerecorded DNDs, and any other type of prerecorded media including removable drive media (such as Zip®, Jazz®, and CompactFlash media) and in particular, to prerecorded cassette tapes, prerecorded CD ROMS, prerecorded NHS tapes, and prerecorded DNDs for playing music or video as a means for granting access to restricted content related to a specific prerecorded media on a global information network of interconnected electronic devices.
Background of the Invention
In the music industry, CD ROMs (hereinafter CD's) often contain "bonus tracks" which are added to later releases of a given CD In other words, a later released CD, which has the same title and packaging as a CD released months or weeks earlier, may nevertheless have additional tracks (i.e. songs) which are not on the earlier release. If a purchaser of the earlier released CD wishes to obtain the bonus track, he or she is forced to purchase a new CD.
A similar situation exists with other prerecorded media. For instance, a later release of a prerecorded video tape might have clips related to the making of the video. Again, if the purchaser of the earlier released prerecorded media wishes to obtain the bonus material, he or she is forced to purchase a new copy of the prerecorded media.
Summary of the Invention
In accordance with the present invention, a method is provided for allowing a person in possession of a selected CD (for example, the CD entitled "Human Clay" by the band Creed) to have access to "bonus" tracks or other audio or video data to his or her computer. In accordance with this method, a user places the CD into the CD ROM (or DND ROM) drive of a computer, and then downloads a software application from a global information network such as the Internet onto the computer. When the software application is executed, it accesses the CD via the CD ROM drive and confirms that the CD in the CD ROM drive is
the selected CD. If the CD is the selected CD, the bonus track or other audio or video data is transmitted to the computer via the global information network. While the transmitted data is preferably audio or video data, in alternative embodiments of the present invention, other types of electronic data (such as Macromedia Flash™ files, software, or password protected web-pages) may be transmitted instead of, or in addition to, the audio or video data. The transmitted data can be sent as a download where the "bonus" data may be stored on the computer or can be transmitted for streaming use only such that the data may be accessed but not stored on the computer. The computer can be of any known type, including but not limited to personal computers, laptop computers, hand-held computers, and other electronic devices such as computerized appliances and the like. Preferably, the system confirms that the CD in the CD ROM drive is the selected CD by scanning the CD in the CD ROM drive, and generating a unique identifier from the contents of the CD. In a preferred embodiment, the unique identifier is a function of the structural arrangement of the data (e.g. songs) on the CD. Most preferably, the unique identifier is a function of two or more of the number of tracks on the CD, the length of each track, the order of each track, and the total track length of the CD. Alternatively, the unique identifier may be a function of portions of the specific data in the tracks.
In accordance with another embodiment of the present invention, the CD ROM is a digital video disk (DND), and system allows a person in possession of a selected DND (for example, the DND of a particular film) to download "bonus" audio or video data to his or her computer in the manner described above.
Detailed Description of the Preferred Embodiment
The preferred embodiments of the present invention will now be described in detail. Although the system and method of the present invention will be described in connection with these preferred embodiments, it is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the invention as defined by the appended claims.
The following description illustrates a preferred embodiment of the present invention which is implemented in the Visual Basic programming language utilizing the multi-media capabilities of the mciSendString Application Programming Interface (API), which allows a programmer to send instructions to, and query information from, a CD ROM (or DND ROM) drive. In accordance with the present invention, an authentication software application (hereinafter "ASA" program) is provided which can be downloaded by a user via a global information network such as the Internet. An exemplary ASA program is set forth below in Appendix 1. While the description set forth below refers to CD ROM drives for ease of discussion, it should be understood that this description applies to DND ROM drives and the "drives" useful in reading any other media in a prerecorded form.
After downloading the ASA program, the user runs the program by double-clicking the executable ASA program file. If the CD-ROM drive is empty, the application will instruct the user to insert a CD. This can be implemented for example, as follows: mciSendString "status cd media present", s, Len(s), 0
If (CBool(s)) Then
Else eject.Enabled = False timeWindow.Text = "Insert CD"
If a data CD is in the CD-ROM drive, then an error message will be displayed indicating that the user should place an audio CD into the drive. In addition, the Eject button is enabled, which allows the user to open the CD-ROM drive tray and switch CDs. This can be implemented, as follows, by identifying any CD which has only one track as a data CD: eject.Enabled = True
If (iΝumberOfTracks = 1) Then timeWindow.Text = "Please insert audio CD"
Exit Sub Endlf
If an audio CD is in the drive or an audio CD is placed in the drive, then the user will be instructed to establish a connection to the Internet and then press the "Verify CD" button to begin the verification process.
Prior to displaying the message, the ASA program scans the CD-ROM drive and generates a unique identifier for the audio CD. The unique identifier is created by taking two or more of the known attributes of the audio CD, for example, the number of tracks, the length of each track, the order of each track, and the total track length of CD, and combining these attributes in an algorithm to produces the unique identifier. This can be implemented, for example, as follows: varTmp = ""
For q = 1 To 5
Select Case q
Case 1 mciSendString "status cd length wait", s, Len(s), 0 iTmp = s
Case 2 iTmp = trackLength(l)
Case 3 iTmp = trackLength(iNumberOfTracks)
Case 4 halfTrack = CInt(iNumberOfTracks/ 2) iTmp = trackLength(halfTrack)
Case 5 halfTrack = halfTrack + 1 iTmp = trackLength(halfTrack)
End Select min = Hex$(CInt(Mid$(iTmp, 1, 2)))
sec = Hex$(Cmt(Mid$(iTmp, 4, 2))) milli = Hex$(CInt(Mid$(iTmp, 7, 2))) varTmp = varTmp & min & sec & milli
Next varTmp = varTmp & Hex(iNumberOfTracks)
In this regard, it should be noted that the particular combination of audio CD attributes, and the manner in which they are combined, is not critical provided that it provides a reasonable indication that the CD is the correct CD.
In any event, once the user presses the "Nerify CD" button, a web browser (which is invisible to the user) passes the unique identifier to a verification script on the Internet. This can be implement, for example, as follows:
URL = "http://www.cdchecker.com/cgi-bin/checker.cgi"
Flags = 0
TargetFrame = ""
PostData = "CDUID=" & iUniqueldentifier & ""
PostData = StrConv(PostData, vbFromUnicode)
Headers = "Content-Type: application/x-www-form-urlencoded" &_ vbCrLf
WebBrowserl.Νavigate URL, Flags, TargetFrame, PostData, Headers
If the unique identifier that is sent from the user's computer matches the identifier of the audio CD that is qualified for the download, then the script will instruct the ASA program to begin downloading the bonus track(s) to the user's computer.
If the user places an incorrect audio CD into the CD-ROM drive, then the unique identifier will not match the identifier in the verification script, which will cause the application to prompt the user with an error message.
Appendix I
Dim fplaying As Boolean 'true if CD is currently playing
Dim fCDLoaded As Boolean 'true if CD is the player
Dim lNumberOfTracks As Integer 'number of tracks on audio CD
Dim tracklength() As String ' array containing length of each track
Dim iUniqueldentifier As String 'unique CD identifier
Dim warningflag As String 'warning flag
Dim track As Integer 'current track
Dim min As String 'minute on track
Dim milli As String 'millisecond on track
Dim msghelp As Integer ' msgbox flag for CD-ROM cache errors
Dim cmd As String 'string to hold mci command strings
'Send a MCI command string
'If fShowError is true, display a message box on error
Private Function SendMCIString(cmd As String, fShowError As Boolean) As Boolean
Static re As Long
Static errStr As String * 200 re = mciSendString(cmd, 0, 0, hWnd)
If (fShowError And re o 0) Then mciGetErrorString re, errStr, Len(errStr)
MsgBox "Error: Close this application and re-insert the Human Clay" & Chr(13) & "CD into
CD-ROM drive. Disable any auto-loading applications" & Chr(13) & "such as CD players and then restart this program.", vbCritical
End If
SendMCIString = (re = 0)
End Function
Private Sub creednet_Click()
WebBrowserl.Navigate "http://www.creednet.com", ,"_BLANK"
End Sub
Private Sub Form_Load()
If (App.PrevInstance = True) Then
End End If
'Initialize variables Timerl.Enabled = False fCDLoaded = False sitebtn.Enabled = False msgHelp = "0"
If (SendMCIStringC'open cdaudio alias cd wait shareable", True) = False) Then
End End If
SendMCIString "set cd time format tmsf wait", True Timerl.Enabled = True End Sub Private Sub Form_Unload(Cancel As Integer)
SendMCIString "close all", False
End Sub
Private Sub help_Click()
WebBrowserl.Navigate "http://www.cdchecker.com/help.html", , "_BLANK"
End Sub
Private Sub liqAud_Click()
WebBrowserl.Navigate "http://www.liquidaudio.com", ,"__BLA K" End Sub 'Go to Site
Private Sub sitebtn-Click() Dim URL As String Dim Flags As Long Dim TargetFrame As String Dim PostData() As Byte Dim Headers As String Dim vartmp As String Dim q As Integer Dim iTmp As Variant msgHelp = msgHelp + 1 varTmp = ""
For q = 1 To 5 Select Case q Case 1 mciSendString "status cd length wait", s, Len(s), 0 iTmp = s Case 2 iTmp = trackLength(l) Case 3 iTmp = tracl Length(iNumberOfTracks) Case 4 halfTrack = CM(iNumberOfTracks/ 2) iTmp = trackLength(halfTrack)
Case 5 halfTrack = halfTrack + 1 iTmp = trackLength(halfTrack) End Select
min = Hex$(CInt(Mid$(iTmp, 1, 2))) sec = Hex$(CInt(Mid$(iTmp, 4, 2))) milli = Hex$(CInt(Mid$(iTmp, 7, 2))) varTmp = varTmp & min & sec & milli Next varTmp = varTmp & Hex(iNumberOfTracks) iUniqueldentifier = vartmp
URL "http://www.cdchecker.com/cgi-bin/checker.cgi" Flags = 0 TargetFrame=""
Posωata = "CDUID=" & iUniqueldentifier & "" ' VB creates a Unicode string by default so, we need to 'convert it back to Single byte character set. PostData = StrConv(PostData, vbFromUnicode) Headers = "Content-Type: application x-www-form-urlencoded" &_ vbCrLf WebBrowserl.Navigate URL, Flags, TargetFrame, PostData, Headers End Sub 'Eject the CD Private Sub eject _Click() SendMCIString "set cd door open", True
Update
End Sub
'Update the display and state variables
Private Sub UpdateQ
Static s As String * 30
'Check if CD-ROM drive has cache error
If msgHelp > 2 Then
MsgBox "Please verify that Creed's Human Clay is in your CD-ROM drive" &
Chr(13) .
& "and that any other CD-ROM/DVD-ROM drives are empty. If Human" &
Chr(13) _
& "Clay is in your CD-ROM drive and your are still receiving the" & Chr(13)
& '"Error: Invalid CD'message, try refreshing your CD-ROM drive." &
Chr(13)
& "" & Chr(l 3) _
& "To refresh the drive, remove the CD from your CD-ROM drive and" &
Chr(13) _
& "close any open programs (including this one). Then, double click" & Chr(13) -
& "the 'My Computer' icon on your Windows desktop. Select 'Refresh'" & Chr(13) _
& "from the'View'dropdown menu in the toolbar. Reinsert the Human" & Chr(13) _
& "Clay CD into your CD-ROM drive and restart this program.", vbExclamation
End End If
mciSendString "status cd media present", s, Len(s), 0
If(CBool(s)) Then
'Enable all the controls, get CD information
If (fCDLoaded = False) Then mciSendString "status cd number of tracks wait", s, Len(s), 0 iNurnberOfTracks = CI-nt(Mid$(s, 1, 2)) eject.Enabled = True
'If CD only has 1 track, then it's probably a data CD
If (iNurnberOfTracks = 1) Then timeWindow.Text = "Please insert audio CD"
Exit Sub
End If mciSendString "status cd length wait", s, Len(s), 0
ReDim trackLength(l To iNurnberOfTracks)
Dim i As Integer
For i = 1 To iNurnberOfTracks cmd = "status cd length track " & i mciSendString cmd, s, Len(s), 0 trackLength(i) = s
Next fCDLoaded = True sitebtn.Enabled = True
End If
'Update the track time display
If WebBrowserl.LocationURL = "http://www.cdchecker.com/mvalid.html" Then warningFlag = "Error: Invalid CD"
Else warningFlag =""
End If
If warningFlag = "" Then timeWindow.Text = "Make sure you are connected to the Internet and then press the Verify CD button"
Else timeWindow.Text = warningFlag
End If
Else eject.Enabled = False timeWindow.Text = "Insert CD"
'Disable all the controls, clear the display
If (fCDLoaded True) Then fCDLoaded False fPlaying = False sitebtn.Enabled = False
WebBrowserl.Navigate "http://www.cdchecker.com/help.html" warningFlag = "" msgHelp = "0"
End If
End If
End Sub
Private Sub Timerl_Timer()
Update
End Sub
It is important to note that, while the present invention has been (and will continue to be) described in the context of a fully functional computer system, those skilled in the art can appreciate that the present invention is capable of being distributed as a program product in a variety of forms and that the present invention applies equally regardless of the particular type of signal-bearing media utilized to actually carry out the distribution. Examples of signal-bearing media include: recordable-type media, such as floppy discs, hard-disk drives, audio CDs and CD ROMs, and transmission-type media, such as digital and analog communication links.
While the above stated examples are given in terms of CDs, the present invention is equally applicable to other forms of prerecorded media. For instance, instead of a CD, the prerecorded media could be a prerecorded cassette tape, a prerecorded VHS tape, a prerecorded DVD, or any other conventional or newly developed prerecorded media. Desirably the prerecorded media is in a digital format.
In some embodiments of the present invention, the prerecorded media has one or more tracks that contains information concerning the number and/or length of the other tracks. For instance, in the Red Book audio format employed on many CDs the first tract includes precise information concerning the number and length on the other tracks on the CD. In some embodiments of the present invention, this track is used to obtain the information used to create a key. In some other embodiments of the present information, the length of each track is accurately determined as well as the number of tracks and this determined information is used to create a key.
The Red Book or system description CD-Digital Audio (CD-DA) specifies the CD Digital Audio disc format including CD Graphics, CD (Extended) Graphics, CD TEXT, CD-MIDI, CD Single (8cm), CD Audio Maxi-single (12cm) and CDV Single (12cm).
The description includes Main parameters, Audio specification, Disc specification, Optical stylus, Modulation system, Error correction system and the Control & Display system.
Once the key corresponding to the prerecorded media that entitles the person having that media to gain access, the person having this media and access data that can include multimedia data such as photographic images, audio data (e.g., music), graphical data, and/or textual data. For example, such data may included additional music which complements the music already contained on the physical audio CD itself in the form of recorded data. Such
corresponding data may also include additional artwork or lyrics that was not presented in the original CD package, but which further complements the CD.
Those skilled in the art will appreciate that although these are examples of multimedia data, other types of corresponding data other than multimedia (e.g., program codes, encrypted data, etc.) may also be utilized in accordance with a preferred embodiment of the present invention. The unique identifying indicia is a unique identifier derived from information- stored on the physical removable media itself. In a preferred embodiment, the unique identifier is based on the "Red Book" audio standard, well-known in the electronic recording arts. Additional data for which access is granted to the user possessing the required prerecorded media is typically retrieved from one or more "web sites" However, in an alternative embodiment, the additional data can be retrieved from another memory sources (e.g., other computers, disk drives, a memory unit within the audio/video system itself, and so forth) for storing data.
While the invention has been explicitly described in the context of a network of computers, those skilled in the art will recognize that the present invention could exist as a network of electronic devices that accept any of the aforementioned plurality of removable prerecorded media.
While the illustrated embodiment of the invention is implemented in the Visual Basic programming language utilizing the mciSendString API, those skilled in the art will understand that the claims of the present invention apply to a variety of programming languages and is not limited to any particular API or to any particular operating system or platform.
While the invention has been particularly shown as described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. Utilization of the Internet in association with the method and system described herein is not a necessary feature of the present invention. For example, the present invention is applicable to other communication networks besides the Internet, including so-called "intranets" (i.e., networks that are internal to particular organizations). The Internet, as described herein, is merely one example of a remote network that can be utilized in accordance with a preferred embodiment of the present invention. It is therefore contemplated that such modifications
can be made without departing from the spirit or scope of the present invention as defined in the appended claims.