Multimedia › BendyStraw
thumb_up Follow me on GitHub to get notifications about my projects (like Fossdroid Core), thanks! close

BendyStraw

An app for managing NewPipe databases
Version: 1.2.0
Added: 08-12-2023
Updated: 07-10-2024
# BendyStraw

An app for managing NewPipe databases.

BendyStraw imports [ NewPipeData-*.zip ] files and lets you:


  • Open multiple [ zip ]s at the same time, so you can combine data
    from several devices

  • [ Delete ] [ Copy ] [ Move ] [ Rename ] your custom playlists

  • [ Delete ] [ Copy ] [ Move ] streams from one playlist to another

  • [ Delete ] [ Copy ] [ Move ] channel subscriptions between databases

  • [ Delete ] [ Copy ] [ Move ] remote (bookmarked) playlists

  • Re-order playlists, sorting the streams by [ Title ], [ Channel ] or [
    Length ] (just tap the column headings in the tables)

  • Shuffle or reverse playlists

  • Streams (audio/video) can be opened directly from
    BendyStraw, as the URLs are clickable

    • If you set video links (in your Android settings) to open in
      NewPipe you can make a split-screen view and jump
      around your playlists



  • Export playlist as raw text, for example to be used with href="https://github.com/yt-dlp/yt-dlp">yt-dlp

  • New! Import playlists from JSON (the button to do this is
    hidden by default, go to the settings menu to show it)

  • Dark/light themes



After editing simply export a new [ zip ] file, then import it back into NewPipe.



## Note about Permissions

On Android 13+, BendyStraw asks for the manage external storage permission, here's why:



  • A typical use-case for this app is to open several [ zip ] files,
    concurrently, from multiple locations including
    [ Download ] directories (these files would be, for example,
    multiple NewPipe exports from multiple devices, which you
    want to combine).


  • Each [ zip ] is extracted so that its contained
    [ newpipe.db ] SQLite database can be read/written while you are
    editing.


  • After editing, the extracted files are written back to a new
    [ zip ], and/or overwrite the original [ zip ]s.




I aim to minimise the permissions I request in everything I build. Android 13 introduced changes to make doing what I decribed above
difficult. I explored alternative methods requiring fewer permissions and felt
that it compromised the user experience for my (as the app's first user)
typical usage, making it more complicated and annoying.


I treat users as responsible human beings, so give you this info to allow you
to make an informed choice. If you are not happy with this, you can:


  • Choose not to grant the permission, and uninstall the app.


  • Check the source code to see that I'm not doing anything nefarious, or ask
    somebody to check it for you (at time of writing, everything related to
    reading/writing files is in [ /lib/file_manager_widget.dart ]).


  • Build the app yourself from the source using Flutter.



Screenshot of BendyStraw Screenshot of BendyStraw Screenshot of BendyStraw
code Source file_download Download