cross-posted from: https://lemmy.world/post/530920

Magic-tape is an image supporting fuzzy finder command line interface YouTube client.

https://gitlab.com/christosangel/magic-tape

Image rendering can be done with the use of ueberzugpp, ueberzug, kitty terminal or chafa.

With magic-tape, through the main menu, the user can:

  • Browse videos from subscriptions.

  • Browse through trending video feed.

  • make a video search, using keywords or phrases.

  • Watch a previously watched video (watch history).

  • Browse videos from a subcsribed channel.

  • Watch a liked video.

  • Repeat the previous selection.

  • Repeat a previous search (search history).

  • Watch/download video/audio content, in various formats.

Through the miscellaneous menu the user can

  • Set up Preferences (configuration).

  • Like / Unlike a video.

  • Synchronize the above actions with their YouTube account.

  • Import subscriptions from YouTube.

  • Subscribe to/ Unsubscribe from a channel.

  • Clear their watch/search history, liked videos, thumbnail cache.

  • Archy
    link
    11 year ago

    undefined> https://imgur.com/Anr1SSh.png

    Don’t get mad, I’ve read. It’s a little unusual for me to see amongst 6 CLI dependencies on GUI one. But even installing a GUI application on a headless machine won’t do any good

    • christosOP
      link
      2
      edit-2
      1 year ago

      I have made some updates that may concern you:


      UPDATES:

      1. The directory structure of the program has been updated. Instead of keeping everything in ~git/magic-tape/, now various files and directories are kept in various places.This way,
      • the magic-tape.sh is in ~/.local/bin/
      • the magic-tape cache files are all in ~/.cache/magic-tape/
      • the configuration text file will be created in ~/.config/magic-tape/
      1. The action selection can be either with rofi, or fzf (if the user wants to go full TUI).This can be configured during the P option of the misc menu.

      So if you want to go full tui, you can avoid rofi and go full fzf.

      Let me know how it goes if you try.

      • Archy
        link
        21 year ago

        Thank you for the update. Can’t wait to try. Looks like GitLab is down right now (503) - I will look as they restore service

        • christosOP
          link
          11 year ago

          I know, I have just found out. Last night I also added dmenu as well as an action selector (together with fzf and rofi). Let me know how it goes!

          • Archy
            link
            11 year ago

            Actual git still worked. I was able to git pull I also figured out a way to launch the script using bash - needed to export $SHELL - the only way it worked. I could not update yt-dlp to the latest version - the latest I could install is 2023.06.22 from the side PPA repo. Official Ubuntu repo provides 2023.03 and pip breaks my system with compatibility issues that I don’t have desire to troubleshoot. I could try in the future downloading their binary but I don’t like when stuff doesn’t auto-update. The preferences worked this time and I was able to save them.

            yt-dlp gives me an error every time I try to browse either Trending or do a search. I have a TV with a cross and 1 option to Abort Selection.

            I have a question: is the script dependent on having browser cookies? Because I don’t have any of the browsers installed on a headless machine. ANd I think that is what yt-dlp wasn’t happy about…

            Downloading /feed/trending ...
            Traceback (most recent call last) :
            File "/usr/bin/yt-dlp", line 33, in <module>
            sys. , 'console_scripts'
            ' yt—dtp'
            Fite py", tine 1008, in main
            File "/usr/lib/python3/dist-packages/yt_dlp/_init_.py", tine 962, in _real_main
            with YoutubeDL(ydl_opts) as ydl:
            AAAAAAAAAAAAAAAAAAA
            File "/usr/tib/python3/dist—packages/yt_dlp/YoutubeDL.py", tine 762, in _ init
            self. _ setup_opener()
            File "/usr/Iib/python3/dist—packages/yt_dIp/YoutubeDL.py", tine 3929, in _ setup_opener
            self. cookiejar = load_cookies(opts_cookiefile, opts_cookiesfrombrowser, self)
            File "/usr/lib/python3/dist-packages/yt_dtp/cookies.py", line 106, in load_cookies
            extract_cookies_from_browser(browser_name, profile, YDLLogger(ydI), keyring=keyring, container=container))
            File "/usr/lib/python3/dist-packages/yt_dlp/cookies.py", line 123, in extract_cookies_from_browser
            return _extract_firefox_cookies(profile, container, logger)
            File py", tine 148, in _extract_firefox_cookies
            raise FileNotFoundError(f' could not find Firefox cookies database in {search_root}')
            FiteNotFoundError: could not find Firefox cookies database in /home/user/. mozitta/firefox
            Completed /feed/trendinq.
            
            • christosOP
              link
              21 year ago

              Exactly that. Yt-dlp works with browser cookies, You need one of the browsers, and to log in to your yt account.

              • Archy
                link
                21 year ago

                Ah, yeah that’s what I figured.

                Unfortunately, (or fortunately for me) I have not used YouTube in a traditional way in a very long time. I use FreeTube, Piped, Invidious, NewPipe, VueTube depending on the platform I currently am. And that is why I don’t have any cookies for it. I don’t really care for liking or commenting the videos as just watching them. All the above mentioned programs support own “offline” subscription lists, and most have interest-based profiles which you cannot achieve with a traditional YouTube account.

                But yeah, sadly this not for me in its current form, I will join whoever added a comment here earlier about waiting for support of json - based subscription lists - that is, of course, if you decide to go that route, or at least as bare minimum if you could remove the cookie requirement and have “anonymous search and view” functionality. I believe many of us here on Lemmy that are concerned about privacy will greatly appreciate that. YouTube itself, mpv, and yt-dlp don’t really need cookies to watch a video.

                Thanks for troubleshooting this with me.

                • christosOP
                  link
                  21 year ago

                  I was considering being full “offline”, it is perfectly doable, working with yt xml requests.

                  The downside is that this process (so far for me) takes longer, gives less info, and mostly, although there is no image support there, is done better by terminal rss feeders like newsboat.

                  You cannot do everything at the same time. I may revisit this approach in the feature and put up something else.

    • christosOP
      link
      21 year ago

      No worries! Thanks for the feedback anyway.

      ytfzf is great. And if you don’t mind the image support, give newsboat a try, it works great for youtube feeds.