Giter Club home page Giter Club logo

m3uandroid's Introduction

M3UAndroid

M3U is a FREE stream media player on android devices, which made of jetpack compose. Android 8.0 and above supported.

Device support

Most Android devices, including smartphones, TVs, and tablets.

Screenshots

πŸ“’ Translations Wanted πŸ“’

Please submit a pull request if you want to help with translation.

Official:

From PRs:

Introduce

Features

  • Playlist Management.
  • Streaming media analysis capabilities.
  • Xtream support.
  • DLNA screencast.
  • i18n (Internationalization).

Android Development

M3U is an app that attempts to use the latest libraries and tools. As a summary:

  • Entirely written in Kotlin.
  • UI completely written in Jetpack Compose.
  • Material3 design system.
  • Uses Kotlin Coroutines throughout.
  • Uses many of the Architecture Components, including: Room, Lifecycle, Navigation.
  • Uses Hilt for dependency injection.
  • Uses Lint Checks for code scanning.
  • Uses KSP & KotlinPoet for Code Generating.
  • FFmepg-kit & ExoPlayer.

Installation

Get it on GitHub Get it on F-Droid Get it on IzzyOnDroid

Get the SNAPSHOT package here

Community

You can join the Telegram Channel for update information and alpha & beta packages.

You can also join the Telegram Group for discussing.

Contributing

View this file to learn about how to contribute this repository.

Refer to the file to learn about the Code Specification of this repository.

Star History

Star History Chart

License

M3UAndroid is distributed under the terms of the Apache License (Version 2.0). See the license for more information.

m3uandroid's People

Contributors

apollo-yeah avatar hoangchungk53qx1 avatar oxyroid avatar phynixp avatar rhjdvsgsgks avatar sguinetti avatar suburbanno avatar themodfatherinc 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  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

m3uandroid's Issues

Integrate Xtream support into the M3U player

Is your feature request related to a problem? Please describe.

The current lack of Xtream support in the M3U player limits users' choices and functionality, making it challenging to enjoy content through this platform.

Describe the solution you'd like

I propose the implementation of the Xtream feature in the M3U player, enabling users to access a broader range of channels and enhancing the overall streaming experience. This addition will provide users with more choices and make the app more versatile..

Describe alternatives you've considered

While there are various Xtream applications available, I prefer utilizing an open-source application like yours.

Additional context

Improved readability when the app is in split-screen mode

Is your feature request related to a problem? Please describe.
The PIP (Zapping Mode) function works quite well. However, some phones offer the split-screen option for multitasking. In this case, the user can in a split window take advantage of the possibility to "switch channels" while doing another activity (such as chatting to coordinate watching a single channel in a group, watching news coverage on a certain topic, and so on). I also find it useful to use split mode to manage DLNA mode in one window, while sharing the channel's web page on the TV to check the news beyond the EPG in other window.

Describe the solution you'd like
If possible, the preview of the letters should be improved when the app is in split screen mode. In some cases, the list is not readable to know the channels when it is distributed in 2 channels per row (changed rom "God Mode").

Describe alternatives you've considered
The most possible is to reduce typography size and decrease spaces to improve the user experience.

Additional context
An example of readability is shown in the screenshots.

image

One bug and two requests

Hey.
Great player.
I have something to report and suggest...

Bug: "Initial Screen" setting does not work
Request: Ability to start a specified channel at startup
Request: If possible - restart playback when hang-up occurs

Thanks.

"Search for this channel on Internet" from the context menu

Is your feature request related to a problem? Please describe.
It is more practical to use the option "Search for this channel on Internet". This feature makes it easy to search the channel's website via web browser for more information about the channel's content. In addition, it also allows the user to search the social networks and interact beyond watching the TV channel.

For example, I want to search for "Euronews" on the Internet because its website is offering more information on a news item that, due to lack of time, only appears briefly in the channel's live headlines.

Describe the solution you'd like
Just add the option "Search this channel on Internet" and open in a default web browser. The query for search is the name of the channel. Also, the query will not include content in parentheses.

Describe alternatives you've considered
If possible, it should be opened in the browser with the default search engine. Otherwise, search engines such as Google, Startpage, Bing and Duckduckgo would be offered in the options.

Additional context
This feature is very useful when searching from the TV, as typing the channel title with the remote control takes longer than with a touch keyboard.

Sort list alphabetically of favorites and ordinary channels

Is your feature request related to a problem? Please describe.
This feature allows the user to sort the list alphabetically (a-z or z-a). This makes it easier for the user to locate the channel being searched for. Some lists offer the sorted list but when other lists are used, certain channels are not correctly located so that the user can easily find them.

Describe the solution you'd like
Sorting the channel list, especially from the favorites screen, helps a lot. This has a button (icon or text) to change the alphabetical order.

Describe alternatives you've considered
The button is displayed next to the section title.

Additional context
See screenshot:

image

In my opinion, in the channel list, the user can use the options to view all of the categories or a unified list sorted alphabetically (as if they were dictionary entries).

Zapping mode

Is your feature request related to a problem? Please describe.
Greetings. It would seem great to improve the option to zap the streams (or lives) in the playlist, perhaps as an alternative to the experimental "scroll to change lives" feature.

Describe the solution you'd like
For this feature, it would consist in pressing a button (or item from menu) to have the first stream previewed (in PIP). Then, the user will be able to tap the next channel and be previewed immediately (in PIP) until watching as many streams as possible.

Describe alternatives you've considered
This button would appear next to the update button. So it is not intrusive for the user.

Additional context
This feature is intended to save time by not having to watch the stream in full screen and not having to press the back button several times.

4001 Player Error

Describe the bug
This error occurs in Zapping Mode, after watching several channels.

To Reproduce
Steps to reproduce the behavior:

  1. Activate "Zapping Mode" and "display more information in the player" from settings
  2. Add a list channel (m3u) like IPTVorg
  3. Select first channel. After the first channel in floating window is streamed, then select the second channel, then select thrid channel, and so on.
  4. Subsequently, only the logo will appear in the floating window (no the videostream, see screenshot).
  5. The window must be opened in full screen.
  6. The error is displayed below the channel name: "[4001] ERROR_CODE_DECODER_INIT_FAILED"

This error is best noticed when 10 channels that work without network problems are marked as favorites before zapping. After marking favorites, the step 4 is done. So it is ruled out that it is a problem of the m3u8 list.

Expected behavior
When viewing the window in full screen mode, the following warning will error "[4001] ERROR_CODE_DECODER_INIT_FAILED". The error appeared when I tuned to the Top Latino channel (per example) when I was checking at least 10 channels. After the error, when I select another channel, the 4001 error will remain until I close and reopen the app.

Screenshots
IMG_20231226_122048_457

Illustration of the steps of the procedure (for easy follow-up).
4001_report

Smartphone (please complete the following information):

  • Device: Galay A04
  • OS: Android 13
  • Version 1.13.3 (app)

Additional context
I have tried this instructions in other smartphones with the same error. As far as I can tell it is a video player bug and not external.

In my opinion, I think the best solution to solve the problem is to have the player be initialized again, without the need to have to manually restart the app.

Proposal: Playlist Bundle

Users can share their playlist collections through file sharing (*.yaml, excluding locally subscribed playlists). These PB files can be hosted on GitHub repositories or other platforms. Additionally, users can subscribe to these bundles in Subscription Management.

missing tooltip on player screen

i found that there is a "single select" button on the right upper corner of player screen. but i dont know what it means. a tooltip is helpful in this kind of situation. which is missed now.

ps: seems like its a recording button. but not implemented yet. i just mistaken notion that it is a favorite button. it would be great to have a favorite button on the toolbar

Set fixed stream player orientation when auto-rotate is disabled

Is your feature request related to a problem? Please describe.
The video player should have the option to set the orientation of the video when playing in full screen. This feature would be useful in several situations.

Describe the solution you'd like
By default, the players follow the phone’s configuration for video orientation (portrait or landscape). However, for accessibility (which includes, but is not limited to TalkBack) or handling (in one hand) reasons, some users tend to disable auto-rotate and set the mobile to portrait orientation for avoid frustrating scenarios. This feature add the possibility to always play the live stream in a fixed orientation (landscape in several cases).

Describe alternatives you've considered
This is an optional feature for those who have disabled auto-rotate for accessibility or handling (or battery performance, as well) reasons and set the phone in portrait orientation. It does not affect those who use auto-rotate.

Additional context
This feature can be turn on or off from "Optional Player Features".

Add option for set app theme (light or cinema mode) depending of the system device

I just saw the cinema mode feature (OLED Theme) and I like it. But I would prefer it to be activated according to the system settings, especially when the system has programmed the dark theme to match this feature (with following automatically the scheduled dark mode feature of the system). I appreciate this consideration in advance.

Example:
Cinema mode option in the app:

  • Yes (everyday/always)
  • [Follow] System (e.g. only nights in most devices)
  • No (never)

See this for more context: https://developer.android.com/develop/ui/views/theming/darktheme#change-themes

  • Text has edited to avoid misunderstandings.

Solicitation of Opinions for 1.14

The development of a new version means that it may be a long time before the next official version is released.

Missions

  1. Theme selector.
  2. Data backup and restore.
  3. Supports for android tv.

Add EPG support (XML)

Good morning,
I miss being able to see the guide with what you are currently doing.
When adding a list, add an optional field for the EPG of the list.
Once set up, show on each channel, a line at the bottom indicating the progress of the current program, and show what they are currently doing.
Also to be able to know somehow what you have done and what you are going to do next, greetings!

Compose Interfaces

Define interfaces to distinguish compose code on mobile phones, tablets, desktops or car devices.

Larger buffering option

Is your feature request related to a problem? Please describe.
In some cases, in high quality videos or in situations where users need to view content smoothly and without skips, the option of a "Larger buffering" will help to accomplish that need. For example, when the user wants to watch a full movie or listen to a video clip on the TV channel and you want to use an application to identify the origin of the music.

Describe the solution you'd like
Longer buffering is used in Adobe Flash Player to allow the content to be viewed in its entirety, especially if the connection has certain "skips" ("hiccups") that interrupt the experience. The Android app URL Radio also allows this option. Also PipePipe, opensource Youtube client, allows to increase the buffer to watch live streams.

Describe alternatives you've considered
This is an optional feature that is disabled. The user can enable it to correct "skips" in some streams, in return they need to load a little more to be able to watch them in full.

Additional context
It's a simple feature, no need to radically change the user interface.

"Subscribe playlist" option from "list of apps" when share a link (alternative for subscribing to a playlist)

Is your feature request related to a problem? Please describe.
To include the playlist to the app, there are several ways. One of them is from the menu when sharing a link to other apps. Based on AntennaPod's "Add podcast", this feature is very useful as it makes it easy to subscribe to the list in a few steps.

Describe the solution you'd like
In the list of apps when a link is to be shared, there should be the option of "Subscribe playlist". Via Android system share dialog. The link is "copied" and pasted to the placeholder in "Playlist management".

Describe alternatives you've considered
Being a quick access option, the user only needs to enter the name of the playlist and press the "Subscribe" button. No other dialog box is necessary. If a new box is requested, without having to go to "Playlist management", simply enter the name of the subscription and confirm by clicking on a button.

Additional context
See concept:
image

Recommend a long-unseen favorite channel

Is your feature request related to a problem? Please describe.
This feature could animate the user to watch a stream unseen a long time ago. It requires the feature to be enabled from the settings, plus the user must have some channel marked as a favorite.

Describe the solution you'd like
For this purpose, channels that were unseen days or months ago are displayed on the home screen. It will appear in an additional block, depending on the channels marked as favorites.

To do so, the user must activate the option "Recommend long-unseen favorite channels":

  • No Recommend
  • 5 days ago
  • 1 month ago
  • 3 month ago

Describe alternatives you've considered
The block will appear before the channel list. It can also appear in the favorites section, but the purpose of this feature is lost. However, the block will never appear if the user has never marked it as a favorite or if the user watches the favorite channels frequently.

Additional context
The recommendation (or suggestion) of unseen favorite channels also helps the user to undo what it does not like. This improves control with the content the user wants to watch.

GitHub Releases Page Bug

I've noticed within multiple repos that GitHub has been having issues displaying releases on the Releases page at times. The Tags page seems to work fine. After doing some investigating, I found a few old comments from the GitHub staff about this bug.

On occasion, this can happen when the index used to populate the release page goes out of sync with the database holding release records.

As an interim workaround, you can try editing the release and clicking on Update release without making any changes. This should force a re-sync, causing the missing releases to re-appear.

I reported this info to a different repo which had this same issue. The dev followed the instructions and the problem was solved.

You can try doing this for v1.13.1 since it's not showing on the Releases page.

Crashing of app when non-stop scrolling favorite channels and pressing "For you" immediately

Describe the bug
This bug occurs when scrolling through a list of several favorites while pressing "For you". The crash occurs when scrolling continues, as reproduced below.

To Reproduce
Steps to reproduce the behavior:

  1. Importa a list of channels
  2. Add a several favorites (like 15)
  3. Unselect "No image" mode (optional but makes the bug more evident)
  4. Start scrolling the list. To do this, the finger is pulled quickly from the bottom to the top.
  5. Immediately, before it stops, "For you" is clicked.

image

Expected behavior
An error message appears. It goes directly to the "app crashes" screen. In some cases the app will remain in "For you" with no response. The app should be closed and reopened.

Screenshots
image

Smartphone (please complete the following information):

  • Device: Galay A04
  • OS: Android 13
  • Version 1.13.5 (app)

This error is reproduced in the list of favorites only, regardless of whether "Compact mode" and "No image" are activated.

Additional context
Attached log:
Crash report scroll favs.txt

Share or save log file when app crashes

Is your feature request related to a problem? Please describe.
It would be nice if the log files could be shared without the need to view the files. This option helps to include files when you want to report a bug.

Describe the solution you'd like
Add a menu to view, save or share the log file. Just tap and hold on a file. The feature will be applied in the "app crashes" screen.

Describe alternatives you've considered
I can find no other alternative. Besides, the option is not intrusive.

Additional context
This feature is useful for reporting a bug on Github and you need to attach a log file. This makes it easier to find a solution for an app crash.

Import and export all playlists and favorites

Is your feature request related to a problem? Please describe.
Exporting and importing data locally is necessary for the user to keep their playlist and favorites. This can be useful for manually synchronizing or backing up to the user's cloud.

Describe the solution you'd like
The feature should be included in the application settings. If possible, manually added lists can be included in the file.

Describe alternatives you've considered
The feature is an alternative to keeping the information in case the user want to reset the app data and restore their backup. It is not intrusive.

Additional context
Some applications such as NewPipe and AntenaPod include this function. The common format for backup is json.

If possible, it could be redesigned in a collapse menu that will allow the user to see the options. It is similar to "optional player features".
image

Module i18n

Refactor strings files to additional module.

Delete and Edit Playlists

Is your feature request related to a problem?

Yes, it's a big problem, I made a mistake when I put the address M3U8 and now I can't edit or delete it.

Describe the solution you'd like
Please make it possible to edit and delete lists from the configuration menu.

Buffered streams 'COMPLETED'

New to this project. It's a very nice way of handling playlists. Much superior to my experience in VLC. Thank you for it.

When playing a stream, as part of a playlist, if the stream buffers it will time out, and show as completed. I understand that is useful and intended behavior. There are occasions where it would be preferred to retry the stream ad infinitum. If listening to or watching a stream that regularly becomes interrupted, in it's current form (as per my understanding) I can find no way to automatically reconnect after a time out.

Is there an existing setting that makes this possible? If not could I put it forward as a suggestion?

🐞[BUG]: Import File From Storage

Describe the bug
After selecting m3u file from storage and hitting subscribe, notification says "check failed". Cannot import more than 101 streams and no streams will play.

To Reproduce
Steps to reproduce the behavior:

  1. Import m3u file from storage.
  2. See "check failed" notification in app.
  3. Go to For You page.
  4. Imports up to 101 channels only.
  5. No streams work.

Expected behavior
Import file feature works correctly.

Screenshots
Import_File_Check_Failed
Check failed.

Import_File_Incorrect_Channel_Count
Imports only up to 101 channels.

Smartphone (please complete the following information):

  • Device: OnePlus 9 Pro
  • OS: Android 13
  • App Version: 1.13.0

Additional context
This issue also affects the Settings page?

Create shortcuts of channel, list of channels and last viewed channel

Is your feature request related to a problem? Please describe.
The shortcuts option streamlines content viewing experience. The feature is necessary for those who need to watch a channel marked as a favorite or the last viewed channel directly from the launcher.

Describe the solution you'd like
The use of shortcuts will help users_

  • To watch favorite channel (or a specific list) directly from the application launcher.
  • To see the last viewed channel without reopen the application and search manually.

Describe alternatives you've considered
It is appreciated that the shortcuts are displayed when the user press and hold the app and see the corresponding menu. They can also be added manually by pressing and holding the channel name, whose "Add shortcut" option is under the "Like" option.

Additional context
See for more context: https://developer.android.com/guide/topics/ui/shortcuts

Concept:

concept

Pause (or mute) stream when the headphones are taken off

Is your feature request related to a problem? Please describe.
In general, when people are in public places, they usually watch content with their headphones so as not to interrupt other people. For example, in public transportation or in a waiting line. In some reasons, the person forgets to turn down the volume (or pause the video) when disconnecting. The result is discomfort when the volume of the smartphone is high.

Describe the solution you'd like
The feature is missing. There should be an option to mute the audio in the player. It is also possible to pause the stream, although I'm not sure if this is appropriate for the app.

Describe alternatives you've considered
After muting the audio (or pausing the video) when the headphone is removed is not available in the app, there may be an option to replay. In case the "auto reconnect" feature is enabled, the stream would remain muted (or paused) until the user manually replay.

Additional context
Using the automatic function is quite useful in public places where you want to be as quiet as possible. As far as I have seen several apps with music playback control can also pause the content automatically.

Option to unfavorite and create shortcut from list of favorites

Is your feature request related to a problem? Please describe.
A context menu to unfavorite and create a shortcut is missing in favorites list. It is a feature that simplifies the user experience.

Describe the solution you'd like
Just like a context menu in "For you", such as when marking favorites, the context menu should be extended as well.

Describe alternatives you've considered
I can find no other alternative. Since add a unfavorite option is more simple than manually searching from the "For you" screen.

Additional context
See screenshot:

image

Cateories-based suggest channels from favorites channels added to the player with large playlists

Is your feature request related to a problem? Please describe.
It is a bit complicated to explain but it helps the user to search for more channels that have the same category as the channels that were marked as favorites. For example, the user likes the channels that carry the "News" category such as France 24, CNA and DW, the "News" category will be added in a carousel to access the playlist category where the "News" category is. There I can bookmark other channels that may be of interest such as "DNews" and "NHK News". That motivates the user to keep looking for content that may be useful to this user.

Describe the solution you'd like
Within the favorites marked by the user, the channels have their category and the origin of the playlist. Therefore, when the usrer enable the "Suggest Categories" option, the user will be able to access the playlist categories without having to check manually. It is a feature more focused on "discovery new channels". The requirements must be higher for the recommended categories to appear when necessary.

The suggested categories are inspired by the category list when the app store is started.

Describe alternatives you've considered
It is a feature more focused on "discovery new channels". The requirements must be higher for the recommended categories to appear when necessary.

As well as #42 is based on a discrete recommendation system but more focused on the user experience. The feature requies of:

  • Activate from optional features
  • Have a minimum number of favorites (20).
  • That the favorite channels have a category and a source list to be considered.
  • Channel list should be large (40 channels, which is the total of one or several added playlists).

Update: This mechanism could replace pinned categories. See below.

Additional context
See concept.
image

See examples of the category-based recommendation system.

image

I'm not sure if the concept fits with the ideas of the app but it reminds me of the concept of Apple Podcasts, where one searches for more content in the face of an excessive amount of podcasts that the user has a hard time finding a new one based on their interests.

  • Text is "Discover new channels" not "Discovery..."

Problem with the search engine in tv box (With text fields in general)

Currently with the text fields in the TV Box, the keyboard opens automatically when you hover over the text field, this is quite a big problem in the TV box because it does not allow me to scroll correctly to the next text field.
Although it is a general problem, the biggest problem is located in the hidden field of "Search" within the playlists, the search field in the tv box does not appear at any time, but scrolling with the arrows the tv box enters the hidden search field, the keyboard opens and does not let me continue scrolling correctly to the channels.

I propose not to open automatically the keyboard, only to open it by pressing "Ok" on the remote control.

Select quality of stream

Is your feature request related to a problem? Please describe.
The option to choose the video quality, automatically or manually, is missing. Some live channels offer multiple resolutions and, for near-low connections (like 3G or congested networks), the feature is necessary to use the lowest possible videostream quality.

Describe the solution you'd like
There must be a button to select the resolution of the stream. It will be adapted according to the network connection.

Describe alternatives you've considered
The resolution selection will appear at the side of the list. See image for location. Another alternative is to place at the top next to other buttons.

In the future there will be other related technologies such as ABR. Anyway, it is always good to have a small big step.

Additional context
Concept:
Resolution_Concept

Playlist management button disappears

Describe the bug
The button simply seems to disappear from the configuration menu.

To Reproduce
Steps to reproduce the behavior:

  • Enter configuration.
  • Scroll to the bottom with the joystick.
  • Scroll to the top with the joystick.
  • The button has disappeared.

Expected behavior
That it works

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: TV Box x98 mini
  • OS: Android 11
  • Version: Latest Fdroid version

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.