Welcome to my personal blog!

I am doing software development in many areas, with my main fields of experience being cross-platform software (C++/Qt), Android apps (native), Linux & DevOps (Bash/Python/Ruby, Docker, ...).

Open Source is one of my passions -- I am a developer and maintainer of many open projects and regularly start contributing to additional ones. Support me on my mission! My other favourite activities include photography and being outdoor as much as possible. I am too volunteering at the local fire department. I went to school at HTL Braunau (Electronics / Software Engineering & Mobile Computing), studied at FH Hagenberg (Mobile Computing) and work currently at Felgo.

This post is is about one simple java class which can parse m3u playlists containing radio and IPTV video streams.
Simply add the SimpleM3UParser.java class to your Java or Android project to get started.

Parse streams, display in list and play

With this class it’s very easy to get a list of streams:

List<SimpleM3UParser.M3U_Entry> playlist = new SimpleM3UParser().parse("/filepath/to/streams.m3u");

Below is a screenshot of my personal IPTV Android app that my family uses since years to watch IPTV streams. It uses SimpleM3UParser. The screenshot also contains the file structure and structure of a m3u/m3u8 playlist for live streams. (same structure as seen at examples in source code file)


The list in the screenshot is a ListView with simple Image/TextViews. When clicking a item, playback starts. If you want to play using an external media player app on Android, here’s a snippet for VLC media player:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndTypeAndNormalize(Uri.parse(playlist.get(INDEX).getUrl()), "video/*");

Give me the code!

Code for parser and complete examples is available for Download from GitHub and licensed Apache 2.0.

Additional info

  • Looking for URLs of legal live streams? Take a look at KodiNerds-IPTV.
  • What is the reason for this blog post?
    • I noticed multiple people asking for a simple free & open source app for watching IPTV streams, especially in F-Droid community chat & forum.
    • Be it open source or not, this is blog post and associated code may be the starting point of your new IPTV & streaming app!

Read more

Markor v2.0 update is out! Get the update now from Google Play, GitHub or F-Droid!
Continue reading to find out what’s new, improved and fixed in this update.

File search has returned to Markor! Search is decoupled from file browser and supports recursive file search.
In the editor there is also a new dedicated button in the menu toolbar for search.
Now there is always a search button available in all type of pages, even better it’s always at the same position.


Improved image, PDF sharing and printing

The color scheme is now automatically switched to light with white background, when sharing or exporting a document as PDF or image. As PDF export and printing uses the same Android feature, the improvement is also available for priting.

With this change, Markor will always automatically generate clean white documents for you (without theme specific background color), perfect for printing.

Improved file handling

Markor will ask now if a file should be opened inside editor, if it’s one of the extended list of expected file typs. You will now get a dialog to choose between Markor or external app. This list of file types includes but is not limited to data exchange (like csv, json, xml, yaml) and development (c++, java, python, ruby, golang, bash) files types.

There is also a new settings option in the general section, which allows to specify a comma seperated list of file extensions that always should be opened with Markor. If you want to open files with .gradle and .pro extension, as well files without extension: None, .mytype.

Various improvements

  • Always view files starting with “index.”
  • Setting to configure wrap mode (=line breaking)
  • Menu option for reload file (editor/viewer)
  • Menu option for hiding files & folders starting with a dot
  • Setting to set tab width
  • Improve back button when always start view mode is set
  • Keep file browser sort order
  • Improve inline code highlighting
  • Add new line when archiving tasks

Read more