======= テーブル スキーマ ======= sqlite3 /var/cache/minidlna/files.db sqlite> .tables ALBUM_ART BOOKMARKS CAPTIONS DETAILS OBJECTS PLAYLISTS SETTINGS sqlite> .schema CREATE TABLE OBJECTS ( ID INTEGER PRIMARY KEY AUTOINCREMENT, OBJECT_ID TEXT UNIQUE NOT NULL, PARENT_ID TEXT NOT NULL, REF_ID TEXT DEFAULT NULL, CLASS TEXT NOT NULL, DETAIL_ID INTEGER DEFAULT NULL, NAME TEXT DEFAULT NULL); CREATE TABLE DETAILS ( ID INTEGER PRIMARY KEY AUTOINCREMENT, PATH TEXT DEFAULT NULL, SIZE INTEGER, TIMESTAMP INTEGER, TITLE TEXT COLLATE NOCASE, DURATION TEXT, BITRATE INTEGER, SAMPLERATE INTEGER, CREATOR TEXT COLLATE NOCASE, ARTIST TEXT COLLATE NOCASE, ALBUM TEXT COLLATE NOCASE, GENRE TEXT COLLATE NOCASE, COMMENT TEXT, CHANNELS INTEGER, DISC INTEGER, TRACK INTEGER, DATE DATE, RESOLUTION TEXT, THUMBNAIL BOOL DEFAULT 0, ALBUM_ART INTEGER DEFAULT 0, ROTATION INTEGER, DLNA_PN TEXT, MIME TEXT); CREATE TABLE ALBUM_ART (ID INTEGER PRIMARY KEY AUTOINCREMENT, PATH TEXT NOT NULL); CREATE TABLE CAPTIONS ( ID INTEGER PRIMARY KEY, PATH TEXT NOT NULL); CREATE TABLE BOOKMARKS (ID INTEGER PRIMARY KEY, SEC INTEGER); CREATE TABLE PLAYLISTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, PATH TEXT NOT NULL, ITEMS INTEGER DEFAULT 0, FOUND INTEGER DEFAULT 0); CREATE TABLE SETTINGS ( KEY TEXT NOT NULL, VALUE TEXT); CREATE INDEX IDX_OBJECTS_OBJECT_ID ON OBJECTS(OBJECT_ID); CREATE INDEX IDX_OBJECTS_PARENT_ID ON OBJECTS(PARENT_ID); CREATE INDEX IDX_OBJECTS_DETAIL_ID ON OBJECTS(DETAIL_ID); CREATE INDEX IDX_OBJECTS_CLASS ON OBJECTS(CLASS); CREATE INDEX IDX_DETAILS_PATH ON DETAILS(PATH); CREATE INDEX IDX_DETAILS_ID ON DETAILS(ID); CREATE INDEX IDX_ALBUM_ART ON ALBUM_ART(ID); CREATE INDEX IDX_SCANNER_OPT ON OBJECTS(PARENT_ID, NAME, OBJECT_ID); ====== アーティストから曲まで ======= ----- root sqlite> select * from OBJECTS where OBJECT_ID = '0'; 1|0|-1||container.storageFolder|1|root ----- rootの下 sqlite> select * from OBJECTS where PARENT_ID = '0' limit 0,16; 17|64|0||container.storageFolder|17|Browse Folders 2|1|0||container.storageFolder|2|Music 12|3|0||container.storageFolder|12|Pictures 9|2|0||container.storageFolder|9|Video ----- root/Musicの下 sqlite> select * from OBJECTS where PARENT_ID = '1' limit 0,16; 6|1$7|1||container.storageFolder|6|Album 3|1$4|1||container.storageFolder|3|All Music 5|1$6|1||container.storageFolder|5|Artist 7|1$14|1||container.storageFolder|7|Folders 4|1$5|1||container.storageFolder|4|Genre 8|1$F|1||container.storageFolder|8|Playlists 18|1$FF0|1||container.storageFolder|18|Recently Added ------ root/Music/Artistの下 sqlite> select * from OBJECTS where PARENT_ID = '1$6' limit 0,16; 6186|1$6$F|1$6||container.person.musicArtist|912|Bach 79466|1$6$8E|1$6||container.person.musicArtist|11647|Bach,Bartók,Paganini 75928|1$6$8A|1$6||container.person.musicArtist|11142|Bach,Messiaen,Dupre,Widor,Frank 18476|1$6$37|1$6||container.person.musicArtist|2775|Bach,Webern 64673|1$6$83|1$6||container.person.musicArtist|9570|Balakirev 147|1$6$2|1$6||container.person.musicArtist|52|Bartók 18627|1$6$38|1$6||container.person.musicArtist|2800|Bartók,Berg 44082|1$6$5D|1$6||container.person.musicArtist|6543|Bartók,Janacek,Messiaen 9892|1$6$19|1$6||container.person.musicArtist|1456|Bartók,Prokofieff 7435|1$6$14|1$6||container.person.musicArtist|1101|Bartók,Ravel 43489|1$6$5C|1$6||container.person.musicArtist|6447|Bartók,Schöenberg 60439|1$6$7C|1$6||container.person.musicArtist|8946|Bartók,Serly 77152|1$6$8C|1$6||container.person.musicArtist|11323|Bax $2723|1$6$A|1$6||container.person.musicArtist|162|Beethoven 44808|1$6$5F|1$6||container.person.musicArtist|6652|Beethoven,Liszt 61442|1$6$7E|1$6||container.person.musicArtist|9088|Beethoven,Mozart ------ root/Music/Artist/Bachの下 sqlite> select * from OBJECTS where PARENT_ID = '1$6$F' limit 0,16; 6187|1$6$F$0|1$6$F||container.album|913|- All Albums - 13831|1$6$F$3|1$6$F|1$7$6E|container.album.musicAlbum|2047|2台3台のピアノのための協奏曲 ;Bob James & his midi orchestration 64491|1$6$F$28|1$6$F|1$7$258|container.album.musicAlbum|9544|A Bach Recital (Guit) ;Simon Wynberg(Gt) 23835|1$6$F$8|1$6$F|1$7$D2|container.album.musicAlbum|3568|Bach To Cuba;Emilio Aragon 25363|1$6$F$A|1$6$F|1$7$DF|container.album.musicAlbum|3798|Bach and beyond ;Gabriela Montero(Pf) 58804|1$6$F$25|1$6$F|1$7$224|container.album.musicAlbum|8711|Bach in Jazz;Ray Kennedy Trio 93987|1$6$F$37|1$6$F|1$7$31C|container.album.musicAlbum|13678|Bach to the Future ;ジャック・ルーシェ 14150|1$6$F$4|1$6$F|1$7$71|container.album.musicAlbum|2097|Classic On Bossa *Bach* 124645|1$6$F$45|1$6$F|1$7$3C4|container.album.musicAlbum|17947|KAORI MURAJI plays BACH;村治佳織 80573|1$6$F$32|1$6$F|1$7$2D3|container.album.musicAlbum|11816|The 3 Sonatas for Viola da Gamba and Harpsichord ;Wieland Kuijken(gamba),Gustav Leonhardt(Cem) 15936|1$6$F$6|1$6$F|1$7$86|container.album.musicAlbum|2373|イタリア協奏曲 ;Brendel(Pf) 89101|1$6$F$34|1$6$F|1$7$30D|container.album.musicAlbum|13026|イタリア協奏曲/フランス組曲/イギリス組曲/他;グールド 27898|1$6$F$D|1$6$F|1$7$F2|container.album.musicAlbum|4165|インベンションとシンフォニア ;Gould(Pf) 80225|1$6$F$30|1$6$F|1$7$2D1|container.album.musicAlbum|11768|インベンションとシンフォニア ;Webersinke(Pf) 32936|1$6$F$14|1$6$F|1$7$11B|container.album.musicAlbum|4886|インヴェンションとパルティータ;Jansen(Vn),Rysanov(Vla),Thedeen(Vc) 102867|1$6$F$3C|1$6$F|1$7$35A|container.album.musicAlbum|14947|エアー・オン・パレード ------ root/Music/Artist/Bach/イタリア協奏曲の下 sqlite> select * from OBJECTS where PARENT_ID = '1$6$F$6' limit 0,16; 15937|1$6$F$6$0|1$6$F$6|64$4F$0$0|item.audioItem.musicTrack|2372|01 Italian Concerto in F, BWV 971_ 1 15945|1$6$F$6$1|1$6$F$6|64$4F$0$1|item.audioItem.musicTrack|2374|02 Andante 15953|1$6$F$6$2|1$6$F$6|64$4F$0$2|item.audioItem.musicTrack|2375|03 Presto 15961|1$6$F$6$3|1$6$F$6|64$4F$0$3|item.audioItem.musicTrack|2376|04 _Ich ruf' zu dir, Herr Jesu Chris 15969|1$6$F$6$4|1$6$F$6|64$4F$0$4|item.audioItem.musicTrack|2377|05 Prelude (Fantasia) In A minor, BW 15977|1$6$F$6$5|1$6$F$6|64$4F$0$5|item.audioItem.musicTrack|2378|06 Chromatic Fantasia and Fugue In D 15985|1$6$F$6$6|1$6$F$6|64$4F$0$6|item.audioItem.musicTrack|2379|07 _Nun komm' der Heiden Heiland,_ B 15993|1$6$F$6$7|1$6$F$6|64$4F$0$7|item.audioItem.musicTrack|2380|08 Fantasia and Fugue In A minor, BW ------- 曲データ(DETAIL) sqlite> select * from DETAILS where ID = 2375; 2375| /media/pi/Lexar/iTunes/iTunes_Music/Music/Brendel(Pf)/イタリア協奏曲 _Brendel(Pf)/03 Presto.m4a| 3560934| 1160778438| Presto| 0:03:39.358| 128000| 44100| Bach| -- CREATOR (多分アーティストタグ) Bach| -- ARTIST (多分アルバムアーティストタグ) イタリア協奏曲 ;Brendel(Pf)| B-| | 2| 0| 3| 1977-01-01| | 0| 0| | AAC_ISO_320|audio/mp4 sqlite> ====== ジャンルから曲まで ======= (ジャンル一覧) sqlite> select * from OBJECTS where PARENT_ID = '1$5' limit 0,16; 152|1$5$2|1$5||container.genre.musicGenre|54|B- 21050|1$5$14|1$5||container.genre.musicGenre|3167|C- 6528|1$5$8|1$5||container.genre.musicGenre|960|D- 13240|1$5$C|1$5||container.genre.musicGenre|1957|E- 17661|1$5$10|1$5||container.genre.musicGenre|2636|F- 5466|1$5$7|1$5||container.genre.musicGenre|802|G- 507|1$5$5|1$5||container.genre.musicGenre|123|H- 18055|1$5$13|1$5||container.genre.musicGenre|2706|I- 34208|1$5$15|1$5||container.genre.musicGenre|5070|J- 6619|1$5$9|1$5||container.genre.musicGenre|977|K- 13914|1$5$D|1$5||container.genre.musicGenre|2062|L- 203|1$5$3|1$5||container.genre.musicGenre|66|M- 62234|1$5$19|1$5||container.genre.musicGenre|9212|N- 17844|1$5$12|1$5||container.genre.musicGenre|2674|O- 17001|1$5$F|1$5||container.genre.musicGenre|2528|P- 7381|1$5$A|1$5||container.genre.musicGenre|1090|R- (B-の下) sqlite> select * from OBJECTS where PARENT_ID = '1$5$2' limit 0,16; 153|1$5$2$0|1$5$2||container.person|55|- All Artists - 6191|1$5$2$6|1$5$2|1$6$F|container.person.musicArtist|912|Bach 79471|1$5$2$1B|1$5$2|1$6$8E|container.person.musicArtist|11647|Bach,Bartók,Paganini 75933|1$5$2$19|1$5$2|1$6$8A|container.person.musicArtist|11142|Bach,Messiaen,Dupre,Widor,Frank 18481|1$5$2$B|1$5$2|1$6$37|container.person.musicArtist|2775|Bach,Webern 64678|1$5$2$17|1$5$2|1$6$83|container.person.musicArtist|9570|Balakirev 154|1$5$2$1|1$5$2|1$6$2|container.person.musicArtist|52|Bartók 18632|1$5$2$C|1$5$2|1$6$38|container.person.musicArtist|2800|Bartók,Berg 44087|1$5$2$11|1$5$2|1$6$5D|container.person.musicArtist|6543|Bartók,Janacek,Messiaen 9897|1$5$2$8|1$5$2|1$6$19|container.person.musicArtist|1456|Bartók,Prokofieff 7440|1$5$2$7|1$5$2|1$6$14|container.person.musicArtist|1101|Bartók,Ravel 43494|1$5$2$10|1$5$2|1$6$5C|container.person.musicArtist|6447|Bartók,Schöenberg 60444|1$5$2$15|1$5$2|1$6$7C|container.person.musicArtist|8946|Bartók,Serly 77157|1$5$2$1A|1$5$2|1$6$8C|container.person.musicArtist|11323|Bax 728|1$5$2$4|1$5$2|1$6$A|container.person.musicArtist|162|Beethoven 44813|1$5$2$12|1$5$2|1$6$5F|container.person.musicArtist|6652|Beethoven,Liszt (Bach)の下 sqlite> select * from OBJECTS where PARENT_ID = '1$5$2$6' limit 0,16; 25798|1$5$2$6$B0|1$5$2$6|64$9B$0$0|item.audioItem.musicTrack|3861|01 1. 3声のリチェルカーレ(Ricercare e 3) 42246|1$5$2$6$1A8|1$5$2$6|64$F5$0$0|item.audioItem.musicTrack|6269|01 Aria 65093|1$5$2$6$318|1$5$2$6|64$192$0$0|item.audioItem.musicTrack|9633|01 Aria 102870|1$5$2$6$5DD|1$5$2$6|64$229$0$0|item.audioItem.musicTrack|14946|01 Aria(レイモンドイギリス室内管弦楽団) 90825|1$5$2$6$542|1$5$2$6|64$1FF$0$0|item.audioItem.musicTrack|13250|01 Bach Komm Susser Tod, BWV.478 106150|1$5$2$6$609|1$5$2$6|64$236$0$0|item.audioItem.musicTrack|15404|01 Brandenburg Concerto no. 3 127335|1$5$2$6$6E5|1$5$2$6|64$285$0$0|item.audioItem.musicTrack|18358|01 Chaconne In D minor_Suite In E Ma 59976|1$5$2$6$2C4|1$5$2$6|64$174$0$0|item.audioItem.musicTrack|8882|01 Chromatic Fantasia And Fugue In D 80474|1$5$2$6$4E3|1$5$2$6|64$1D6$0$0|item.audioItem.musicTrack|11800|01 Conc Oboe & Violin C minor - BWV 93990|1$5$2$6$573|1$5$2$6|64$206$0$0|item.audioItem.musicTrack|13677|01 Concerto For Harpsichord & Orches 48563|1$5$2$6$1F9|1$5$2$6|64$128$0$0|item.audioItem.musicTrack|7223|01 Contrapunctus 1 49365|1$5$2$6$22A|1$5$2$6|64$12D$0$0|item.audioItem.musicTrack|7339|01 Contrapunctus 1 127157|1$5$2$6$6DB|1$5$2$6|64$284$2$0|item.audioItem.musicTrack|18332|01 Early Bird 27596|1$5$2$6$C0|1$5$2$6|64$A7$0$0|item.audioItem.musicTrack|4116|01 Fantasia_Adagio - Maestoso (Sonat 95447|1$5$2$6$5C6|1$5$2$6|64$20D$0$0|item.audioItem.musicTrack|13886|01 Fugue En Re Mineur 94122|1$5$2$6$583|1$5$2$6|64$206$1$0|item.audioItem.musicTrack|13695|01 G線上のアリア ~管弦楽組曲 第3番 ニ長調 BWV.1068 第 sqlite> ========= ARTIST->ALBUM ARTIST処理を外したDETAIL例 sqlite> select * from DETAILS where ID = 2375; 2375| /media/hiura/Lexar/iTunes/iTunes_Music/Music/Boulez_New York Phil_/浄夜、叙情組曲 _Boulez_New York Phil_/01 シェーンベルク「浄夜」.m4a| 27932698| 1161993476| シェーンベルク「浄夜」 |0:28:46.146| 128000| 44100| Schöenberg,Berg| Boulez/New York Phil.| 浄夜、叙情組曲 ;Boulez/New York Phil.| S-| | 2| 0| 1| 1977-01-01| | 0| 0| | AAC_ISO_320| audio/mp4