Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
PPCMC 7.2.8 Changelog so far...

* Native Intel build.
* Complete rewrite to using a universal bash script for web interface and GUI.
* Specify your desired resolution once (480p, 720p, 1080p) and it will download the highest closest resolution instead of getting errors about some specific resolution not being available for a specific video and having to start all over.
* Functional equivalent web interface.
* Updates to open source software suite and certificates.

I am running GCC 4.0/10.4SDK into the ground kicking and screaming :). YT-DLP continues to support Python 3.10 (the last C99 compatible version, which still needs tons of patches).I will be quite sad when they drop python 3.10 support.

Thanks for your work
Not sure if it can help in any way , but there is this site for YouTube for nokias,
Also works on PowerPC

 
Can confirm, s60tube allows smtube to search it's site and grab urls for streaming with mplayer. It all works on Tiger. Good find!
Nice! Reminder safari can still grab urls, and you can use the PPCMC Web Interface on anything from Netscape on Mac OS 9 to your latest iPhone to download urls for playback later on your PPC or early intel Mac.

Another exciting feature for the next update I hope I can work out is “beam”. Basically send a url to your ppc Mac from any device on your LAN/same Wi-Fi, and not only will it download the video it will auto play it on said Mac.
 
  • Like
Reactions: z970
I've been wanting to make a thread about this for the longest time now but can never get around to it, so I'll just leave this here and hopefully people will notice...

This site accepts most YouTube URLs and converts them into an (I believe) MP4 video file directly embedded in the browser, bypassing the advanced requirements imposed by YouTube just to access their library, and is a great alternative when Invidious either isn't available or isn't compatible with your device. Case in point, I've tested it with success on Safari 5 in both iOS 5 and OS X 10.5. Great for 1st Generation iPads and 1.25+ GHz G4s alike.


The Internet Archive has also saved versions of their website dating back to 2019, so it's a safe assumption that it will probably continue to function into the future and not abruptly break or disappear like tonvid.com, ytprivate.com, and iteroni.com in the past (who remembers MacTubes and YouView?).

I think S60Tube is even better for weaker / older systems though, besides PPCMC (on the Mac end, that is). These frontends are both joined by the ranks of curated video libraries such as Bolkonskij's Cornica.org and Protoweb's Warpstream.org specially-designed for our vintage systems.

PS: Here's another vote for inv.nadeko.net. The guy behind this instance is ingenious for coming up with the backend system and deserves all of the accolades; hopefully other instances will copy his approach to better distribute server load and revive Invidious from almost dying.
 
Nice! Reminder safari can still grab urls, and you can use the PPCMC Web Interface on anything from Netscape on Mac OS 9 to your latest iPhone to download urls for playback later on your PPC or early intel Mac.

Another exciting feature for the next update I hope I can work out is “beam”. Basically send a url to your ppc Mac from any device on your LAN/same Wi-Fi, and not only will it download the video it will auto play it on said Mac.

BTW, if this is of any interest, you are welcome to submit a port for PPCMC. (I can help with writing it, if you aren’t familiar enough with MacPorts specifics.) I dunno if we already have all dependencies, but if not, it should be easy to add missing ones.
 
  • Like
Reactions: alex_free
I've had to update yt-dlp twice in the past 24 hours, and both times it worked so I can continue watching 720p videos on my MacBook running tiger. This is my youtube downloader updater code, and is why the PPCMC7 youtube downloader updater works better then your linux distro :) thinking about doing a check for if it hasn't been ran in the past day, and automatically doing so for PPCMC 7.2.8. Youtube sure is getting agressive. Thats why I decided in even 2024 when PPCMC 7.2.7 was release to NOT wait on official releases, and to instead download the actual github repo source tree so as soon as commits are put in we get them. It's already faster to use the decompressed python __main__.py anyways, win-win.
1755961567664.png
 
Last edited:
It actually works, I've been wanting to do this since 2020. You can set your preference saying "I want 720p" or "I want 480p". Then:

1. Attempts 720p download.
2. If 720p doesn't exist, checks the available formats that do exist.
3. Gets the highest resolution actually offered by youtube, so could be 480p, 360p, etc. (this is dependent on video).
4. Downloads that.

No more will you try to download a video at i.e. 480p and leave with nothing but an error, having to start all over again.

This also works with the newer video formats via an optional setting, but that seems to be not compatible with legacy VLC/QuickTime. More testing will need to be done to see if it works with FFplay/makes sense to implement since these may now just be the same quality videos at a lower bitrate set due to more advanced/cpu intensive encoding.

Bash:
# $1 is requested URL.
# $2 is download filepath. This needs to be an argument because if we are downloading+converting that needs to be a temp dir!
download_youtube_video_requested_format()
{
    #$youtube -F "${1}"
    # Request to download requested video format+M4A 128KB/s AAC combined.
    if ! $youtube -f "$requested_format"+140 "${1}" -o "$2"/"%(title)s.%(ext)s"; then
        # Error handling. Requested format did not exist... so what about lower resolutions?
        formats="$($youtube -F "${1}")"
        echo $formats
        # Check higher bitrate set first, because if that doesn't exist for this specific video, we need to drop into the lower bitrate set gaurenteed to exist.
        if [ "$download_quality" = "high" ]; then
            # Find lines containing 'avc1' and sort them by format number in reverse order. If this format set exists we will never get to the lower bitrate format set. If it doesn't we will skip format 160 (144p lower bitrate) and drop into 133-137 range. Full highest bitrate set for H.264 (AVC1) video is:
            # * 394 (144p).
            # * 395 (240p).
            # * 396 (360p).
            # * 397 (480p).
            # * 398 (720p).
            # * 399 (1080p).
            # Check UP TO the requested format, but NO LOWER then 394 (144p).
            highest_supported_format="$(echo "$formats" | grep 'mp4' | awk -v req="$requested_format" '$1 >= 394 && $1 <= req' | sort -t ' ' -k1,1nr | head -n 1 | awk '{print $1}')"
            # Did we get anything??
            if [ -z "$highest_supported_format" ]; then
                echo "Info: unable to get any video format in the higher bitrate set. Trying lower bitrate set."
                download_quality=low
                # Want to get the same res now in the lower bitrate set. 399-137=262 difference.
                requested_format=$((requested_format - 262))
                echo "Trying format: $requested_format"
            else
                echo "Got format "$highest_supported_format""
                $youtube -f "$highest_supported_format"+140 "${1}" -o "$2"/"%(title)s.%(ext)s"
            fi   
        fi

        # NOTICE: this is not an elif or else because the above COULD trigger this.
        if [ "$download_quality" = "low" ]; then
            # Find lines containing 'avc1' and sort them by format number in reverse order. Ignores everything after 137 (higher quality set of AVC1). Ignores format 160 (144p) because 240p is always available and that seems like a pain in the ass to implement. Full lower bitrate set for H.264 (AVC1) video is:
            # * 160 (144p) (ignored, never downloaded see above).
            # * 133 (240p).
            # * 134 (360p).
            # * 135 (480p).
            # * 136 (720p).
            # * 137 (1080p).

            
            # Check UP TO the requested format, doesn't check format 160 since if that is what was originally desired it is a non-issue.
           # highest_supported_format="$(echo "$formats" | grep 'avc1' | awk '$1 <= 137' | sort -t ' ' -k1,1nr | head -n 1 | awk '{print $1}')"
            highest_supported_format="$(echo "$formats" | grep 'mp4' | awk -v req="$requested_format" '$1 <= req' | sort -t ' ' -k1,1nr | head -n 1 | awk '{print $1}')"

            if [ -z "$highest_supported_format" ]; then
                echo "Error: unable to get any video format. Try updating the youtube downloader!"
                exit 1
            fi
    
            echo "Got format "$highest_supported_format""
            $youtube -f "$highest_supported_format"+140 "${1}" -o "$2"/"%(title)s.%(ext)s"
        fi
    # It worked first try!
    fi
}
 
I just re read this thread https://forums.macrumors.com/thread...e-live-stream-method-on-powerpc-macs.2306681/

And it’s sad because it was an omen. QuickTime 7 and VLC tiger are unable to stream many regular YouTube uploads. As I create PPCMC 7.2.8 I worrry more and more that they will suddenly drop python 3.10, the absolute last C99 capable python. There are many backup plans yes but it will make the end of an era.

No other developer has continued to use Xcode v2.5 in 2025 but me. And even tho their are backup plans it won’t be easy at all… PPCMC 7 has basically been it’s own standalone macports to create a dev environment, something stable that doesn’t change. Can’t be affected by any third parties… that think tiger is obsolete and don’t support it anymore. When python 3.10 drops from dlp it will be a whole new game. Still, even to this day they only require python 3.9, and maybe unknown to you all I do not disable the telemetry that the original PPCMC 6 did. I hate telemetry more then you trust, but if they can see how many people still need a C99 python maybe they will hold off ya know?

AFAIK every python through 3.13 should work back to 10.4. I get that passing from 3.10 to 3.11+ requires a lot more dependencies to build on 10.4, but as of now it merely implies a longer compilation, not a breakage.
 
  • Like
Reactions: alex_free
AFAIK every python through 3.13 should work back to 10.4. I get that passing from 3.10 to 3.11+ requires a lot more dependencies to build on 10.4, but as of now it merely implies a longer compilation, not a breakage.
That’s good. I’ve been only using standard Xcode 2.5, limiting to C99 compilers. There’s a way path forward for sure but it’s still sad C99 is dying out left and right. This is also a lot because of the panther support, and also just to prove that it’s possible. Also with my current custom build system it’s nice to not have any surprise breakages and have something consistent. It’ll be worked out regardless.
 
That’s good. I’ve been only using standard Xcode 2.5, limiting to C99 compilers. There’s a way path forward for sure but it’s still sad C99 is dying out left and right. This is also a lot because of the panther support, and also just to prove that it’s possible. Also with my current custom build system it’s nice to not have any surprise breakages and have something consistent. It’ll be worked out regardless.

TBH I am not sure it is worth the effort to fight for C99 compatibility for the simple reason: provided it is not a question of 1–2 ports, it quickly becomes far more time-consuming (if possible at all) to fix every dependency to build for C99 or, alternatively, manage fallback versions for them, than to just build a modern gcc few times a year, hopefully with no need of manual hacks at all.
 
TBH I am not sure it is worth the effort to fight for C99 compatibility for the simple reason: provided it is not a question of 1–2 ports, it quickly becomes far more time-consuming (if possible at all) to fix every dependency to build for C99 or, alternatively, manage fallback versions for them, than to just build a modern gcc few times a year, hopefully with no need of manual hacks at all.
To my effort, we are already at the limit on C99. FFmpeg 4.x and Python 3.10 are capped there. I won't be rewriting any code into C99 for newer versions.

For some better news, the new proof of concept with streaming I've been working on:
1757174507097.png
1757174339472.png

1757174356464.png

1757174372695.png

No ads. No javascript heavy website. background playback no drm.

YouTube is killing the ability to stream video via legacy platforms though. Half of the Youtube library doesn't stream via QuickTime 7 anymore. This also goes for this feature (streams audio or video, users choice). VLC on Tiger streaming is dead. TenFourFox handles the above just fine. YouTube needs a slightly modern browser to do streaming, or a slightly modern video player. FFplay 4.4.5 has you covered, as well as TenFourFox. Download n play of course will not die via the web interface or PPCMC7 app.
 
  • Like
Reactions: MacFoxG4
VLC on Tiger streaming is dead. TenFourFox handles the above just fine. YouTube needs a slightly modern browser to do streaming, or a slightly modern video player. FFplay 4.4.5 has you covered, as well as TenFourFox. Download n play of course will not die via the web interface or PPCMC7 app.

Which VLC? Is VLC2 from MacPorts also useless for streaming? (I am not sure I tried.)
However, after wasting a lot of time on trying to fix this or that VLC version, I really hate that code, it is messy, out-of-date (VLC3 still uses SDL1!) and bugs are not being fixed forever. So instead: what about MPV or Mplayer? Modern versions, of course.

P. S. If someone bothers to fix QMPlay2 for Tiger, it has YouTube working.
 
Which VLC? Is VLC2 from MacPorts also useless for streaming? (I am not sure I tried.)
However, after wasting a lot of time on trying to fix this or that VLC version, I really hate that code, it is messy, out-of-date (VLC3 still uses SDL1!) and bugs are not being fixed forever. So instead: what about MPV or Mplayer? Modern versions, of course.

P. S. If someone bothers to fix QMPlay2 for Tiger, it has YouTube working.
Holly crap modern VLC uses SDL1? We have had SDL2.0.3 powered FFplay (my greatest accomplishment imo) since 2020 on Mac OS X 10.3.9. FFplay 4.4.5 in PPCMC7 is a completely modern video player.

I’m taking about VLC 0.9.1, the last official version from the website. Previously that and QuickTime 7.7.1 on Tiger could handle twitch and YouTube streaming with ease, but now their apis are generating links not compatible with those players… thank god I worked out ffplay 5 years ago.

FFplay is the only modern player for PPC in that regard, and also the screenshots I posted are a web service hosted by an early intel tiger Mac using the power pc media center web interface. This allows YouTube access to things like obsolete iOS devices, macs, and legacy browsers.

Xcode 2.5 has a sort of “hack” where you can specify Mac OS X 10.3 API and get executables to run on Mac OS X 10.3.9 with some fuss, trust the panther sdl code needed a lot of changes to make it work on 10.3.9 like this. But it was for sure very advance for its time. Moving to a new compiler will break this for sure, I basically have had my own ports system for 5 years now with PPCMC7. It will die on panther support because no one really cared, even tho I tried to make it a viable option even 5 years ago. No one took to it. But regardless the build system is this insane thing that at this point I won’t use macports until yt-dlp discountuies C99
 
Last edited:
  • Like
Reactions: MacFoxG4
Holly crap modern VLC uses SDL1?

I am not sure it “uses” it in a sense of it working and someone actually using it as a vo, but I recall I tried building against SDL2, and that failed, and probably configure has version-related notes.
I think it is also just broken, at least with VLC2 I could only make X11 to work, everything else was defunct. That’s pathetic, to have multiple vo options with a single one kinda functional.
No other player was such a mess – yeah, many of them got broken Cocoa or, even worse, force Swift (mpv now), but merely switching away from Cocoa is pretty much sufficient. Then everything just works.

Last time I tried with VLC3 (which was actually working via X11 earlier) on x86_64 (!), it still could not handle a lot of vids and just played some select ones.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.