Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ddddxxx/LyricsKit

Lyrics submodule for LyricsX
https://github.com/ddddxxx/LyricsKit

combine-compatible-package lyrics

Last synced: 3 months ago
JSON representation

Lyrics submodule for LyricsX

Awesome Lists containing this project

README

        

# LyricsKit

Lyrics submodule for [LyricsX](https://github.com/ddddxxx/LyricsX).

## Supported Sources

- NetEase Music
- QQ Music
- Kugou Music
- TTPod
- Gecimi
- Syair
- Xiami Music (discontinued)
- ViewLyrics (not working anymore)

## Usage

#### Search lyrics from the internet

```swift
import LyricsService

// create a search request
let song = "Tranquilize"
let artist = "The Killers"
let duration = 225.2
let searchReq = LyricsSearchRequest(
searchTerm: .info(title: song, artist: artist),
duration: duration
)

// choose a lyrics service provider
let provider = LyricsProviders.Kugou()
// or search from multiple sources
let provider = LyricsProviders.Group(service: [.kugou, .netease, .qq])

// search
provider.lyricsPublisher(request: searchReq).sink { lyrics in
print(lyrics)
}
```

## License

LyricsKit is part of LyricsX and licensed under MPL 2.0. See the [LICENSE file](LICENSE).

## LRCX file

### Specification

```
::= (NEWLINE )*
::=
|
|
| ""

::=
::= "[" "]"
::=
| ":"
::= [0-9a-zA-Z_-]+
::= +

::=

::=
::=
|
|
::= +
::= +
::= +
::= "<" "," ">"
::= "<" "," ">"
::= ">
::=
::= ","
```

### Predefined tags

Predefined ID tags:

| Tag | Key | Value Type | Description |
| --- | --- | --- | --- |
| title | ti | string | |
| album | al | string | |
| artist | ar | string | |
| offset | offset | integer | |
| length | length | decimal | |

Predefind attachment tags:

| Tag | Key | Value Type | Attachment type | Description |
| --- | --- | --- | --- | --- |
| translation | tr | [RFC 4646](https://www.ietf.org/rfc/rfc4646.txt) | plain text | |
| word time tag | tt | no value | index based (with timestamp in millisecond) | |
| furigana | fu | no value | range based | |
| romaji | ro | no value | range based | |