I want code to right click context menu on a file and if it is a .mp4, then convert that to a .mp3 of the same name

also include an option to play faster by +25 +33 +50 or slower by -25 -33 -50 (in a sub menu)

I understand this is different depending on your system, so answer how to do it for the people who use the same system as you

  • caseyweederman@lemmy.ca
    link
    fedilink
    arrow-up
    31
    ·
    13 hours ago

    You got me curious, so I looked it up.
    This isn’t a “let me google that for you”, it’s an “I’m joining you on this journey”.

    https://develop.kde.org/docs/apps/dolphin/service-menus/
    (KDE)

    Looks like you drop a .desktop file into ~/.local/share/kio/servicemenus.
    Name the file extensions, write your Exec= line, fill in a couple other details like what icon to use and what it should be called in the right-click menu, save it, and you’re done.
    I imagine it’s similar in xfce.

    • caseyweederman@lemmy.ca
      link
      fedilink
      arrow-up
      12
      ·
      13 hours ago

      Looks like Thunar has a “Custom Actions” feature under the Edit menu where you can get the same result.

  • bortsampson [he/him, any]@hexbear.net
    link
    fedilink
    English
    arrow-up
    4
    ·
    13 hours ago

    Are you using GNOME or KDE? I know those can definitely utilize shell scripts from the right click menu. I’d recommend grabbing FFMPEG (probably already have it) and SOX. You are going to need to create a pretty basic shell script that extract the audio as a wav using FFMPEG, changing the speed with SOX (you can use FFMPEG but I find the audio warping dog shit), then FFMPEG to convert to mp3. For both GNOME and KDE the context menu shortcuts typically only pass the path to file you have selected as an argument. So you’ll need to create a script for each speed. Honestly, it’s not gonna be easy. You might find something in the Dolphin (kde filemanager) settings that will enable some basic context menu scripts for converting video to mp3. If this is too intimidating then I would check github for an FFMPEG wrapper. It’s the a/v swiss army knife in linux.