support for homebrew ffmpeg on macos (#561)
* support for homebrew ffmpeg on macos * Add build instructions * Revise README --------- Co-authored-by: afkarxyz <mzamzamafkarhadiq@gmail.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<a href="https://trendshift.io/repositories/15737" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15737" alt="afkarxyz%2FSpotiFLAC | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
<a href="https://trendshift.io/repositories/15737" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15737" alt="afkarxyz%2FSpotiFLAC | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||||
|
|
||||||
Get Spotify tracks in true FLAC from Tidal, Qobuz, Amazon Music & Deezer — no account required.
|
Get Spotify tracks in true FLAC from Tidal, Qobuz & Amazon Music — no account required.
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
@@ -18,9 +18,9 @@ Get Spotify tracks in true FLAC from Tidal, Qobuz, Amazon Music & Deezer — no
|
|||||||
|
|
||||||
## Other projects
|
## Other projects
|
||||||
|
|
||||||
### [SpotiFLAC Next](https://github.com/spotiverse/SpotiFLAC-Next)
|
### [SpotiFLAC Next](https://github.com/afkarxyz/SpotiFLAC-Next)
|
||||||
|
|
||||||
Get Spotify tracks in Hi-Res lossless FLACs — no account required.
|
Get Spotify tracks in true FLAC from Tidal, Qobuz, Amazon Music & Deezer — no account required.
|
||||||
|
|
||||||
### [SpotiDownloader](https://github.com/afkarxyz/SpotiDownloader)
|
### [SpotiDownloader](https://github.com/afkarxyz/SpotiDownloader)
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ The software is provided "as is", without warranty of any kind. The author assum
|
|||||||
|
|
||||||
## API Credits
|
## API Credits
|
||||||
|
|
||||||
[MusicBrainz](https://musicbrainz.org) · [Spotify Lyrics API](https://github.akashrchandran.in/spotify-lyrics-api) · [LRCLIB](https://lrclib.net) · [Song.link](https://song.link) · [hifi-api](https://github.com/binimum/hifi-api) · [dabmusic.xyz](https://dabmusic.xyz) · [yoinkify.lol](https://github.com/chasemarshall/yoink)
|
[MusicBrainz](https://musicbrainz.org) · [LRCLIB](https://lrclib.net) · [Song.link](https://song.link) · [hifi-api](https://github.com/binimum/hifi-api) · [dabmusic.xyz](https://dabmusic.xyz)
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -81,6 +81,28 @@ func GetFFmpegPath() (string, error) {
|
|||||||
return localPath, nil
|
return localPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
|
||||||
|
homebrewPath := "/opt/homebrew/bin/" + ffmpegName
|
||||||
|
if _, err := os.Stat(homebrewPath); err == nil {
|
||||||
|
return homebrewPath, nil
|
||||||
|
}
|
||||||
|
} else if runtime.GOOS == "darwin" && runtime.GOARCH == "amd64" {
|
||||||
|
homebrewPath := "/usr/local/bin/" + ffmpegName
|
||||||
|
if _, err := os.Stat(homebrewPath); err == nil {
|
||||||
|
return homebrewPath, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if runtime.GOOS != "windows" {
|
||||||
|
path, err := exec.Command("which", ffmpegName).Output()
|
||||||
|
if err == nil {
|
||||||
|
trimmed := strings.TrimSpace(string(path))
|
||||||
|
if trimmed != "" {
|
||||||
|
return trimmed, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
path, err := exec.LookPath(ffmpegName)
|
path, err := exec.LookPath(ffmpegName)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return path, nil
|
return path, nil
|
||||||
@@ -105,6 +127,28 @@ func GetFFprobePath() (string, error) {
|
|||||||
return localPath, nil
|
return localPath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
|
||||||
|
homebrewPath := "/opt/homebrew/bin/" + ffprobeName
|
||||||
|
if _, err := os.Stat(homebrewPath); err == nil {
|
||||||
|
return homebrewPath, nil
|
||||||
|
}
|
||||||
|
} else if runtime.GOOS == "darwin" && runtime.GOARCH == "amd64" {
|
||||||
|
homebrewPath := "/usr/local/bin/" + ffprobeName
|
||||||
|
if _, err := os.Stat(homebrewPath); err == nil {
|
||||||
|
return homebrewPath, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if runtime.GOOS != "windows" {
|
||||||
|
path, err := exec.Command("which", ffprobeName).Output()
|
||||||
|
if err == nil {
|
||||||
|
trimmed := strings.TrimSpace(string(path))
|
||||||
|
if trimmed != "" {
|
||||||
|
return trimmed, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
path, err := exec.LookPath(ffprobeName)
|
path, err := exec.LookPath(ffprobeName)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return path, nil
|
return path, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user