Announcement

Collapse
No announcement yet.

Python 3.7

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

    Python 3.7

    Wilson.Wang & Mona,

    Could you please remind the Developer that --- On June 27, 2023, Python 3.7 will reach end-of-life and will no longer be supported by the Python Software Foundation.​
    That means, no more security and bug fixes as well as any new features. If you do a simple Google search on "Python 3.7 deprecating" it will provide more information. Since StreamFab is hardcoded to use version 3.7 there is no telling what will happen once it reaches end-of-life.

    One major potential problem is that --- "yt-dlp supports only Python 3.7+, and may remove support for more versions as they become EOL​." That is copied from yt-dlp's readme.md on github. That means that yt-dlp will possibly stop working when 3.7 is deprecated. While StreamFab does not use yt-dlp by name, it is totally incorporated in StreamFab's YoutubeToMP3Process.exe. If YoutubeToMP3Process stops working, StreamFab stops working.

    There are currently two stable versions of Python - 3.10.4 and 3.11.3. Python 3.11 has the advantage as it is 10%-60% faster than 3.10 (depending on the task being performed). It can only be imagined how much faster it is than 3.7.

    #2
    OK

    Comment


      #3
      So, Mona, what was the reply that the developers made to you about my reminder that Python 3.7 was soon to reach end of life? Python 3.7 has now deprecated and there is not any indication that the developers are in the process of updating to 3.8 or higher. As I wrote above, ideally StreamFab should be updated to 3.11 as it is faster in processing by 10-60% than even 3.10, the version that preceded it. Besides speed improvements, with 3.7 reaching end-of-life, it is no longer a moving target. Hackers are probably right now going through it to find bugs and other security holes in order to gain access to the user's computers of those that are still using Python 3.7. That, unfortunately now, is anyone using StreamFab.
      In short term (hopefully), StreamFab users are being locked out of the use of the latest versions of yt-dlp (2023.06.21 and 2023.06.22) because it, rightfully, has switched to using Python 3.8. To see what features and fixes we are being locked out of, go to https://github.com/yt-dlp/yt-dlp/releases and read the two Changelogs. As you know, StreamFab uses a (slightly?) modified version of yt-dlp called YoutubeToMP3Process.exe to download from Youtube and other non-DRM sites (and possibly some DRM sites). If you try to update YoutubeToMP3Process.exe you get this:

      C:\Program Files\DVDFab\StreamFab\YouTubeDL>YoutubeToMP3Proce ss.exe -U
      [custom info] version 2023.03.04 [392389b7df7b818f794b231f14dc396d4875fbad]
      [custom info] number version 1.4.6.2
      Available version: stable@2023.06.22, Current version: stable@2023.03.04
      ERROR: Auto-update is not supported for unpackaged Windows executable; Re-download the latest release

      2023.06.22 is supposedly available but I, personally, don't know of any way to get it. The closest I can get to it is to download the "unpackaged Windows executable" of the unmodified version which is called yt-dlp_win.zip. If you unZip the file you'll see that it needs Python 3.8 as shown below.

      Click image for larger version

Name:	Screenshot 2023-07-03 4.43.25 PM.png
Views:	541
Size:	25.7 KB
ID:	427405

      I would welcome Chameleon, who lists his Occupation in his DVDFab profile as "Programmer - Python Advanced skill set", or anyone else proficient in Python to comment on what using a deprecated Python 3.7 could mean to StreamFab users or any other comments on the subject.

      Comment


        #4
        No. Installing new versions doesn't affect your source code in any way. your source code remains exactly the same and should run in exactly the same way unless you install Python 3 having only ever used Python 2. If you use the old version, it won't be affected.​ All this said my work is in a Fusion Reactor program, not this type of software, but code is code.
        Last edited by Chameleon; 07-03-2023, 11:02 PM.
        Programmer in Python, Java, JavaScript, Swift, PHP, SQL, C#, C++, Go, R

        Comment


          #5
          Originally posted by Cats4U View Post

          C:\Program Files\DVDFab\StreamFab\YouTubeDL>YoutubeToMP3Proce ss.exe -U
          [custom info] version 2023.03.04 [392389b7df7b818f794b231f14dc396d4875fbad]
          [custom info] number version 1.4.6.2
          Available version: stable@2023.06.22, Current version: stable@2023.03.04
          ERROR: Auto-update is not supported for unpackaged Windows executable; Re-download the latest release

          2023.06.22 is supposedly available but I, personally, don't know of any way to get it. The closest I can get to it is to download the "unpackaged Windows executable" of the unmodified version which is called yt-dlp_win.zip. If you unZip the file you'll see that it needs Python 3.8 as shown below.
          v2023.06.22 is here: https://github.com/yt-dlp/yt-dlp/rel....22/yt-dlp.exe

          You do not need anything else but this .exe, as long as it's in your PATH environment variable of course

          Have you tried bypassing python completely for yt-dlp by renaming yt-dlp.exe to YoutubeToMP3Process.exe? What happens if you do?

          Comment


            #6
            Very, very interesting. Thank you so much for your comments. So, you are saying, in theory, that I could replace the directory at C:\Program Files\DVDFab\StreamFab\PYthon37 with an equivalent 3.8 (or even 3.11) one and StreamFab would run just fine? Skipping the YouTubeDL directory and yt-dlp for right now, I'll come back to it, it appears that there is a python37.dll file in C:\Program Files\DVDFab\StreamFab\ that I assume would have to be replaced with a newer version .dll. It's been awhile but I believe I already tried replacing the PYthon37 directory and python37.dll and the program complained that it wanted python37.dll as if the StreamFab source code requested that specifically. Unlike what you wrote above, is it possible that StreamFab is specifically requesting a certain version of Python rather than being happy with anything in the Python 3 family? I, obviously, will be running more tests on that.
            Now on the YoutubeToMP3Process.exe file. Ideally I would love to have the latest version which according to the output of the -U command is stable@2023.06.22. What command line parameters and what repository do I use to obtain that?
            Worse case scenario, if I can't get the latest YoutubeToMP3Process.exe file, I have the latest yt-dlp_win.zip file. Upon unZipping it I see that in addition to yt-dlp.exe (which would have to be renamed to YoutubeToMP3Process.exe) it contains the python38.dll (shown above) as well as .dll files like the "api-ms-win" ones and other files that already exist in the YouTubeDL directory and the main C:\Program Files\DVDFab\StreamFab\ folder. Do you think all those files should be replaced as well.
            Things would be much easier if the developers would do the updating but I don't have much confidence that they will. They are already 10 versions behind with Mkvmerge.exe. On my version of 6.1.2.9 I am running the latest versions of MKVMerge.exe, MediaInfo.dll, arias2c.exe and atomicparsley.exe. I'm also using the latest nightly version of FFmpeg.exe. It's annoying to know that using the latest version of Python would have the biggest effect on the processing within StreamFab of all the updates I've done and it is out of my easy reach.
            Thanks again for your comments.

            Comment


              #7
              Originally posted by jpp72 View Post

              v2023.06.22 is here: https://github.com/yt-dlp/yt-dlp/rel....22/yt-dlp.exe

              You do not need anything else but this .exe, as long as it's in your PATH environment variable of course

              Have you tried bypassing python completely for yt-dlp by renaming yt-dlp.exe to YoutubeToMP3Process.exe? What happens if you do?
              We crossed. I think I answered most of what you asked in my last message to Chameleon. I like to keep like with like. That's why I want to use yt-dlp_win.zip which is a "unpackaged Windows executable" type just like DVDFab is using. At this point I don't know if the additional files in the zip are important or not.
              I didn't notice it until recently, when you do a "YoutubeToMP3Process.exe -help" there are specific commandline parameters there just for dvdfab. There might even be more than ones that are obvious because they have the word dvdfab in them, I might have to do a side-by-side compare.

              Comment


                #8
                I guess we have to wait and see if Yanping Zhang decides it's time to upgrade as they are the one who compiled the python version currently in StreamFab. I am sure all the libraries have versions compatible with 3.8+ but sometimes, specific versions of libraries are needed for decryption to work so i don't see it as an easy upgrade unfortunately.

                Luckily, because the StreamFab python is not in the PATH, it is not accesible by malicious actors unless they target the exact location of StreamFab's python.

                Running py --list on a machine with Python and StreamFab only shows the version that can be run is the non-StreamFab one

                Click image for larger version

Name:	image.png
Views:	422
Size:	16.1 KB
ID:	427443

                Comment


                  #9
                  You sure know how to dig deep, don't you? Between what Chameleon and you wrote I'm torn between forgetting the whole thing or going stark raving berserk on it. I think it can be done without the help of DVDFab but there are two things going against me right now. Lack of experience with Python and lack of knowledge about Python. Other than that, I'm good to go.
                  I think I'm going to do what I originally planned to do today - NOTHING. It's our holiday (we only get one at a time unlike another country I'm thinking of) and so I think I'll just get lazy, grill up some burgers and hot dogs, and curse at the neighbors for scaring our cats (and dog) with their fireworks. Yep, sounds like a plan.

                  Comment


                    #10
                    Originally posted by Cats4U View Post
                    You sure know how to dig deep, don't you? Between what Chameleon and you wrote I'm torn between forgetting the whole thing or going stark raving berserk on it. I think it can be done without the help of DVDFab but there are two things going against me right now. Lack of experience with Python and lack of knowledge about Python. Other than that, I'm good to go.
                    I think I'm going to do what I originally planned to do today - NOTHING. It's our holiday (we only get one at a time unlike another country I'm thinking of) and so I think I'll just get lazy, grill up some burgers and hot dogs, and curse at the neighbors for scaring our cats (and dog) with their fireworks. Yep, sounds like a plan.
                    I just tried upgrading Python and StreamFab dies when it starts the processing phase.

                    FYI this is what i did:
                    • Went to C:\Program Files\DVDFab\StreamFab\PYthon37
                    • Ran python.exe -m pip freeze > requirements.txt
                    • Edited requirements.txt and replaced all == with >=
                    • Copied whole contents of my previously installed Python from C:\Program Files\Python311 into C:\Program Files\DVDFab\StreamFab\PYthon37
                    • Deleted all folders ending in dist-info from \lib\site-packages folder
                    • ran python.exe -m pip install --upgrade pip
                    • ran python.exe -m pip install --upgrade setuptools
                    • ran python.exe - m pip install -r requirements.txt --upgrade
                    • ran StreamFab and downloaded a movie from Netflix.
                    I figured maybe it didn't like that i upgraded the packages but even leaving the packages at the same older (very old) versions didn't work.

                    Restored the original Python folder and it is now working again when processing (decrypting) phase​.

                    Anyway, we will have to wait and see what they do but i do remember some DRM tools only working with specific versions of Python so it may be the case here...

                    Comment


                      #11
                      Originally posted by jpp72 View Post
                      Anyway, we will have to wait and see what they do but i do remember some DRM tools only working with specific versions of Python so it may be the case here...
                      You did all that for me?!!!! Hurry down here from Canada, I'll grill you a nice USA burger. Or do you want a hot dog?

                      But seriously, I'm astounded. I was able to follow what you did because I have forced a little Python knowledge into my brain in the past day or two but there is no way that I would have proceeded so properly as you. Elegantly is the word. I'm more of a ripper and a slapper. But in the end I think the results would be the same because of what you say about only working with specific versions of Python. I got that feeling the last time I attempted (half heartily) to upgrade Python. I remember that I got one specific error looking for python37.dll and if I remember correct there was a total crash of StreamFab at one point. I don't know, I'm thinking, depending on how I feel tomorrow and what the wife has planned for me, I might still do a slash and burn. I don't know. I've already easily replaced so many things that I hate that I feel stuck on this one. Do you know what I mean?

                      Last edited by Cats4U; 07-04-2023, 08:53 PM. Reason: typo

                      Comment


                        #12
                        Originally posted by Cats4U View Post

                        You did all that for me?!!!! Hurry down here from Canada, I'll grill you a nice USA burger. Or do you want a hot dog?

                        But seriously, I'm astounded. I was able to follow what you did because I have forced a little Python knowledge into my brain in the past day or two but there is no way that I would have proceeded so properly as you. Elegantly is the word. I'm more of a ripper and a slapper. But in the end I think the results would be the same because of what you say about only working with specific versions of Python. I got that feeling the last time I attempted (half heartily) to upgrade Python. I remember that I got one specific error looking for python37.dll and if I remember correct there was a total crash of StreamFab at one point. I don't know, I'm thinking, depending on how I feel tomorrow and what the wife has planned for me, I might still do a slash and burn. I don't know. I've already easily replaced so many things that I hate that I feel stuck on this one. Do you know what I mean?
                        Lol i did!!!

                        I'm sorry but i am a big boy at 6'2, 230 lbs so i need a double cheeseburger AND a hot dog!

                        There are a bunch of things that may be making it fail but i unfortunately am extra busy with a new implementation that started today and i have a big presentation tomorrow. I think i will try again on Thursday but from what i saw, i doubt i'll be able to pull it off.

                        Comment


                          #13
                          I'm sorry but i am a big boy at 6'2, 230 lbs so i need a double cheeseburger AND a hot dog! ​​
                          You got it, buddy!

                          I thought about it last night and I decided that I'm not going to bother and think you shouldn't either. Without StreamFab's source code it would be impossible to know what needed to be retrofitted. I have a strange feeling that Fengtao won't turn that over to you or me. It's probably written in Chinese even if they did. It's not worth the headaches or the time. For the most part StreamFab still works with old bug-ridden and security-risked components so why worry about it.
                          Last edited by Cats4U; 07-05-2023, 01:38 PM. Reason: typo

                          Comment


                            #14
                            Originally posted by Cats4U View Post

                            You got it, buddy!

                            I thought about it last night and I decided that I'm not going to bother and think you shouldn't either. Without StreamFab's source code it would be impossible to know what needed to be retrofitted. I have a strange feeling that Fengtao won't turn that over to you or me. It's probably written in Chinese even if they did. It's not worth the headaches or the time. For the most part StreamFab still works with old bug-ridden and security-risked components so why worry about it.
                            Ya i totally agree. Let's wait and see what they do...

                            Although i am not very confident on their priorities as they are now working on Lemino (old dTV) and a new module for OnlyFans. Onlyfans... I have yet to encounter DRM'd videos on OF so i am not sure how this is more important than broken stuff in the major international modules
                            Last edited by jpp72; 07-05-2023, 03:44 PM.

                            Comment


                              #15
                              Posted by jpp72
                              .. I have yet to encounter DRM'd video on OF so I am not sure how this is more important than broken stuff in the major international modules
                              I couldn't have said it better myself. Total agreement
                              Programmer in Python, Java, JavaScript, Swift, PHP, SQL, C#, C++, Go, R

                              Comment

                              Working...
                              X