After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 457084 - FooID support (FooID - free and opensourc eaudio fingerprint technology)
FooID support (FooID - free and opensourc eaudio fingerprint technology)
Status: RESOLVED OBSOLETE
Product: rhythmbox
Classification: Other
Component: Plugins (other)
0.10.x
Other All
: Normal enhancement
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-07-15 10:44 UTC by XVilka
Modified: 2018-05-24 12:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
LibFooID modified for linux (27.94 KB, application/x-compressed-tar)
2007-07-15 10:49 UTC, XVilka
Details

Description XVilka 2007-07-15 10:44:44 UTC
At present a lot of music players support MusicDNS (MusikBrainz) audio fingerprinting. But MusikBrainz uses proprietary technology of audio fingerprints. FooID - free and open source solution. It`s abnormal if rhythmbox not support this.
Comment 1 XVilka 2007-07-15 10:47:51 UTC
Some information on the http://www.foosic.org/

the FooID protocol 

Protocol
2 	
3 	foosic submissions protocol (rev.3 2006-5-1)
4 	--------------------------------------------
5 	
6 	UDP packets, to port 34000 @ in.foosic.org (always use DNS, never hardcode IP)
7 	
8 	PACKETS
9 	-------
10 	
11 	    bytes  1      username length    > 0 <= 192, unsigned
12 	           ....   username           <= 32 UTF-8 characters, max 192 bytes
13 	           16     MD5 of password 
14 	           1      command            unsigned
15 	                      defined commands:
16 	                        0 INSERT                             
17 	                        1 INSERT_FINGERPRINT
18 	       
19 	    INSERT
20 	    bytes  1    titlelength    > 0 and <= 255, unsigned
21 	           .... title          <= 100 UTF-8 characters, max 255 bytes
22 	           1    artistlength   > 0 and <= 255, unsigned
23 	           ...  artist         <= 100 UTF-8 characters, max 255 bytes
24 	           1    albumlength    > 0 and <= 255, unsigned
25 	           ...  album          <= 100 UTF-8 characters, max 255 bytes       
26 	           1    genrelength    >= 0 (!) and <= 192, unsigned
27 	           ...  genre          <= 32 UTF-8 characters, max 192 bytes
28 	           4    length         Little-Endian, centiseconds, rounded, unsigned
29 	           2    year           Little-Endian, unsigned
30 	           1    va             unsigned, boolean
31 	           1    tracknr        unsigned
32 	           
33 	    INSERT_FINGERPRINT (extended version of INSERT, use this if you have FooID support)
34 	    bytes  1    titlelength    > 0 and <= 255, unsigned
35 	           .... title          <= 100 UTF-8 characters, max 255 bytes
36 	           1    artistlength   > 0 and <= 255, unsigned
37 	           ...  artist         <= 100 UTF-8 characters, max 255 bytes
38 	           1    albumlength    > 0 and <= 255, unsigned
39 	           ...  album          <= 100 UTF-8 characters, max 255 bytes       
40 	           1    genrelength    >= 0 (!) and <= 192, unsigned
41 	           ...  genre          <= 32 UTF-8 characters, max 192 bytes
42 	           4    length         Little-Endian, centiseconds, rounded, unsigned
43 	           2    year           Little-Endian, unsigned
44 	           1    va             unsigned, boolean
45 	           1    tracknr        unsigned
46 	           1    fp_version     unsigned
47 	           2    fp_length      Little-Endian, unsigned
48 	           ...  fingerprint    > 0 and == fp_length bytes
49 	   
50 	             
51 	NOTES
52 	-----
53 	- No tags = no submission (BUT genre, length, year and tracknr are optional -> set to 0)
54 	- Multiple artists: put together with ", " in alphabetical order.
55 	- Various Artists: use real track artist, but set "va" flag
56 	- Submit after song is playing for 60 seconds (watch out for seeking!). Songs < 60 seconds
57 	  can be submitted when their playback finishes.
58 	- You can either use INSERT or use INSERT_FINGERPRINT, but only one of the two per song.
59 	- Checking passwords, getting stats & spelling corrections are handled via
60 	  a seperate TCP protocol, and are completely optional (you only need to
61 	  support this one for the system to work).
62 	
63 	
64 	foosic libFooID fingerprint server protocol (rev.1 2006-5-10)
65 	-------------------------------------------------------------
66 	
67 	TCP connection, to port 35000 @ fp.foosic.org (always use DNS, never hardcode IP)
68 	
69 	After initializing the connection, you submit a count of the number
70 	of fingerprints you are going to submit, followed by an alternation
71 	of fingerprint lengths and fingerprint data.
72 	
73 	Fingerprints belonging to the same album should be submitted as a group,
74 	and if possible, in the correct order.
75 	Fingerprints from different albums should be submitted one by one.
76 	
77 	
78 	           bytes  1   fp_count      unsigned
79 	   
80 	fp_count times |  1   fp_version    unsigned
81 	               |  2   fp_length     Little-Endian, unsigned
82 	               |  ... fingerprint   > 0 and == fp_length bytes
83 	                     
84 	After receiving the fingerprints, the server will start processing them.
85 	As soon as it is done, or encounters an error, it will reply with tag
86 	information for the songs in the same order as they were submitted,
87 	but it may return multiple possibilites per song (num_hits).
88 	
89 	          bytes   1   result_code   0 on success, >0 on error
90 	                                    On error no more data follows.                                     
91 	                                   
92 	                                    Error codes
93 	                                    -----------                                 
94 	                                    1: Unknown fingerprint version
95 	                                    2: Internal server error
96 	                                   
97 	fp_count times |  1   num_hits  unsigned
98 	
99 	    num_hits times |  2   confidence    unsigned, Little-Endian ( 0 = 0.0% to 10000 = 100.00%)                         
100 	                   |  1   tag_count     unsigned                           
101 	                     
102 	            tag_count times |    1   tag_name_size      unsigned
103 	                            |    ... tag_name_data      <= 100 UTF-8 characters, max 255 bytes
104 	                            |    1   tag_value_size     unsigned
105 	                            |    ... tag_value_data     <= 100 UTF-8 characters, max 255 bytes
106 	                                   
107 	You can expect foosic to return the following tags (tag_name):
108 	    TITLE
109 	    ARTIST
110 	    ALBUM
111 	    VA
112 	   
113 	It might also return the following:
114 	    GENRE
115 	    TRACKNUMBER
116 	    YEAR
117 	    anything else
118 	   
119 	Now, you can either go back to the top and submit either more songs, or terminate
120 	the connection by sending 0 as fp_count.
Comment 2 XVilka 2007-07-15 10:49:32 UTC
Created attachment 91805 [details]
LibFooID modified for linux

LibFooID modified for linux
Comment 3 GNOME Infrastructure Team 2018-05-24 12:41:57 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/403.