Announcement

Collapse
No announcement yet.

Preannounce: Sprocket - Pocket Casts plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Preannounce: Sprocket - Pocket Casts plugin

    > this didn't work for me
    > I tried putting the Sprocket folder under docker\lms\plugins and also
    > docker\lms\cache\plugins
    > In either case Sprocket still fails to show up on restarting LMS


    Please check permissions: make sure they're the same as for the Cache
    folder itself.

    Oh, and make sure it's uppercase Plugins, not plugins. The path is case
    sensitive.

    #2
    Preannounce: Sprocket - Pocket Casts plugin

    I kept hoping someone else would write this plugin, but got tired of waiting...

    "Sprocket" is a plugin that uses the undocumented APIs of the Pocket Casts web player to allow you to listen to your Pocket Casts subscriptions via LMS/Squeezebox/etc.

    IMPORTANT NOTE (added 2020-11-25):

    A Pocket Casts Plus subscription is required. Prior "lifetime" Pocket Casts Plus access (for those who bought the apps) are also known to work. In essence you must have access to the Pocket Casts web player (https://play.pocketcasts.com/) for this plugin to work for you.


    What works for me:

    - Login to Pocket Casts, without having to store your password (it remains to be seen if the Pocket Casts auth token ever expires).

    - Browsing your Pocket Casts "Up Next" playlist and adding episodes from Up Next to the current LMS playlist.

    - Browsing of subscribed podcasts, including unlistened, in progress and starred episodes.

    - (Optional) Synchronizing episode playback status and position with Pocket Casts.

    - (Optional) Marking any episode currently playing on Squeezebox as the "current" episode in "Up Next".

    - (Optional) "Trick play" skip within episodes.

    - (Optional) Variable speed playback (one speed for all episodes) using nothing but LMS built-in tools (sox). Quality is not as good as Pocket Casts mobile apps, but I find 1.1x-1.9x to be quite listenable.


    To head off some possible feature requests, I should also mention what I have no plans or interest in adding:

    - Subscription management or podcast discovery from the various Squeezebox interfaces.

    - Additional "Up Next" queue synchronization or management.


    The post title says "preannounce", but in reality that just means I haven't decided if I want to set up a repository and commit to maintaining this. Those capable of manually installing the plugin will find a 0.1 release attached here.

    With that, a number of important caveats:

    - I've had this operational only for a few days of listening of a few podcasts. Bug reports are welcome, but this is a "use at your own risk" project, especially with the options that allow synchronization with Pocket Casts.

    - I've only tested on my Linux server, I have no idea if it works for Windows/OSX/etc. and no way to test.

    - I'm not committing to supporting this, I just wanted something that worked for me. If someone wants to adopt this and run with it reach out to me. Code is BSD 3-clause license.


    Edit 2019-12-27:

    Uploaded version 0.2 with "New Releases" support.

    Edit 2020-11-16:

    Uploaded version 0.3 with basic API failure logging.

    Edit 2020-11-22:

    Uploaded version 0.4 with corrected Origin and Referrer headers.

    Edit 2020-11-25:

    Updated to make it clear a Plus subscription is required.
    Attached Files
    Last edited by AxxelH; 2020-11-26, 06:04.

    Comment


      #3
      Originally posted by AxxelH View Post
      I kept hoping someone else would write this plugin, but got tired of waiting...

      "Sprocket" is a plugin that uses the undocumented APIs of the Pocket Casts web player to allow you to listen to your Pocket Casts subscriptions via LMS/Squeezebox/etc.

      What works for me:

      - Login to Pocket Casts, without having to store your password (it remains to be seen if the Pocket Casts auth token ever expires).

      - Browsing your Pocket Casts "Up Next" playlist and adding episodes from Up Next to the current LMS playlist.

      - Browsing of subscribed podcasts, including unlistened, in progress and starred episodes.

      - (Optional) Synchronizing episode playback status and position with Pocket Casts.

      - (Optional) Marking any episode currently playing on Squeezebox as the "current" episode in "Up Next".

      - (Optional) "Trick play" skip within episodes.

      - (Optional) Variable speed playback (one speed for all episodes) using nothing but LMS built-in tools (sox). Quality is not as good as Pocket Casts mobile apps, but I find 1.1x-1.9x to be quite listenable.


      To head off some possible feature requests, I should also mention what I have no plans or interest in adding:

      - Subscription management or podcast discovery from the various Squeezebox interfaces.

      - Additional "Up Next" queue synchronization or management.


      The post title says "preannounce", but in reality that just means I haven't decided if I want to set up a repository and commit to maintaining this. Those capable of manually installing the plugin will find a 0.1 release attached here.

      With that, a number of important caveats:

      - I've had this operational only for a few days of listening of a few podcasts. Bug reports are welcome, but this is a "use at your own risk" project, especially with the options that allow synchronization with Pocket Casts.

      - I've only tested on my Linux server, I have no idea if it works for Windows/OSX/etc. and no way to test.

      - I'm not committing to supporting this, I just wanted something that worked for me. If someone wants to adopt this and run with it reach out to me. Code is BSD 3-clause license.
      Thanks for this. But, I'm confused how to use it!
      When you say 'Login to Pocket Casts', do you mean via the pocket casts webpage?
      It doesn't seem to appear/work as other plugins do by being controllable via the lms web gui. Is that right?
      ------------------------------------------------------------------------------------

      Comment


        #4
        If the plugin is installed correctly you should see it as an option in the "Plugins" section of your LMS server settings. On that plugin settings page you should see an option to enter your email and Pocket Casts password. When you save/apply the settings page the plugin will login to Pocket Casts and save an auth token for your Pocket Casts account. If that works correctly the settings page should change to show the email address of the logged in account and a checkbox to let you logout of that account if you choose.

        Once logged in navigating to the plugin in the LMS "Apps" section should show you the options for Up Next, subscriptions, etc.

        Comment


          #5
          Originally posted by AxxelH View Post
          If the plugin is installed correctly you should see it as an option in the "Plugins" section of your LMS server settings. On that plugin settings page you should see an option to enter your email and Pocket Casts password. When you save/apply the settings page the plugin will login to Pocket Casts and save an auth token for your Pocket Casts account. If that works correctly the settings page should change to show the email address of the logged in account and a checkbox to let you logout of that account if you choose.

          Once logged in navigating to the plugin in the LMS "Apps" section should show you the options for Up Next, subscriptions, etc.
          Thanks.
          Seems to be working! Excellent.
          The only thing missing is a New Releases category (which lists the latest podcast in the subscribed casts).
          ------------------------------------------------------------------------------------

          Comment


            #6
            Originally posted by castalla View Post
            Thanks.
            Seems to be working! Excellent.
            The only thing missing is a New Releases category (which lists the latest podcast in the subscribed casts).
            Version 0.2 with support for New Releases is attached to the original post.

            Comment


              #7
              Originally posted by AxxelH View Post
              Version 0.2 with support for New Releases is attached to the original post.
              Thanks. Will update tomorrow and report back.
              ------------------------------------------------------------------------------------

              Comment


                #8
                Originally posted by castalla View Post
                Thanks. Will update tomorrow and report back.
                Updated! Great.

                Thanks.
                ------------------------------------------------------------------------------------

                Comment


                  #9
                  I'm seeing 1000s of these lines in the server log ... not playing via Sprocket

                  [19-12-30 09:27:19.0370] Plugins::Sprocket::Plugin::_PlaybackStateNewSongCa llback (356) Playback state new song handling: playlist newsong
                  [19-12-30 09:27:19.0423] Plugins::Sprocket::Plugin::ClearClientPlaybackStat e (248) Clearing all playback state monitoring.
                  ------------------------------------------------------------------------------------

                  Comment


                    #10
                    Is it really thousands? Or is it roughly one per song you play from a different source? The latter is expected, you're just seeing debug logging that happens when the plugin sees a changed song change to a non-Pocket Cast song. Its explicitly removing its hooks (if needed).

                    Right now the default log level of the plugin is DEBUG, which helps me if you encounter a problem. You can change the level this in server settings -> logging for the (plugin.sprocket) item to something less noisy like "INFO".

                    Comment


                      #11
                      Originally posted by AxxelH View Post
                      Is it really thousands? Or is it roughly one per song you play from a different source? The latter is expected, you're just seeing debug logging that happens when the plugin sees a changed song change to a non-Pocket Cast song. Its explicitly removing its hooks (if needed).

                      Right now the default log level of the plugin is DEBUG, which helps me if you encounter a problem. You can change the level this in server settings -> logging for the (plugin.sprocket) item to something less noisy like "INFO".
                      Thanks for the feedback - I'll change the log level, and report back.
                      ------------------------------------------------------------------------------------

                      Comment


                        #12
                        Logging changed - looks good! Thanks.
                        ------------------------------------------------------------------------------------

                        Comment


                          #13
                          I have been hoping for a Pocket Casts plugin forever.

                          Up until now I kind of made it work using shairtunes and airdroid, but it was a pain.

                          This is so much better.

                          THANK YOU !!!

                          Comment


                            #14
                            Originally posted by castalla View Post
                            Logging changed - looks good! Thanks.
                            I would like to try this plugin as well, but have trouble installing it:
                            I have LMS running on a PiZero within pCP; the only place i see were I can put it is:
                            /usr/local/slimserver/Cache/InstalledPlugins/Plugins
                            (the non-cache plugin folders seem not to exist in the pCP system?)
                            When I restart LMS, the plugin is available, but I get a notification I need to update the plugin by restarting LMS.
                            When I do that, the plugin is gone again....

                            Any hints / ideas....?
                            LMS 8.x on RasPi4 (running along with OMV and AdGuard)
                            Player: 5 x Squeezebox Classic, Slimp3, SqueezeAmp
                            2nd System: PiCorePlayer (and LMS) on Pi Zero

                            Comment


                              #15
                              ... I found the solution - a feedback from Paul in a DiyAudio Forum:
                              "The correct place to manually install on pCP is
                              /usr/local/slimserver/Cache/Plugins
                              This is persistent storage.....the same disk as the database is stored."
                              -> I created that folder and stored the unzipped plugin there.

                              Now I will ply around with the Plugin.
                              My main reason for looking for another Podcast solution than the std LMS one is the timeout you get with some Podcasts.
                              i.e they play for some minutes than stop.
                              Potentially - as I understand - because the server closes down when not downloading the entire podcast in one piece, but slowly by chunks while listening.

                              How is that done here?
                              Is the Podcast downloaded?
                              If so: Where? (temporarily?)
                              LMS 8.x on RasPi4 (running along with OMV and AdGuard)
                              Player: 5 x Squeezebox Classic, Slimp3, SqueezeAmp
                              2nd System: PiCorePlayer (and LMS) on Pi Zero

                              Comment

                              Working...
                              X