@uimaxbai/am-lyrics 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/AmLyrics.d.ts.map +1 -1
- package/dist/src/am-lyrics.js +78 -60
- package/dist/src/am-lyrics.js.map +1 -1
- package/dist/src/react.js +78 -60
- package/dist/src/react.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/AmLyrics.ts +86 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmLyrics.d.ts","sourceRoot":"","sources":["../../src/AmLyrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAO,MAAM,KAAK,CAAC;AAsHjD,qBAAa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,0BAorCX;IAGF,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,OAAO,CAAC,cAAc,CAAmC;IAGzD,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,cAAc,SAAa;IAG3B,oBAAoB,SAA+B;IAGnD,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,UAAU,UAAQ;IAGlB,WAAW,UAAQ;IAGnB,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,eAAe,CAAS;YAElB,kBAAkB;YAKlB,iBAAiB;YAsBjB,iBAAiB;YAKjB,gBAAgB;IAyC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,YAAY,CAAK;IAEzB,IACI,WAAW,CAAC,KAAK,EAAE,MAAM,EAM5B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAGD,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,MAAM,CAAC,CAAe;IAE9B,OAAO,CAAC,iBAAiB,CAAgB;IAEzC,OAAO,CAAC,qBAAqB,CAAkC;IAE/D,OAAO,CAAC,2BAA2B,CAAkC;IAErE,OAAO,CAAC,gBAAgB,CAAkC;IAE1D,OAAO,CAAC,sBAAsB,CAAkC;IAGhE,OAAO,CAAC,YAAY,CAAuB;IAG3C,OAAO,CAAC,gBAAgB,CAAiD;IAGzE,OAAO,CAAC,kBAAkB,CAAK;IAG/B,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAElC,OAAO,CAAC,kBAAkB,CAGZ;IAEd,OAAO,CAAC,wBAAwB,CAGlB;IAGd,OAAO,CAAC,eAAe,CAAC,CAAc;IAEtC,OAAO,CAAC,qBAAqB,CAAuB;IAEpD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IAGrC,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,gBAAgB,CAAC,CAAgC;IAGzD,OAAO,CAAC,iBAAiB,CAAqB;IAG9C,OAAO,CAAC,aAAa,CAA0B;IAE/C,OAAO,CAAC,wBAAwB,CAA4B;IAE5D,OAAO,CAAC,qBAAqB,CAA4B;IAGzD,OAAO,CAAC,oBAAoB,CAGZ;IAEhB,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO,CAAC,cAAc,CAAqB;IAE3C,OAAO,CAAC,mBAAmB,CAAC,CAAgC;IAE5D,OAAO,CAAC,sBAAsB,CAAC,CAAgC;IAG/D,OAAO,CAAC,oBAAoB,CAAC,CAAkB;IAG/C,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,cAAc,CAA0B;IAGhD,OAAO,CAAC,sBAAsB,CAAoC;IAElE,OAAO,CAAC,qBAAqB,CAAmC;IAEhE,iBAAiB;IAKjB,oBAAoB;YAsCN,WAAW;
|
|
1
|
+
{"version":3,"file":"AmLyrics.d.ts","sourceRoot":"","sources":["../../src/AmLyrics.ts"],"names":[],"mappings":"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"}
|
package/dist/src/am-lyrics.js
CHANGED
|
@@ -319,7 +319,7 @@ class GoogleService {
|
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
321
|
|
|
322
|
-
const VERSION = '1.2.
|
|
322
|
+
const VERSION = '1.2.1';
|
|
323
323
|
const INSTRUMENTAL_THRESHOLD_MS = 7000; // Show dots for gaps >= 7s
|
|
324
324
|
const FETCH_TIMEOUT_MS = 8000; // Timeout for all lyrics fetch requests
|
|
325
325
|
const SEEK_THRESHOLD_MS = 500;
|
|
@@ -542,7 +542,7 @@ class AmLyrics extends i {
|
|
|
542
542
|
if (resolvedMetadata?.metadata && !isMusicIdOnlyRequest) {
|
|
543
543
|
const title = resolvedMetadata.metadata.title?.trim() || '';
|
|
544
544
|
const artist = resolvedMetadata.metadata.artist?.trim() || '';
|
|
545
|
-
const youLyResults = await AmLyrics.fetchLyricsFromYouLyPlus(title, artist, resolvedMetadata.metadata);
|
|
545
|
+
const youLyResults = await AmLyrics.fetchLyricsFromYouLyPlus(title, artist, resolvedMetadata.catalogIsrc, resolvedMetadata.metadata);
|
|
546
546
|
if (youLyResults && youLyResults.length > 0) {
|
|
547
547
|
collectedSources.push(...youLyResults);
|
|
548
548
|
}
|
|
@@ -880,7 +880,7 @@ class AmLyrics extends i {
|
|
|
880
880
|
}
|
|
881
881
|
return null;
|
|
882
882
|
}
|
|
883
|
-
static async fetchLyricsFromYouLyPlus(title, artist, metadata = {}) {
|
|
883
|
+
static async fetchLyricsFromYouLyPlus(title, artist, isrc, metadata = {}) {
|
|
884
884
|
if (!title || !artist)
|
|
885
885
|
return [];
|
|
886
886
|
const params = new URLSearchParams({ title, artist });
|
|
@@ -924,75 +924,93 @@ class AmLyrics extends i {
|
|
|
924
924
|
return 20;
|
|
925
925
|
};
|
|
926
926
|
const allResults = [];
|
|
927
|
-
// Try cache API first
|
|
927
|
+
// Try BiniLyrics cache API first
|
|
928
928
|
try {
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
929
|
+
let cacheData = null;
|
|
930
|
+
// First attempt: Prefer ISRC search if available
|
|
931
|
+
if (isrc) {
|
|
932
|
+
try {
|
|
933
|
+
const isrcUrl = `https://lyrics-api.binimum.org/?isrc=${encodeURIComponent(isrc)}`;
|
|
934
|
+
const isrcRes = await fetchWithTimeout(isrcUrl);
|
|
935
|
+
if (isrcRes.ok) {
|
|
936
|
+
const data = await isrcRes.json();
|
|
937
|
+
if (data.results && data.results.length > 0) {
|
|
938
|
+
cacheData = data;
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
catch (isrcErr) {
|
|
943
|
+
// Fall through to title/artist search
|
|
944
|
+
}
|
|
935
945
|
}
|
|
936
|
-
if
|
|
937
|
-
|
|
946
|
+
// Second attempt: Fallback to title and artist search if ISRC search failed or was not available
|
|
947
|
+
if (!cacheData) {
|
|
948
|
+
const cacheParams = new URLSearchParams({
|
|
949
|
+
track: title,
|
|
950
|
+
artist,
|
|
951
|
+
});
|
|
952
|
+
if (metadata.album) {
|
|
953
|
+
cacheParams.append('album', metadata.album);
|
|
954
|
+
}
|
|
955
|
+
if (metadata.durationMs && metadata.durationMs > 0) {
|
|
956
|
+
cacheParams.append('duration', Math.round(metadata.durationMs / 1000).toString());
|
|
957
|
+
}
|
|
958
|
+
const cacheUrl = `https://lyrics-api.binimum.org/?${cacheParams.toString()}`;
|
|
959
|
+
const cacheRes = await fetchWithTimeout(cacheUrl);
|
|
960
|
+
if (cacheRes.ok) {
|
|
961
|
+
cacheData = await cacheRes.json();
|
|
962
|
+
}
|
|
938
963
|
}
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
964
|
+
if (cacheData && cacheData.results && cacheData.results.length > 0) {
|
|
965
|
+
const result = cacheData.results[0];
|
|
966
|
+
if (result.timing_type === 'word' && result.lyricsUrl) {
|
|
967
|
+
const ttmlRes = await fetchWithTimeout(result.lyricsUrl);
|
|
968
|
+
if (ttmlRes.ok) {
|
|
969
|
+
const ttmlText = await ttmlRes.text();
|
|
970
|
+
const lines = AmLyrics.parseTTML(ttmlText);
|
|
971
|
+
if (lines && lines.length > 0) {
|
|
972
|
+
allResults.push({ lines, source: 'BiniLyrics' });
|
|
973
|
+
return allResults;
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
else {
|
|
978
|
+
// Not word type, try fetching any word synced lyrics from lyricsplus
|
|
979
|
+
const fallbackParams = new URLSearchParams(params);
|
|
980
|
+
const fallbackUrl = `https://lyricsplus.binimum.org/v2/lyrics/get?${fallbackParams.toString()}`;
|
|
981
|
+
try {
|
|
982
|
+
const fallbackRes = await fetchWithTimeout(fallbackUrl);
|
|
983
|
+
if (fallbackRes.ok) {
|
|
984
|
+
const payload = await fallbackRes.json();
|
|
985
|
+
const lines = AmLyrics.convertKPoeLyrics(payload);
|
|
986
|
+
const hasWordSync = lines?.some((line) => line.text && Array.isArray(line.text) && line.text.length > 1);
|
|
987
|
+
if (lines && lines.length > 0 && hasWordSync) {
|
|
988
|
+
const sourceLabel = payload?.metadata?.source ||
|
|
989
|
+
payload?.metadata?.provider ||
|
|
990
|
+
'LyricsPlus (KPoe)';
|
|
991
|
+
allResults.push({ lines, source: sourceLabel });
|
|
992
|
+
return allResults;
|
|
993
|
+
}
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
catch (fallbackError) {
|
|
997
|
+
// Ignore fallback fetch error
|
|
998
|
+
}
|
|
999
|
+
// If fallback fails or has no word sync, fall back to bini lyrics
|
|
1000
|
+
if (result.lyricsUrl) {
|
|
946
1001
|
const ttmlRes = await fetchWithTimeout(result.lyricsUrl);
|
|
947
1002
|
if (ttmlRes.ok) {
|
|
948
1003
|
const ttmlText = await ttmlRes.text();
|
|
949
1004
|
const lines = AmLyrics.parseTTML(ttmlText);
|
|
950
1005
|
if (lines && lines.length > 0) {
|
|
951
|
-
allResults.push({
|
|
1006
|
+
allResults.push({
|
|
1007
|
+
lines,
|
|
1008
|
+
source: 'BiniLyrics',
|
|
1009
|
+
});
|
|
952
1010
|
return allResults;
|
|
953
1011
|
}
|
|
954
1012
|
}
|
|
955
1013
|
}
|
|
956
|
-
else {
|
|
957
|
-
// Not word type, try fetching any word synced lyrics from lyricsplus
|
|
958
|
-
const fallbackParams = new URLSearchParams(params);
|
|
959
|
-
const fallbackUrl = `https://lyricsplus.binimum.org/v2/lyrics/get?${fallbackParams.toString()}`;
|
|
960
|
-
try {
|
|
961
|
-
const fallbackRes = await fetchWithTimeout(fallbackUrl);
|
|
962
|
-
if (fallbackRes.ok) {
|
|
963
|
-
const payload = await fallbackRes.json();
|
|
964
|
-
const lines = AmLyrics.convertKPoeLyrics(payload);
|
|
965
|
-
const hasWordSync = lines?.some((line) => line.text &&
|
|
966
|
-
Array.isArray(line.text) &&
|
|
967
|
-
line.text.length > 1);
|
|
968
|
-
if (lines && lines.length > 0 && hasWordSync) {
|
|
969
|
-
const sourceLabel = payload?.metadata?.source ||
|
|
970
|
-
payload?.metadata?.provider ||
|
|
971
|
-
'LyricsPlus (KPoe)';
|
|
972
|
-
allResults.push({ lines, source: sourceLabel });
|
|
973
|
-
return allResults;
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
catch (fallbackError) {
|
|
978
|
-
// Ignore fallback fetch error
|
|
979
|
-
}
|
|
980
|
-
// If fallback fails or has no word sync, fall back to bini lyrics
|
|
981
|
-
if (result.lyricsUrl) {
|
|
982
|
-
const ttmlRes = await fetchWithTimeout(result.lyricsUrl);
|
|
983
|
-
if (ttmlRes.ok) {
|
|
984
|
-
const ttmlText = await ttmlRes.text();
|
|
985
|
-
const lines = AmLyrics.parseTTML(ttmlText);
|
|
986
|
-
if (lines && lines.length > 0) {
|
|
987
|
-
allResults.push({
|
|
988
|
-
lines,
|
|
989
|
-
source: 'BiniLyrics',
|
|
990
|
-
});
|
|
991
|
-
return allResults;
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
1014
|
}
|
|
997
1015
|
}
|
|
998
1016
|
}
|