GithubHelp home page GithubHelp logo

ampfin's Introduction

AmpFin

AmpFin is a sleek and modern Jellyfin client, specifically designed for music and iOS and iPadOS. Due to its design, snappy interface and deep integration it feels right at home on any supported device.

Features:

  • Online & Offline Playback: The app is designed to provide the same great experience while offline
  • Lyrics: View time synced lyrics for your favorite songs (requires Jellyfin 10.9+)
  • Explore Artists: Dive into your music collection and play an instant mix of your favorite artist's songs
  • Discover Albums: Navigate your albums in a beautiful interface
  • Enjoy your Playlists: Playlists are fully supported - online & offline
  • Search Your Library: Quickly find your favorite tracks with the intuitive search functionality.
  • Queue with History: Create a playback queue and view songs that have played previously.
  • Remote control: Control AmpFin using another supported Jellyfin client or take of control of one
  • Siri / Spotlight integration: Play your music using Siri and access your library through Spotlight
  • Automatic updates: Added a track to a downloaded playlist? AmpFin will download it automatically

Download

Download on the App Store

The macOS app is still in "alpha". It is more or less a slightly tweaked iPadOS app. A native macOS app is planned. Downloads will be available soon™️

Roadmap

Things to implement before i would consider AmpFin feature complete:

  • Shortcuts
  • 10.9 & lyrics support
  • Update cover images of downloaded items
  • Improve downloads by storing their file extension (currently blocked by a migration bug in SwiftData)

iOS

  • CarPlay integration
  • Listen-Now tab (maybe)
  • Tweak now playing animation
  • Widgets (No idea what purpose they could serve but there may be some)

iPadOS

  • Improve search experience

Planned platforms

  • tvOS (not planned until tvOS 18)
  • macOS

Things that are not possible due to a lack of APIs provided by Apple:

  • Journal integration
  • Now playing widget suggestions
  • Chapters in the Apple Watch now playing app
  • HomePod (possible but would require a centralized server)

Screenshots

Library Album Player Queue
Library Album Player Queue
Tracks Album Player Artists

Sideload

Pre built binaries

Grab the latest Release and install it using your favorite tool like SideStore.

Please not that the pre build binaries lack Siri support because these features either require a paid developer account or cannot be reliably implemented in a way that works with tools like SideStore. For further information see #11

Stripping app extensions is highly recommended, they will not work as intended.

Build the app yourself

  1. Install Xcode
  2. In the Configuration directory copy the Debug.xcconfig.template file and rename it to Debug.xcconfig
  3. Change the DEVELOPMENT_TEAM to your apple developer team id and BUNDLE_ID_PREFIX to a prefix of your liking
  4. If you do not have a paid developer account remove the ENABLE_ALL_FEATURES compilation condition. Otherwise the app will crash. If you do not intent on developing the app also remove the DEBUG flag
  5. Connect your iPhone to your Mac & enable developer mode
  6. Select your iPhone as the run destination
  7. Run the application

Please not that the DEBUG configuration is used by default for all builds except archiving and profiling. You have to edit Release.xcconfig to update their parameters.

Licensing & Contributing

AmpFin is licensed under the Mozilla Public License Version 2. Additionally the "Common Clause" applies. This means that you can modify AmpFin, as well as contribute to it, but you are not allowed to distribute the application in binary form. Compiling for your own personal use is not covered by the commons clause and therefore fine. Additionally, prebuilt binaries are available on GitHub for side loading using popular tools like SideStore, etc.

Some notes:

  • Try to match the current code style
  • All spacing, especially to the sides, should be 20 units. Scrollable items should have a gap of 10 units, non scrollable ones 15. Do not use padding() without any parameters, it has "smart" behavior, meaning that the padding is all over the place. To give a fun example: more or less everything had a padding of 19 units, so most things were slightly of, relative to the toolbar at least.

Distributing your binaries to your friends and family is allowed. The same goes for development builds.

Contributions are welcome, just fork the repository, and open a pull request with your changes. If you want to contribute translations you have to edit Localizable.xcstrings in the iOS directory, as well as Localizable.xcstrings located at Widget Extension using Xcode. If you want to add a new language add it in the project settings

Miscellaneous

AmpFin is not endorsed by nor associated with Jellyfin

ampfin's People

Contributors

gnattu avatar pavelzw avatar rasmuslos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ampfin's Issues

OPUS and Vorbis files cannot be played.

When trying to play Opus or Vorbis files, the program skips to the next Mp3 file and only plays this file. However, the Vorbis or Opus titles and covers are displayed when the Mp3 file is played.

Lyrics tab always loading

Hi,
Yesterday I installed Ampfin on my phone and it looks amazing! Just the lyrics tab in the player doesnt load... I couldnt find how it works - Does it scrape some kind of lyric database website or does it check if there are local lrc files in the directory of the album? I'm new to Jellyfin so maybe a skipped an important part of making lyrics work

Can’t connect to remote IP

Hi,

I can not connect to a remote IP. 192.168.x.x works, 100.x.x.x doesn’t. I can connect to 100.x.x.x through Safari, the Jellyfin app and Manet. AmpFin says it couldn’t find the server.

is there a way to connect to remote addresses?

Thank you

Quality of life improvements

Hi rasmuslos,

thank you for this great app first of all! I've been using it daily since release and it's only gotten better and better. I've noticed a few minor details that could be improved though.

1 Tapping the "Bibliothek" button should bing me back to home everytime I tap it. Another tap should scroll to the top of the page if I'm not already there.

2 Tapping "Suche" once should open the search tab (as is) and a second tap should open the keyboard. Both these features can be seen in the stock App Store app with the tabs "Heute" and "Suche" accordingly if it's not clear from my description.

3 In the Playlist View the Cover of the Playlist is not shown, just a blurred out version of it. In the Artist View the picture is displayed correctly. Is this intentional or are there any limits for uploading your own covers for playlists?

4 Is it possible to implement an alphabet picker in the (album-) artist overview? The scrolling bar is nice to have but much too imprecise to get to certain letters fast.

5 Lastly I believe that shuffling my favorites doesn't pick up all songs from my favorites, just maybe around the most recent 200 songs or so. I have more favorited songs than that, is there a limit as to how many songs are being shuffled?

Thank you again for developing this app, I'm curious to see, what will come in the future!

Cheers

mvastum

publishing on app store

hey there :)
Im about to buy myself a developer license off apple
if you want, you can publish your app with it.
just let me know - thought id throw it out there coz this app looks cool as hell. i always disliked finamp as it looks weird

Third-party lyrics

Instead of waiting for official lyrics support, should we consider getting lyrics from third party services instead? LRCLIB provides a simply and free API that seems to be perfect for something like this.

delete specific downloads

if a file is updated, but the metadata is the same, ampfin does not recognize this and plays the downloaded file. although this is fine, I would appreciate it if I was able to delete just that file, as opposed to all the files, and redownload the updated file from the server.

Various improvements

Hi, despite I'm currently using the version 1.0, I have some suggestions to improve the app:

  • When you are somewhere in the app but want to go to the main screen, wold be nice to do that with one click on the library icon at the bottom (currently only working if you are in the downloads or the search sections, but not when you are in the album view).
  • Improve the animation to go back swiping right anywhere on the screen, bc if you do that now in the track list don't work properly and sometimes I add items to the queue when I don't want to.
  • Sometimes (specially with lighter colors) the play controls looks very hidden.
  • First, a long press in a single song to open up a menu for download, add playlist etc
  • Improve the animation when you swip down in the now playing screen. It would be nice if the floating window could be moved up or down holding before disappear.
  • When playing a song and looking the track list, put a movement icon to know which song is currently playing (or shadow the whole song line).
  • I'm not able to order albums by date added (new ones to old).
  • Hide the volume popup everytime I change the volume with the slider.

That's all, I'm enjoying the app, and thanks again for your amazing work!

"Listen-Now" tab

It would be really neat if AmpFin had a "Listen-Now" tab with some recommendations. As far as I can tell Jellyfin does not offer any algorithmic suggestions other than the "Instant-Mix" feature. It could be used to generate an artist station. These are the current ideas I have for content that could appear in the tab:

  • Recently listened albums
  • Stations for recently listed artists (derived from the recent albums)
  • New albums
  • Random daily selection
  • Playlists
  • Albums with a play count of zero
  • Favorite albums & artists
  • Played often
  • Released recently
  • Genres (a healthy mix of recently listened and random ones)
    These could come in two different flavors: Just the genre which leads you to albums tagged with it and a row with the genre as its title

The listen now tab will mostly likely only work online and the user should be able to disable it. Showing a banner at the top until the user dismisses it should be fine.

iPadOS App

Love the app! Is an iPad version planned as well? (same question for ShelfPlayer)

Equalizer?

Hey! Is there an Equalizer in this app? If not, could u please add one? I love love love love looooove the design and I'd love an Equalizer too! Keep up the good work tho!!

large playlist downloads fail

when trying to download my playlist, which is ~600 songs, the ui freezes, and eventually the player crashes. after reopening the app, all of the songs are stuck in a state where the app thinks they’re being downloaded, but no download is actually taking place, stopping me from re-queuing the download.

Add a license

This project looks really great, and I'd love to use and contribute to it, but it's difficult to do so legally without a license.

Check out https://choosealicense.com for some helpful advice on the license to choose.

I am unable to build the project

Hello, I downloaded this project and attempted to localize the language. However, I am unable to build the project. I am a development novice. What changes do I need to make?

Lyrics support

We will hopefully see Jellyfin 10.9 soon, so lyrics support is on the horizon. The lyrics functionality should be re-enabled when the 10.9 beta hits

Album Artist route error

Hi, I like to edit artists bios, photos and metadata on desktop app.
But using Ampfin, I can only see these changes updated if I go to the specific Artist thru now playing screen, but not if I go to Artists or Album Artists from home screen options.
Thanks

Add support for a singles

In my music folder I have some individual singles that don't belong to any album. I can add these items to a playlist, play and download with all clients (Desktop, fintunes, finamp etc) but not with this app, I even can't see the song in the playlist. Thanks

"Unable to load" on everything

App Version: v1.0.1
Jellyfin Version: 10.8.10

Unable to do anything as trying to navigate everywhere gives me the error, "Unable to load".

Tracks doesn't load

The tracks view doesn't load and fails even when connected to internet. Everything else works
image

Playlist bug

The playlist show the name, total tracks and duration but not the cover and can't be played or shuffled
IMG_2662

Estonian App Store app availability

I understand that currently, the app is not available on the Estonian (or, probably across the globe or even de-listed) App Store.
When attempting to access the app, a generic error message appears, and even opening the app from the "installed app" directory in the iOS App Store shows that something went wrong.
I wanted to confirm if you are already aware of this issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.