项目地址:https://github.com/zhheo/HeoMusic
使用 git clone
命令克隆下最新版的文件到你想要的目录里,我这里就直接放在了 /home/wwwroot/
的网站根目录下
文件树
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
.
├── LICENSE
├── README.md
├── css
│ └── APlayer.css
├── img
│ ├── HeoMusic3.webp
│ ├── cover.webp
│ ├── help.webp
│ ├── icon-r.png
│ ├── icon-r.webp
│ ├── icon-r_mini.png
│ └── icon.webp
├── index.html
├── js
│ ├── APlayer.min.js
│ ├── Meting.js
│ ├── color-thief.min.js
│ ├── localEngine.js
│ └── main.js
├── main.css
├── manifest.json
├── meting-api
│ ├── LICENSE
│ ├── README.md
│ ├── composer.json
│ ├── composer.lock
│ ├── docs
│ │ ├── favicon.png
│ │ └── index.html
│ ├── favicon.png
│ ├── index.php
│ ├── public
│ │ └── index.php
│ ├── src
│ │ └── Meting.php
│ └── vendor
│ ├── autoload.php
│ ├── composer
│ │ ├── ClassLoader.php
│ │ ├── InstalledVersions.php
│ │ ├── LICENSE
│ │ ├── autoload_classmap.php
│ │ ├── autoload_namespaces.php
│ │ ├── autoload_psr4.php
│ │ ├── autoload_real.php
│ │ ├── autoload_static.php
│ │ ├── installed.json
│ │ ├── installed.php
│ │ └── platform_check.php
│ └── metowolf
│ └── meting
│ ├── LICENSE
│ ├── README.md
│ ├── composer.json
│ └── src
│ └── Meting.php
└── update.md
|
一、准备工作
-
一个抓录好的 CD(可以自己抓,也可以从网上找)
大概就是这样的一个文件树
1
2
3
4
|
.
├── BNEI-00166.cue
├── BNEI-00166.flac
└── BNEI-00166.log
|
-
一份带时间戳的歌词(可以自己从网上扒)
-
一个封面
-
一个 Linux 系统(这里使用的是 Debian 10)—–> 部署 music 网页用、转换 CD 用
二、将 CD 转换成 mp3 格式
2.1 .cue + .flac 文件分解成单个歌曲
下载转换工具
-
ffmpeg
:用于音频处理。
-
shntool
:处理音频文件分割。
-
cuetools
:用于解析 .cue
文件。
-
flac
:用于处理 .flac
格式。
1
2
3
|
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt install ffmpeg shntool cuetools flac -y
|
安装完之后,我们首先将 .cue
文件和 .flac
文件放在同一个目录下,由于我这里的文件是我自己自抓的CD,所以本身就在同一个目录下,不用调整
然后使用 cueprint
验证 .cue
文件内容是否与 .flac
文件匹配
1
|
$ cueprint -d '%T %p\n' BNEI-00166.cue
|
由于我这里是自己自抓的,所以可以不用校验
然后使用 shnsplit
命令来将专辑的 flac
文件分解成单曲
1
|
$ shnsplit -f "BNEI-00166.cue" -t "%n %t" -o flac "BNEI-00166.flac"
|
可以看到这样的输出,说明分解成功
1
2
3
4
5
6
7
8
|
$ shnsplit -f "BNEI-00166.cue" -t "%n %t" -o flac "BNEI-00166.flac"
shnsplit: warning: discarding initial zero-valued split point
Splitting [BNEI-00166.flac] (28:16.13) --> [01 Luna say maybe.flac] (4:27.18) : 100% OK
Splitting [BNEI-00166.flac] (28:16.13) --> [02 初 [月村手毬 Solo ver.].flac] (5:19.42) : 100% OK
Splitting [BNEI-00166.flac] (28:16.13) --> [03 Campus mode!! [月村手毬 Solo ver.].flac] (4:21.58) : 100% OK
Splitting [BNEI-00166.flac] (28:16.13) --> [04 Luna say maybe [Instrumental].flac] (4:27.01) : 100% OK
Splitting [BNEI-00166.flac] (28:16.13) --> [05 初 [Instrumental].flac] (5:19.42) : 100% OK
Splitting [BNEI-00166.flac] (28:16.13) --> [06 Campus mode!! [Instrumental].flac] (4:21.02) : 100% OK
|
然后我们新建一个文件夹,把我们刚才输出的单曲全都移进去
1
2
3
4
5
6
7
8
9
10
11
12
|
$ mkdir Single
$ mv 0* single/
$ ll single/
总用量 208560
drwxr-xr-x 2 moka moka 4096 Jan 3 08:04 ./
drwxr-xr-x 4 moka moka 4096 Jan 3 08:04 ../
-rw-r--r-- 1 moka moka 34183856 Jan 3 08:01 '01 Luna say maybe.flac'
-rw-r--r-- 1 moka moka 41056534 Jan 3 08:02 '02 初 [月村手毬 Solo ver.].flac'
-rw-r--r-- 1 moka moka 33272134 Jan 3 08:02 '03 Campus mode!! [月村手毬 Solo ver.].flac'
-rw-r--r-- 1 moka moka 33411287 Jan 3 08:02 '04 Luna say maybe [Instrumental].flac'
-rw-r--r-- 1 moka moka 39011489 Jan 3 08:02 '05 初 [Instrumental].flac'
-rw-r--r-- 1 moka moka 32602328 Jan 3 08:02 '06 Campus mode!! [Instrumental].flac'
|
可以看到都移进来了
然后我们使用 cuetag
为分割后的文件添加元数据
1
|
$ cuetag "BNEI-00166.cue" single/*.flac
|
2.2 单曲的 .flac 文件转换成 .mp3 文件
由于 .flac
文件貌似无法被这个项目所识别,所以我们需要将我们刚刚抓取下来的单曲 .flac
文件转换成 .mp3
文件
我们使用 ffmpeg
工具来转换,由于我们上面已经安装完 ffmpeg
了,所以我们这里可以直接使用命令
1
2
|
$ cd single/
$ ffmpeg -i '03 Campus mode!! [月村手毬 Solo ver.].flac' -q:a 2 -map_metadata 0 '03 Campus mode!! [月村手毬 Solo ver.].mp3'
|
03 Campus mode!! [月村手毬 Solo ver.].flac
:输入文件名。
03 Campus mode!! [月村手毬 Solo ver.].mp3
:输出文件名。
-q:a 0
:设置 MP3 的音质,范围为 0-9(0 为最高品质,9 为最低)
-map_metadata 0
:保留 .flac
文件的元数据(如标题、艺术家、专辑等)
然后我们可以看到类似于下面的输出,即说明成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
$ ffmpeg -i '03 Campus mode!! [月村手毬 Solo ver.].flac' -q:a 2 -map_metadata 0 '03 Campus mode!! [月村手毬 Solo ver.].mp3'
ffmpeg version 4.3.8-0+deb11u1 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, flac, from '03 Campus mode!! [月村手毬 Solo ver.].flac':
Metadata:
TITLE : Campus mode!! [月村手毬 Solo ver.]
ALBUM : 月村手毬 1st Single「Luna say maybe」
track : 03
TRACKTOTAL : 06
ARTIST : 月村手毬(CV.小鹿なお)
PERFORMER : 月村手毬(CV.小鹿なお)
ISRC : JPX832004746
Duration: 00:04:21.77, start: 0.000000, bitrate: 1016 kb/s
Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Stream mapping:
Stream #0:0 -> #0:0 (flac (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to '03 Campus mode!! [月村手毬 Solo ver.].mp3':
Metadata:
TIT2 : Campus mode!! [月村手毬 Solo ver.]
TALB : 月村手毬 1st Single「Luna say maybe」
TRCK : 03
TRACKTOTAL : 06
TPE1 : 月村手毬(CV.小鹿なお)
TPE3 : 月村手毬(CV.小鹿なお)
ISRC : JPX832004746
TSSE : Lavf58.45.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, s16p
Metadata:
encoder : Lavc58.91.100 libmp3lame
[libmp3lame @ 0x55b3e53ce700] Trying to remove 1152 samples, but the queue is empty
size= 6422kB time=00:04:21.79 bitrate= 201.0kbits/s speed=11.8x
video:0kB audio:6422kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.007847%
|
我们也可以用下面的命令来校验一下 .mp3
文件的元数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
$ ffprobe '03 Campus mode!! [月村手毬 Solo ver.].mp3'
ffprobe version 4.3.8-0+deb11u1 Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 10 (Debian 10.2.1-6)
configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, mp3, from '03 Campus mode!! [月村手毬 Solo ver.].mp3':
Metadata:
title : Campus mode!! [月村手毬 Solo ver.]
album : 月村手毬 1st Single「Luna say maybe」
track : 03
TRACKTOTAL : 06
artist : 月村手毬(CV.小鹿なお)
performer : 月村手毬(CV.小鹿なお)
ISRC : JPX832004746
encoder : Lavf58.45.100
Duration: 00:04:21.83, start: 0.025057, bitrate: 200 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 200 kb/s
Metadata:
encoder : Lavc58.91
|
三、获取歌词
这里我常用的是 Apple Music,所以从 Apple Music 的 Web 端获取歌词,其他平台也同理
登录网页端 Apple Music,搜索对应的音乐,比如这首 Campus mode!!
然后放大到有歌词预览的界面,在这里按 F12,找到 Network(网络),在下面的文件列表里面找到 syllable-lyrics
,然后将里面所有的内容都复制下来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"data": [
{
"id": "1749006701",
"type": "syllable-lyrics",
"attributes": {
"ttml": "<tt xmlns=\"http://www.w3.org/ns/ttml\" xmlns:itunes=\"http://music.apple.com/lyric-ttml-internal\" xmlns:ttm=\"http://www.w3.org/ns/ttml#metadata\" itunes:timing=\"Word\" xml:lang=\"ja\"><head><metadata><ttm:agent type=\"person\" xml:id=\"v1\"/><iTunesMetadata xmlns=\"http://music.apple.com/lyric-ttml-internal\" leadingSilence=\"0.880\"><songwriters><songwriter>田淵智也</songwriter></songwriters></iTunesMetadata></metadata></head><body dur=\"4:20.016\"><div begin=\"13.890\" end=\"24.844\" itunes:songPart=\"Chorus\"><p begin=\"13.890\" end=\"18.637\" itunes:key=\"L1\" ttm:agent=\"v1\"><span begin=\"13.890\" end=\"14.579\">ぜったい</span> <span begin=\"14.579\" end=\"15.229\">いっぱい</span> <span begin=\"15.229\" end=\"16.056\">輝け!</span><span begin=\"16.101\" end=\"16.927\">未来を</span><span begin=\"16.927\" end=\"17.977\">明るくしよう、</span><span begin=\"17.977\" end=\"18.637\">するぞ!</span></p><p begin=\"18.637\" end=\"24.844\" itunes:key=\"L2\" ttm:agent=\"v1\"><span begin=\"18.637\" end=\"19.143\">だから</span><span begin=\"19.143\" end=\"19.776\">Stepping</span> <span begin=\"19.776\" end=\"20.332\">now</span> <span begin=\"20.332\" end=\"20.949\">ワタシ</span><span begin=\"20.949\" end=\"21.677\">スピード</span><span begin=\"21.677\" end=\"22.374\">で</span><span begin=\"22.374\" end=\"22.688\">!</span><span begin=\"23.061\" end=\"23.714\">邁進</span><span begin=\"23.714\" end=\"24.425\">あそばせ</span><span begin=\"24.425\" end=\"24.844\">!</span></p></div><div begin=\"26.984\" end=\"31.094\" itunes:songPart=\"Verse\"><p begin=\"26.984\" end=\"31.094\" itunes:key=\"L3\" ttm:agent=\"v1\"><span begin=\"26.984\" end=\"27.375\">Campus</span> <span begin=\"27.375\" end=\"27.663\">modeで</span><span begin=\"27.663\" end=\"28.351\">一緒に</span><span begin=\"28.351\" end=\"28.859\">駆け</span><span begin=\"28.859\" end=\"29.763\">抜けるぞ</span> <span begin=\"29.892\" end=\"31.094\">yeah!</span></p></div><div begin=\"40.246\" end=\"50.435\" itunes:songPart=\"Verse\"><p begin=\"40.246\" end=\"44.830\" itunes:key=\"L4\" ttm:agent=\"v1\"><span begin=\"40.246\" end=\"40.971\">生きとし</span><span begin=\"40.971\" end=\"41.605\">生ける</span><span begin=\"41.605\" end=\"42.112\">人は</span><span begin=\"42.112\" end=\"42.446\">皆</span><span begin=\"42.446\" end=\"42.943\">々</span> <span begin=\"42.943\" end=\"43.410\">悩む</span><span begin=\"43.410\" end=\"43.919\">ように</span><span begin=\"43.919\" end=\"44.325\">でき</span><span begin=\"44.325\" end=\"44.830\">てる</span></p><p begin=\"44.830\" end=\"47.566\" itunes:key=\"L5\" ttm:agent=\"v1\"><span begin=\"44.830\" end=\"45.370\">なんだ</span><span begin=\"45.370\" end=\"45.879\">これは!?</span> <span ttm:role=\"x-bg\"><span begin=\"45.893\" end=\"46.633\">(なんなんだ</span><span begin=\"46.633\" end=\"46.981\">これ</span><span begin=\"46.981\" end=\"47.566\">は!?)</span></span></p><p begin=\"47.212\" end=\"50.435\" itunes:key=\"L6\" ttm:agent=\"v1\"><span begin=\"47.212\" end=\"47.884\">なんだか</span><span begin=\"47.884\" end=\"48.498\">難し</span><span begin=\"48.498\" end=\"49.300\">そうだけど</span> <span begin=\"49.300\" end=\"49.793\">やるぞ</span><span begin=\"49.793\" end=\"50.092\">スタン</span><span begin=\"50.092\" end=\"50.435\">バイ!</span></p></div><div begin=\"50.718\" end=\"59.930\" itunes:songPart=\"Verse\"><p begin=\"50.718\" end=\"55.401\" itunes:key=\"L7\" ttm:agent=\"v1\"><span begin=\"50.718\" end=\"51.246\">壁は</span><span begin=\"51.246\" end=\"52.107\">昇るか?</span><span begin=\"52.107\" end=\"52.545\">穴を</span><span begin=\"52.545\" end=\"53.397\">空けるか?</span><span begin=\"53.397\" end=\"54.169\">抜け道を</span><span begin=\"54.169\" end=\"54.848\">探す</span><span begin=\"54.848\" end=\"55.401\">か?</span></p><p begin=\"55.401\" end=\"59.930\" itunes:key=\"L8\" ttm:agent=\"v1\"><span begin=\"55.401\" end=\"55.845\">どれも</span><span begin=\"55.845\" end=\"56.352\">いいね</span><span begin=\"56.352\" end=\"56.936\">good!</span> <span begin=\"56.936\" end=\"57.699\">自分で</span><span begin=\"57.699\" end=\"58.275\">ちゃんと</span><span begin=\"58.275\" end=\"59.312\">考えたの</span><span begin=\"59.312\" end=\"59.674\">なら</span><span begin=\"59.674\" end=\"59.930\">!</span></p></div><div begin=\"59.966\" end=\"1:22.596\" itunes:songPart=\"Verse\"><p begin=\"59.966\" end=\"1:04.628\" itunes:key=\"L9\" ttm:agent=\"v1\"><span begin=\"59.966\" end=\"1:00.470\">振りの</span><span begin=\"1:00.470\" end=\"1:01.139\">ポーズが</span><span begin=\"1:01.139\" end=\"1:01.726\">全然</span><span begin=\"1:01.726\" end=\"1:02.548\">キマらない</span> <span ttm:role=\"x-bg\"><span begin=\"1:02.552\" end=\"1:03.590\">(焦んないで</span><span begin=\"1:03.590\" end=\"1:03.988\">日々</span><span begin=\"1:03.988\" end=\"1:04.263\">日々</span><span begin=\"1:04.263\" end=\"1:04.628\">go!)</span></span></p><p begin=\"1:05.194\" end=\"1:09.506\" itunes:key=\"L10\" ttm:agent=\"v1\"><span begin=\"1:05.194\" end=\"1:05.713\">歌の</span><span begin=\"1:05.713\" end=\"1:06.338\">ピッチも</span><span begin=\"1:06.338\" end=\"1:07.017\">ちっとも</span><span begin=\"1:07.017\" end=\"1:07.766\">合わない</span> <span ttm:role=\"x-bg\"><span begin=\"1:07.752\" end=\"1:08.372\">(まずは</span><span begin=\"1:08.372\" end=\"1:09.097\">エンジョイ</span><span begin=\"1:09.097\" end=\"1:09.506\">でしょ!)</span></span></p><p begin=\"1:09.516\" end=\"1:15.697\" itunes:key=\"L11\" ttm:agent=\"v1\"><span begin=\"1:09.516\" end=\"1:10.419\">負けないぞ</span> <span begin=\"1:10.419\" end=\"1:11.011\">敵は</span><span begin=\"1:11.011\" end=\"1:11.719\">自分</span><span begin=\"1:11.719\" end=\"1:12.361\">自身</span> <span begin=\"1:12.361\" end=\"1:13.009\">昨日</span><span begin=\"1:13.009\" end=\"1:13.630\">よりも</span><span begin=\"1:13.630\" end=\"1:14.524\">素敵な</span><span begin=\"1:14.524\" end=\"1:14.901\">私を</span><span begin=\"1:14.901\" end=\"1:15.697\">目指すの</span></p><p begin=\"1:15.837\" end=\"1:22.596\" itunes:key=\"L12\" ttm:agent=\"v1\"><span begin=\"1:15.837\" end=\"1:17.102\">目指した</span><span begin=\"1:17.102\" end=\"1:18.117\">先で</span> <span begin=\"1:18.117\" end=\"1:19.211\">キラキラ</span><span begin=\"1:19.211\" end=\"1:19.824\">ステージの</span><span begin=\"1:19.824\" end=\"1:20.370\">幕が</span><span begin=\"1:20.370\" end=\"1:20.707\">開</span><span begin=\"1:20.707\" end=\"1:22.596\">く</span> <span ttm:role=\"x-bg\"><span begin=\"1:20.913\" end=\"1:21.866\">(可能性を</span><span begin=\"1:21.866\" end=\"1:22.596\">信じて!)</span></span></p></div><div begin=\"1:22.606\" end=\"1:44.690\" itunes:songPart=\"Chorus\"><p begin=\"1:22.606\" end=\"1:27.724\" itunes:key=\"L13\" ttm:agent=\"v1\"><span begin=\"1:22.606\" end=\"1:23.398\">高まるぞ!</span><span begin=\"1:23.398\" end=\"1:24.043\">ぜったい</span> <span begin=\"1:24.043\" end=\"1:24.676\">いっぱい</span> <span begin=\"1:24.676\" end=\"1:25.458\">輝け!</span><span begin=\"1:25.458\" end=\"1:26.358\">人生は</span><span begin=\"1:26.358\" end=\"1:27.170\">一度きり</span><span begin=\"1:27.170\" end=\"1:27.724\">なんだ</span></p><p begin=\"1:27.724\" end=\"1:33.411\" itunes:key=\"L14\" ttm:agent=\"v1\"><span begin=\"1:27.724\" end=\"1:28.620\">そう君が</span> <span begin=\"1:28.620\" end=\"1:29.260\">勇気を</span><span begin=\"1:29.260\" end=\"1:29.752\">さ</span> <span begin=\"1:29.752\" end=\"1:30.558\">元気を</span><span begin=\"1:30.558\" end=\"1:30.836\">さ</span> <span begin=\"1:30.836\" end=\"1:31.527\">くれたんだよ</span> <span begin=\"1:31.527\" end=\"1:31.930\">何度も</span><span begin=\"1:31.930\" end=\"1:32.248\">何度も</span><span begin=\"1:32.248\" end=\"1:32.607\">何度も</span><span begin=\"1:32.607\" end=\"1:33.411\">ありがとう!</span></p><p begin=\"1:33.411\" end=\"1:38.283\" itunes:key=\"L15\" ttm:agent=\"v1\"><span begin=\"1:33.411\" end=\"1:34.137\">「できる!」って</span><span begin=\"1:34.137\" end=\"1:34.734\">叫ぼう</span> <span begin=\"1:34.734\" end=\"1:35.484\">「できる!」って</span><span begin=\"1:35.484\" end=\"1:36.049\">笑おう</span> <span begin=\"1:36.049\" end=\"1:36.884\">「できる!」って</span><span begin=\"1:36.884\" end=\"1:37.677\">走りだ</span><span begin=\"1:37.677\" end=\"1:38.283\">そう</span></p><p begin=\"1:38.030\" end=\"1:39.149\" itunes:key=\"L16\" ttm:agent=\"v1\"><span begin=\"1:38.030\" end=\"1:38.638\">いざゆけ</span><span begin=\"1:38.638\" end=\"1:39.149\">乙女!</span></p><p begin=\"1:39.149\" end=\"1:44.690\" itunes:key=\"L17\" ttm:agent=\"v1\"><span begin=\"1:39.149\" end=\"1:39.758\">Stepping</span> <span begin=\"1:39.758\" end=\"1:40.260\">now</span> <span begin=\"1:40.260\" end=\"1:40.924\">ワタシ</span><span begin=\"1:40.924\" end=\"1:41.628\">スピード</span><span begin=\"1:41.628\" end=\"1:42.287\">で</span><span begin=\"1:42.287\" end=\"1:42.839\">!</span><span begin=\"1:43.005\" end=\"1:43.752\">どうにも</span><span begin=\"1:43.752\" end=\"1:44.270\">止まら</span><span begin=\"1:44.270\" end=\"1:44.690\">ない!</span></p></div><div begin=\"1:44.690\" end=\"1:52.286\" itunes:songPart=\"Chorus\"><p begin=\"1:44.690\" end=\"1:47.202\" itunes:key=\"L18\" ttm:agent=\"v1\"><span begin=\"1:44.690\" end=\"1:45.017\">yeah</span> <span begin=\"1:45.017\" end=\"1:45.321\">yeah</span> <span begin=\"1:45.321\" end=\"1:45.687\">yeah</span> <span begin=\"1:45.687\" end=\"1:46.040\">続</span><span begin=\"1:46.040\" end=\"1:46.260\">け</span><span begin=\"1:46.260\" end=\"1:46.742\">Campus</span> <span begin=\"1:46.742\" end=\"1:47.202\">road</span></p><p begin=\"1:47.308\" end=\"1:49.833\" itunes:key=\"L19\" ttm:agent=\"v1\"><span begin=\"1:47.308\" end=\"1:47.616\">wow</span> <span begin=\"1:47.616\" end=\"1:47.928\">wow</span> <span begin=\"1:47.928\" end=\"1:48.272\">wow</span> <span begin=\"1:48.272\" end=\"1:48.808\">行くぞ</span><span begin=\"1:48.808\" end=\"1:49.278\">Campus</span> <span begin=\"1:49.278\" end=\"1:49.833\">mode</span></p><p begin=\"1:49.854\" end=\"1:52.286\" itunes:key=\"L20\" ttm:agent=\"v1\"><span begin=\"1:49.854\" end=\"1:50.195\">yeah</span> <span begin=\"1:50.195\" end=\"1:50.539\">yeah</span> <span begin=\"1:50.539\" end=\"1:50.894\">yeah</span> <span begin=\"1:50.894\" end=\"1:51.443\">続け</span><span begin=\"1:51.443\" end=\"1:51.947\">Campus</span> <span begin=\"1:51.947\" end=\"1:52.286\">road</span></p></div><div begin=\"1:52.296\" end=\"1:54.964\" itunes:songPart=\"Verse\"><p begin=\"1:52.296\" end=\"1:54.964\" itunes:key=\"L21\" ttm:agent=\"v1\"><span begin=\"1:52.296\" end=\"1:52.451\">まだ</span><span begin=\"1:52.451\" end=\"1:52.685\">まだ</span><span begin=\"1:52.685\" end=\"1:53.039\">行きます</span><span begin=\"1:53.039\" end=\"1:53.509\">よ</span> <span begin=\"1:53.509\" end=\"1:53.819\">on</span> <span begin=\"1:53.819\" end=\"1:54.115\">the</span> <span begin=\"1:54.115\" end=\"1:54.964\">stage!</span></p></div><div begin=\"1:55.049\" end=\"2:06.086\" itunes:songPart=\"Verse\"><p begin=\"1:55.049\" end=\"1:59.580\" itunes:key=\"L22\" ttm:agent=\"v1\"><span begin=\"1:55.049\" end=\"1:55.527\">道を</span><span begin=\"1:55.527\" end=\"1:56.263\">刻んだ</span><span begin=\"1:56.263\" end=\"1:56.951\">偉大な</span><span begin=\"1:56.951\" end=\"1:57.559\">歴史</span> <span begin=\"1:57.559\" end=\"1:58.284\">忘れず</span><span begin=\"1:58.284\" end=\"1:59.225\">リスペクト</span><span begin=\"1:59.225\" end=\"1:59.580\">だ</span></p><p begin=\"1:59.580\" end=\"2:01.949\" itunes:key=\"L23\" ttm:agent=\"v1\"><span begin=\"1:59.580\" end=\"2:00.392\">すごすぎる</span><span begin=\"2:00.392\" end=\"2:00.694\">ぞ!</span> <span ttm:role=\"x-bg\"><span begin=\"2:00.711\" end=\"2:01.280\">(ほんとに</span><span begin=\"2:01.280\" end=\"2:01.729\">すごい</span><span begin=\"2:01.729\" end=\"2:01.949\">ぞ!)</span></span></p><p begin=\"2:01.959\" end=\"2:06.086\" itunes:key=\"L24\" ttm:agent=\"v1\"><span begin=\"2:01.959\" end=\"2:02.252\">じゃあ</span><span begin=\"2:02.252\" end=\"2:02.617\">その</span><span begin=\"2:02.617\" end=\"2:03.538\">すごすぎる</span><span begin=\"2:03.538\" end=\"2:04.087\">バトン</span><span begin=\"2:04.087\" end=\"2:04.539\">ちゃんと</span><span begin=\"2:04.539\" end=\"2:04.975\">握っ</span><span begin=\"2:04.975\" end=\"2:05.434\">て</span> <span ttm:role=\"x-bg\"><span begin=\"2:05.427\" end=\"2:05.814\">(せー</span><span begin=\"2:05.814\" end=\"2:06.086\">の!)</span></span></p></div><div begin=\"2:06.096\" end=\"2:26.561\" itunes:songPart=\"Verse\"><p begin=\"2:06.096\" end=\"2:10.765\" itunes:key=\"L25\" ttm:agent=\"v1\"><span begin=\"2:06.096\" end=\"2:06.642\">腕は</span><span begin=\"2:06.642\" end=\"2:07.539\">振れるか?</span><span begin=\"2:07.539\" end=\"2:08.078\">前を</span><span begin=\"2:08.078\" end=\"2:08.808\">向けるか?</span><span begin=\"2:08.808\" end=\"2:09.536\">未来を</span><span begin=\"2:09.536\" end=\"2:10.404\">作れる</span><span begin=\"2:10.404\" end=\"2:10.765\">か?</span></p><p begin=\"2:10.765\" end=\"2:13.659\" itunes:key=\"L26\" ttm:agent=\"v1\"><span begin=\"2:10.765\" end=\"2:11.229\">これが</span><span begin=\"2:11.229\" end=\"2:11.762\">つまり</span><span begin=\"2:11.762\" end=\"2:12.349\">そうだ</span> <span begin=\"2:12.349\" end=\"2:13.071\">アイドル</span><span begin=\"2:13.071\" end=\"2:13.659\">なんだ</span></p><p begin=\"2:13.659\" end=\"2:16.859\" itunes:key=\"L27\" ttm:agent=\"v1\"><span begin=\"2:13.659\" end=\"2:14.505\">全力で</span><span begin=\"2:14.505\" end=\"2:14.996\">マスター!</span><span begin=\"2:14.996\" end=\"2:15.852\">お待たせ</span><span begin=\"2:15.852\" end=\"2:16.859\">しました!</span></p><p begin=\"2:16.517\" end=\"2:18.968\" itunes:key=\"L28\" ttm:agent=\"v1\"><span begin=\"2:16.517\" end=\"2:16.806\">順風</span><span begin=\"2:16.806\" end=\"2:17.258\">満帆</span> <span begin=\"2:17.258\" end=\"2:17.524\">やだ!</span><span begin=\"2:17.524\" end=\"2:17.834\">それなら</span><span begin=\"2:17.834\" end=\"2:18.304\">スカートの</span><span begin=\"2:18.304\" end=\"2:18.610\">裾に</span><span begin=\"2:18.610\" end=\"2:18.968\">注意!</span></p><p begin=\"2:18.968\" end=\"2:21.511\" itunes:key=\"L29\" ttm:agent=\"v1\"><span begin=\"2:18.968\" end=\"2:20.160\">アクシデント、</span><span begin=\"2:20.327\" end=\"2:20.745\">気を</span><span begin=\"2:20.745\" end=\"2:21.511\">つけて!</span></p><p begin=\"2:21.676\" end=\"2:24.477\" itunes:key=\"L30\" ttm:agent=\"v1\"><span begin=\"2:21.676\" end=\"2:22.213\">一礼</span><span begin=\"2:22.213\" end=\"2:22.474\">してから</span><span begin=\"2:22.474\" end=\"2:22.992\">挑戦</span> <span begin=\"2:23.034\" end=\"2:23.458\">挑戦</span><span begin=\"2:23.458\" end=\"2:23.885\">したんなら</span><span begin=\"2:23.885\" end=\"2:24.477\">一礼!</span></p><p begin=\"2:24.226\" end=\"2:26.561\" itunes:key=\"L31\" ttm:agent=\"v1\"><span begin=\"2:24.226\" end=\"2:25.396\">ひたむきさ</span><span begin=\"2:25.483\" end=\"2:26.198\">大事</span><span begin=\"2:26.198\" end=\"2:26.561\">です</span></p></div><div begin=\"2:26.561\" end=\"2:29.297\" itunes:songPart=\"Verse\"><p begin=\"2:26.561\" end=\"2:29.297\" itunes:key=\"L32\" ttm:agent=\"v1\"><span begin=\"2:26.561\" end=\"2:27.112\">諦</span><span begin=\"2:27.112\" end=\"2:27.342\">め</span><span begin=\"2:27.342\" end=\"2:27.769\">ない</span><span begin=\"2:27.769\" end=\"2:28.202\">から、</span><span begin=\"2:28.202\" end=\"2:28.680\">見て</span><span begin=\"2:28.680\" end=\"2:29.297\">てね!</span></p></div><div begin=\"2:28.855\" end=\"2:50.910\" itunes:songPart=\"Chorus\"><p begin=\"2:28.855\" end=\"2:33.950\" itunes:key=\"L33\" ttm:agent=\"v1\"><span begin=\"2:28.855\" end=\"2:29.592\">つまりは</span><span begin=\"2:29.592\" end=\"2:30.214\">後悔</span><span begin=\"2:30.214\" end=\"2:30.798\">なんて</span><span begin=\"2:30.798\" end=\"2:31.753\">しないよ</span> <span begin=\"2:31.753\" end=\"2:32.418\">私</span><span begin=\"2:32.418\" end=\"2:32.657\">が</span><span begin=\"2:32.657\" end=\"2:33.128\">決めた</span><span begin=\"2:33.128\" end=\"2:33.453\">道</span><span begin=\"2:33.453\" end=\"2:33.950\">なんだ</span></p><p begin=\"2:33.960\" end=\"2:39.645\" itunes:key=\"L34\" ttm:agent=\"v1\"><span begin=\"2:33.960\" end=\"2:34.915\">そう君も</span> <span begin=\"2:34.915\" end=\"2:35.430\">最初</span><span begin=\"2:35.430\" end=\"2:36.092\">から</span> <span begin=\"2:36.092\" end=\"2:36.658\">最後</span><span begin=\"2:36.658\" end=\"2:37.083\">まで</span> <span begin=\"2:37.083\" end=\"2:37.562\">応援</span><span begin=\"2:37.562\" end=\"2:37.878\">して</span><span begin=\"2:37.878\" end=\"2:38.517\">信じて愛して</span><span begin=\"2:38.517\" end=\"2:39.031\">着いてきて</span><span begin=\"2:39.031\" end=\"2:39.645\">欲しい!</span></p><p begin=\"2:39.645\" end=\"2:45.368\" itunes:key=\"L35\" ttm:agent=\"v1\"><span begin=\"2:39.645\" end=\"2:39.987\">論</span><span begin=\"2:39.987\" end=\"2:40.461\">より</span><span begin=\"2:40.461\" end=\"2:40.989\">証拠?</span> <span begin=\"2:40.989\" end=\"2:41.594\">結果</span><span begin=\"2:41.594\" end=\"2:41.949\">より</span><span begin=\"2:41.949\" end=\"2:42.362\">過程?</span> <span begin=\"2:42.362\" end=\"2:43.055\">いや全部</span><span begin=\"2:43.055\" end=\"2:43.883\">譲れない</span><span begin=\"2:43.883\" end=\"2:44.257\">ね</span> <span begin=\"2:44.257\" end=\"2:44.933\">欲張れ</span><span begin=\"2:44.933\" end=\"2:45.368\">乙女!</span></p><p begin=\"2:45.368\" end=\"2:50.910\" itunes:key=\"L36\" ttm:agent=\"v1\"><span begin=\"2:45.368\" end=\"2:45.746\">Rush</span> <span begin=\"2:45.746\" end=\"2:46.066\">&</span> <span begin=\"2:46.066\" end=\"2:46.565\">dash</span> <span begin=\"2:46.576\" end=\"2:47.187\">ワタシ</span><span begin=\"2:47.187\" end=\"2:47.878\">スピード</span><span begin=\"2:47.878\" end=\"2:49.118\">は</span><span begin=\"2:49.315\" end=\"2:49.886\">計測</span><span begin=\"2:49.886\" end=\"2:50.910\">できません!</span></p></div><div begin=\"2:50.328\" end=\"3:01.256\" itunes:songPart=\"Chorus\"><p begin=\"2:50.328\" end=\"2:55.614\" itunes:key=\"L37\" ttm:agent=\"v1\"><span begin=\"2:50.328\" end=\"2:51.214\">失敗</span><span begin=\"2:51.214\" end=\"2:51.822\">したって</span><span begin=\"2:51.822\" end=\"2:52.698\">いいんだよ</span> <span begin=\"2:52.698\" end=\"2:53.143\">学</span><span begin=\"2:53.143\" end=\"2:53.626\">びの</span><span begin=\"2:53.626\" end=\"2:54.152\">チャンス</span> <span begin=\"2:54.152\" end=\"2:54.893\">成長の</span><span begin=\"2:54.893\" end=\"2:55.614\">合図</span></p><p begin=\"2:55.125\" end=\"3:01.256\" itunes:key=\"L38\" ttm:agent=\"v1\"><span begin=\"2:55.125\" end=\"2:55.810\">まだまだ</span><span begin=\"2:55.810\" end=\"2:56.442\">伸び</span><span begin=\"2:56.442\" end=\"2:57.157\">しろ</span><span begin=\"2:57.157\" end=\"2:57.925\">あります</span> <span begin=\"2:57.925\" end=\"2:58.341\">そんな</span><span begin=\"2:58.341\" end=\"2:58.877\">感じで</span><span begin=\"2:58.877\" end=\"2:59.629\">Campus modeは</span><span begin=\"2:59.629\" end=\"3:00.376\">無限大</span><span begin=\"3:00.376\" end=\"3:01.256\">まで!</span></p></div><div begin=\"3:13.652\" end=\"3:23.882\" itunes:songPart=\"Bridge\"><p begin=\"3:13.652\" end=\"3:17.080\" itunes:key=\"L39\" ttm:agent=\"v1\"><span begin=\"3:13.652\" end=\"3:14.402\">君と</span><span begin=\"3:14.402\" end=\"3:14.970\">私</span><span begin=\"3:14.970\" end=\"3:15.377\">で見</span><span begin=\"3:15.377\" end=\"3:15.741\">た</span><span begin=\"3:15.741\" end=\"3:16.080\">ことない</span><span begin=\"3:16.080\" end=\"3:16.558\">景色を</span><span begin=\"3:16.558\" end=\"3:17.080\">見よう</span></p><p begin=\"3:17.180\" end=\"3:23.882\" itunes:key=\"L40\" ttm:agent=\"v1\"><span begin=\"3:17.180\" end=\"3:17.796\">見た</span><span begin=\"3:17.796\" end=\"3:18.740\">ことない</span><span begin=\"3:18.740\" end=\"3:19.412\">ステージ!</span><span begin=\"3:19.412\" end=\"3:20.018\">きっと</span><span begin=\"3:20.018\" end=\"3:20.497\">きっと</span><span begin=\"3:20.497\" end=\"3:21.189\">たどり</span><span begin=\"3:21.189\" end=\"3:21.961\">着けるよ</span><span begin=\"3:21.961\" end=\"3:23.882\">ね</span> <span ttm:role=\"x-bg\"><span begin=\"3:22.227\" end=\"3:23.256\">(可能性を</span><span begin=\"3:23.256\" end=\"3:23.882\">信じて!)</span></span></p></div><div begin=\"3:23.892\" end=\"3:32.182\" itunes:songPart=\"Chorus\"><p begin=\"3:23.892\" end=\"3:30.190\" itunes:key=\"L41\" ttm:agent=\"v1\"><span begin=\"3:23.892\" end=\"3:25.051\">信じたら</span> <span begin=\"3:25.369\" end=\"3:26.018\">ぜったい</span> <span begin=\"3:26.018\" end=\"3:26.672\">いっぱい</span> <span begin=\"3:26.672\" end=\"3:27.183\">輝</span><span begin=\"3:27.183\" end=\"3:27.557\">け!</span><span begin=\"3:27.557\" end=\"3:28.360\">未来を</span><span begin=\"3:28.360\" end=\"3:29.429\">明るくしよう、</span><span begin=\"3:29.429\" end=\"3:30.190\">するぞ!</span></p><p begin=\"3:30.190\" end=\"3:32.182\" itunes:key=\"L42\" ttm:agent=\"v1\"><span begin=\"3:30.190\" end=\"3:30.570\">だから</span><span begin=\"3:30.570\" end=\"3:30.942\">Campus</span> <span begin=\"3:30.942\" end=\"3:31.260\">modeで</span> <span begin=\"3:31.260\" end=\"3:31.619\">もういっ</span><span begin=\"3:31.619\" end=\"3:31.919\">ちょ</span><span begin=\"3:31.919\" end=\"3:32.182\">!</span></p></div><div begin=\"3:32.430\" end=\"4:00.196\" itunes:songPart=\"Chorus\"><p begin=\"3:32.430\" end=\"3:37.579\" itunes:key=\"L43\" ttm:agent=\"v1\"><span begin=\"3:32.430\" end=\"3:33.187\">高まるぞ!</span><span begin=\"3:33.187\" end=\"3:33.870\">ぜったい</span> <span begin=\"3:33.870\" end=\"3:34.553\">いっぱい</span> <span begin=\"3:34.553\" end=\"3:35.043\">輝</span><span begin=\"3:35.043\" end=\"3:35.376\">け!</span><span begin=\"3:35.376\" end=\"3:36.158\">人生は</span><span begin=\"3:36.158\" end=\"3:36.763\">一度</span><span begin=\"3:36.763\" end=\"3:37.051\">きり</span><span begin=\"3:37.051\" end=\"3:37.579\">なんだ</span></p><p begin=\"3:37.579\" end=\"3:43.315\" itunes:key=\"L44\" ttm:agent=\"v1\"><span begin=\"3:37.579\" end=\"3:38.475\">そう君が</span> <span begin=\"3:38.475\" end=\"3:39.115\">勇気を</span><span begin=\"3:39.115\" end=\"3:39.607\">さ</span> <span begin=\"3:39.607\" end=\"3:40.413\">元気を</span><span begin=\"3:40.413\" end=\"3:40.691\">さ</span> <span begin=\"3:40.691\" end=\"3:41.382\">くれたんだよ</span> <span begin=\"3:41.382\" end=\"3:41.785\">何度も</span><span begin=\"3:41.785\" end=\"3:42.103\">何度も</span><span begin=\"3:42.103\" end=\"3:42.462\">何度も</span><span begin=\"3:42.462\" end=\"3:43.315\">ありがとう!</span></p><p begin=\"3:43.325\" end=\"3:48.091\" itunes:key=\"L45\" ttm:agent=\"v1\"><span begin=\"3:43.325\" end=\"3:43.958\">「できる!」って</span><span begin=\"3:43.958\" end=\"3:44.635\">叫ぼう</span> <span begin=\"3:44.635\" end=\"3:45.318\">「できる!」って</span><span begin=\"3:45.318\" end=\"3:45.962\">笑おう</span> <span begin=\"3:45.962\" end=\"3:46.738\">「できる!」って</span><span begin=\"3:46.738\" end=\"3:47.399\">走りだ</span><span begin=\"3:47.399\" end=\"3:48.091\">そう</span></p><p begin=\"3:47.713\" end=\"3:48.975\" itunes:key=\"L46\" ttm:agent=\"v1\"><span begin=\"3:47.713\" end=\"3:48.470\">いざゆけ</span><span begin=\"3:48.470\" end=\"3:48.975\">乙女!</span></p><p begin=\"3:48.985\" end=\"3:54.205\" itunes:key=\"L47\" ttm:agent=\"v1\"><span begin=\"3:48.985\" end=\"3:49.573\">Stepping</span> <span begin=\"3:49.573\" end=\"3:50.197\">now</span> <span begin=\"3:50.197\" end=\"3:50.803\">ワタシ</span><span begin=\"3:50.803\" end=\"3:51.504\">スピード</span><span begin=\"3:51.504\" end=\"3:52.478\">で!</span><span begin=\"3:52.847\" end=\"3:53.558\">邁進</span><span begin=\"3:53.558\" end=\"3:54.205\">nowです</span></p><p begin=\"3:54.205\" end=\"4:00.196\" itunes:key=\"L48\" ttm:agent=\"v1\"><span begin=\"3:54.205\" end=\"3:54.859\">Stepping</span> <span begin=\"3:54.859\" end=\"3:55.414\">now</span> <span begin=\"3:55.414\" end=\"3:56.687\">ワタシスピード</span><span begin=\"3:56.687\" end=\"3:57.628\">で!</span><span begin=\"3:57.971\" end=\"3:58.820\">一緒に</span><span begin=\"3:58.820\" end=\"3:59.491\">駆けてい</span><span begin=\"3:59.491\" end=\"4:00.196\">こう!</span></p></div><div begin=\"3:59.792\" end=\"4:11.500\" itunes:songPart=\"Chorus\"><p begin=\"3:59.792\" end=\"4:02.304\" itunes:key=\"L49\" ttm:agent=\"v1\"><span begin=\"3:59.792\" end=\"4:00.119\">yeah</span> <span begin=\"4:00.119\" end=\"4:00.423\">yeah</span> <span begin=\"4:00.423\" end=\"4:00.754\">yeah</span> <span begin=\"4:00.754\" end=\"4:01.139\">続</span><span begin=\"4:01.139\" end=\"4:01.335\">け</span><span begin=\"4:01.335\" end=\"4:01.851\">Campus</span> <span begin=\"4:01.851\" end=\"4:02.304\">road</span></p><p begin=\"4:02.344\" end=\"4:04.869\" itunes:key=\"L50\" ttm:agent=\"v1\"><span begin=\"4:02.344\" end=\"4:02.652\">wow</span> <span begin=\"4:02.652\" end=\"4:02.964\">wow</span> <span begin=\"4:02.964\" end=\"4:03.308\">wow</span> <span begin=\"4:03.308\" end=\"4:03.930\">行くぞ</span><span begin=\"4:03.930\" end=\"4:04.355\">Campus</span> <span begin=\"4:04.355\" end=\"4:04.869\">mode</span></p><p begin=\"4:04.967\" end=\"4:07.479\" itunes:key=\"L51\" ttm:agent=\"v1\"><span begin=\"4:04.967\" end=\"4:05.294\">yeah</span> <span begin=\"4:05.294\" end=\"4:05.598\">yeah</span> <span begin=\"4:05.598\" end=\"4:05.929\">yeah</span> <span begin=\"4:05.929\" end=\"4:06.314\">続</span><span begin=\"4:06.314\" end=\"4:06.510\">け</span><span begin=\"4:06.510\" end=\"4:07.026\">Campus</span> <span begin=\"4:07.026\" end=\"4:07.479\">road</span></p><p begin=\"4:07.562\" end=\"4:11.500\" itunes:key=\"L52\" ttm:agent=\"v1\"><span begin=\"4:07.562\" end=\"4:07.870\">wow</span> <span begin=\"4:07.870\" end=\"4:08.182\">wow</span> <span begin=\"4:08.182\" end=\"4:08.526\">wow</span> <span begin=\"4:08.526\" end=\"4:09.148\">行くぞ</span><span begin=\"4:09.148\" end=\"4:09.673\">Campus</span> <span begin=\"4:09.673\" end=\"4:09.925\">mo</span><span begin=\"4:09.925\" end=\"4:11.500\">de</span></p></div></body></tt>",
"playParams": {
"id": "AP_1749006701",
"kind": "lyric",
"catalogId": "1749006701",
"displayType": 3
}
}
}
]
}
|
然后询问 ChatGPT,让他把这里面 ttml
的内容转换成有时间戳的歌词,并将这个歌词转换成 .lrc
版输出出来
如果提示太长,无法输入,就把他新建一个 lyrics.json
文件,然后把内容复制粘贴上去,给 ChatGPT 吃 json 文件
这边也提供了一个可以将上面的 lyrics.json
文件转换成 .ttml
文件的 python 脚本
最后生成的是类似这样的文件,带时间戳 [mm:ss.ms]
和歌词的
1
2
3
4
5
|
[00:13.89]ぜったいいっぱい輝け!未来を明るくしよう、するぞ!
[00:18.64]だからSteppingnowワタシスピードで!邁進あそばせ!
[00:26.98]Campusmodeで一緒に駆け抜けるぞyeah!
[00:40.25]生きとし生ける人は皆々悩むようにできてる
[00:44.83]なんだこれは!?(なんなんだこれは!?)
|
三、编辑 index.html
在播放器根目录下新建一个和歌曲名有关的文件夹(这里是 CampusMode_月村手毬solo
),然后将 歌曲、封面、歌词 都传上去,并填入对应的 url
cover
lrc
下,并完善 name
和 artist
等细节
编辑播放器根目录下的 index.html
文件 下面的 <script>
标签
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<script>
var userType = "playlist";
var localMusic =[{
name: 'Luna say maybe',
artist: '月村手毬',
url: 'Luna_say_maybe_月村手毬/music.mp3',
cover: 'Luna_say_maybe_月村手毬/cover.jpg',
lrc: 'Luna_say_maybe_月村手毬/LunaSayMaybe.lrc'
},
{
name: 'Campus mode!! [月村手毬 Solo ver.]',
artist: '月村手毬',
url: 'CampusMode_月村手毬solo/music.mp3',
cover: 'CampusMode_月村手毬solo/cover.jpg',
lrc: 'CampusMode_月村手毬solo/Campusmode!!.lrc'
}
];
</script>
|
四、配置 nginx 配置文件
可以在主网站下面的 nginx 配置文件里添加上这么一段配置
1
2
3
4
5
|
# 配置 /music 路径
location /music {
root /home/wwwroot;
index index.html;
}
|
比方说这个网站
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
server {
listen 80;
server_name anitsuri.top;
# 重定向 HTTP 到 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name anitsuri.top;
# SSL 配置
......
# 网站根目录
root /home/wwwroot/site;
index index.html;
# 配置 /music 路径
location /music {
root /home/wwwroot;
index index.html;
}
# 额外的安全配置
......
}
|
那这样出来的 URL 就是 https://anitsuri.top/music
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import json
import sys
from xml.dom.minidom import parseString
def format_ttml(ttml_content):
"""Format TTML content to make it more readable."""
try:
dom = parseString(ttml_content)
return dom.toprettyxml(indent=" ")
except Exception as e:
print(f"Error formatting TTML: {e}")
return ttml_content
def extract_ttml_from_json(json_file, output_ttml):
"""Extract TTML content from JSON file and write to formatted TTML file."""
try:
with open(json_file, 'r', encoding='utf-8') as f:
data = json.load(f)
# Assuming the TTML content is located at data['data'][0]['attributes']['ttml']
ttml_content = data['data'][0]['attributes']['ttml']
# Format the TTML content
formatted_ttml = format_ttml(ttml_content)
# Write the formatted TTML content to the output file
with open(output_ttml, 'w', encoding='utf-8') as ttml_file:
ttml_file.write(formatted_ttml)
print(f"TTML content extracted and saved to {output_ttml}")
except KeyError as e:
print(f"Error: Missing key in JSON structure - {e}")
except Exception as e:
print(f"Error: {e}")
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: python extract_ttml.py <input_json_file> <output_ttml_file>")
else:
input_json = sys.argv[1]
output_ttml = sys.argv[2]
extract_ttml_from_json(input_json, output_ttml)
|