Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Awesome story! My dream phone is the 1st Gen SE, which I used on/off from 2017-2024; but with time it's suffered too many battery drains/replacements, with websites being very hard to navitage on the old 4-inch screen.
I love the iPhone 4 almost as much. Back when the 3G networks were still up (2022), I also used just an iPhone 4 for months; I only gave it up when I got a job that required "the apps"...

Tried going 'mainstream' last year with an iPhone 15, but ultimately it didn't stick. Recently got my current 6S+ with a 100% battery health (replaced by previous owner), and no joke this battery life is doing better than my wife's 15 Pro, and overheating is hardly as bad.
The 6S will surely hold on for a few more years... literally yesterday I got locked out of the AirBNB app, which now requires iOS 16, so I just switched to the web app in Safari and hardly blinked.

Incoming rant about modern apple...

People misunderstand the whole battery degradation issue soo much...
What they did was, they made great SOCs that took a very specific amount of power to perform as advertised. The whole problem was that they didn't realize old batterys couldn't provide enough power to said SOCs to perform as advertised years later. So THEY SILENTLY DOWNCLOCKED on that condition.... TERRIBLE!

When the outrage arrived, they made this optional, It defintly is still RIDICULOUS because you sold the original hardware advertisiing a specific GHz, I Couldn't belive when they actually addressed it the correct way.

Mine is still performing at 100% perffromance, but i see a battery replacent in my very near future.

TLDR:
* Apple pushed some SOCs too far back in the day, soo far that they couldn't function at the advertised frequency after battery degradation.
* Apple addressed this by throttling SOCs with degraded batteries, fueling conspiracy theorys.
* Apple got rightfullu attacked about this non-disclosed throttling
* Apple made said throttling optional (thank god, can't belive this is up to the user).

I just did better PR then apple ever did🤣
 
Last edited:
Just tested out 7.2.7 on my Sawtooth under Leopard. Video downloading (I use 360p my Sawtooth) and streaming (I primarily use QuickTime as ffplay has a tendency to cut videos off a few seconds early) work as they should. Thanks for giving us this new release!
 
Sorry for the necro post, but I've been trying the Intel version of PPCMC on 10.6, and have gotten a certificate validation error, which I've screenshotted here. Is there something I can do to work around this?

Screen shot 2025-01-27 at 9.04.59 AM.png
 
  • Like
Reactions: alex_free
Sorry for the necro post, but I've been trying the Intel version of PPCMC on 10.6, and have gotten a certificate validation error, which I've screenshotted here. Is there something I can do to work around this?

View attachment 2476349
The Intel build is very outdated and not recommended currently. You can try replacing the cacert.pem file inside of PPCMC.app, but I think you'd be better off using the current v7.2.7 powerpc build via rossetta (FFplay is broken IIRC with that, but other things should work fine).
 
R.I.P. Safari 2.0.3 on Tiger. Google.com now loads a blank page, making the Safari URL integration useless. For those that didn't know, you could previously open Safari, google a video, click the video (which loaded a broken blank page), open PPCMC.app, and it would use that URL from Safari automatically.

Can anyone on Leopard can confirm it is also broken with whatever the last Leopard Safari version there was? If so it'll be time to retire this awesome feature :(
 
  • Sad
Reactions: mectojic
Heads up guys. YouTube is youtubing again. They are breaking there formats. So for example for 720p you might need format 232+234. But videos they haven't changed yet still need 136+140. This can be fixed by "failing gracefully", but if your wondering why certain videos are not working that's why.
 
  • Like
Reactions: G4fanboy
Thanks for your continued efforts on this! I did the Update option from within ppcmc and that fixed things for me, at least for now...
 
  • Like
Reactions: alex_free
Thanks for your continued efforts on this! I did the Update option from within ppcmc and that fixed things for me, at least for now...
Indeed, updating yt-dlp does fix this. So YouTube has 2 sets of formats for H.264 (AVC1) video now. The new set is
* 394 (144p)
* 395 (240p)
* 396 (360p)
* 397 (480p)
* 398 (720p)
* 399 (1080p)

The old set still exists (so PPCMC7 is fine for now), but you need a completely up to date yt-dlp to see it. Old set as always is still:
* 160 (144p)
* 133 (240p)
* 134 (360p)
* 135 (480p)
* 136 (720p)
* 137 (1080p)

We still have format 18 (single file video+audio) which is the only reason streaming works. For downloading other resolutions, PPCMC7 currently takes one of the video only formats from the old set and combines it with format 140 for audio (m4a). However, now we have a new set of audio options as well:

* 233 (low quality mp4 audio).
* 234 (high quality mp4 audio).
* 140 (old reliable m4a audio format we've had for years).

Checking out format 234 is good news for us: Stream #0:0: Audio: aac (LC), 44100 Hz, stereo, fltp, 133 kb/s
Compared to format 140: Stream #0:0[0x1](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)

So by switching from 140 to 234, we get an extra 5kbs of bitrate for free. That'll be in the next PPCMC7 version. I think it would be smart to offer the newer set of video qualities available as well. We could have for example 'high quality 480p' and `low quality 480p' options (for every resolution).

For reference to all the available formats youtube now offers:


ID EXT RESOLUTION FPS CH │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO


────────────────────────────────────────────────────────────────────────────────────────────────────────────────


sb2 mhtml 48x27 0 │ mhtml │ images storyboard


sb1 mhtml 80x45 1 │ mhtml │ images storyboard


sb0 mhtml 160x90 1 │ mhtml │ images storyboard


233 mp4 audio only │ m3u8 │ audio only unknown Default, low


234 mp4 audio only │ m3u8 │ audio only unknown Default, high


249 webm audio only 2 │ 1.43MiB 52k https │ audio only opus 52k 48k low, webm_dash


250 webm audio only 2 │ 1.90MiB 69k https │ audio only opus 69k 48k low, webm_dash


140 m4a audio only 2 │ 3.57MiB 130k https │ audio only mp4a.40.2 130k 44k medium, m4a_dash


251 webm audio only 2 │ 3.73MiB 135k https │ audio only opus 135k 48k medium, webm_dash


602 mp4 256x144 13 │ ~ 2.21MiB 80k m3u8 │ vp09.00.10.08 80k video only


269 mp4 256x144 25 │ ~ 3.39MiB 123k m3u8 │ avc1.4D400C 123k video only


160 mp4 256x144 25 │ 1.03MiB 37k https │ avc1.4d400c 37k video only 144p, mp4_dash


603 mp4 256x144 25 │ ~ 4.25MiB 154k m3u8 │ vp09.00.11.08 154k video only


278 webm 256x144 25 │ 2.25MiB 82k https │ vp9 82k video only 144p, webm_dash


394 mp4 256x144 25 │ 1.36MiB 49k https │ av01.0.00M.08 49k video only 144p, mp4_dash


229 mp4 426x240 25 │ ~ 4.36MiB 158k m3u8 │ avc1.4D4015 158k video only


133 mp4 426x240 25 │ 1.55MiB 56k https │ avc1.4d4015 56k video only 240p, mp4_dash


604 mp4 426x240 25 │ ~ 5.22MiB 190k m3u8 │ vp09.00.20.08 190k video only


242 webm 426x240 25 │ 1.96MiB 71k https │ vp9 71k video only 240p, webm_dash


395 mp4 426x240 25 │ 1.63MiB 59k https │ av01.0.00M.08 59k video only 240p, mp4_dash


230 mp4 640x360 25 │ ~ 8.77MiB 318k m3u8 │ avc1.4D401E 318k video only


134 mp4 640x360 25 │ 2.61MiB 95k https │ avc1.4d401e 95k video only 360p, mp4_dash


18 mp4 640x360 25 2 │ ≈ 6.17MiB 224k https │ avc1.42001E mp4a.40.2 44k 360p


605 mp4 640x360 25 │ ~ 9.86MiB 358k m3u8 │ vp09.00.21.08 358k video only


243 webm 640x360 25 │ 3.32MiB 120k https │ vp9 120k video only 360p, webm_dash


396 mp4 640x360 25 │ 2.66MiB 96k https │ av01.0.01M.08 96k video only 360p, mp4_dash


231 mp4 854x480 25 │ ~ 11.19MiB 406k m3u8 │ avc1.4D401E 406k video only


135 mp4 854x480 25 │ 3.85MiB 139k https │ avc1.4d401e 139k video only 480p, mp4_dash


606 mp4 854x480 25 │ ~ 12.65MiB 459k m3u8 │ vp09.00.30.08 459k video only


244 webm 854x480 25 │ 5.09MiB 185k https │ vp9 185k video only 480p, webm_dash


397 mp4 854x480 25 │ 4.31MiB 156k https │ av01.0.04M.08 156k video only 480p, mp4_dash


232 mp4 1280x720 25 │ ~ 16.57MiB 602k m3u8 │ avc1.4D401F 602k video only


136 mp4 1280x720 25 │ 6.86MiB 249k https │ avc1.4d401f 249k video only 720p, mp4_dash


609 mp4 1280x720 25 │ ~ 17.46MiB 634k m3u8 │ vp09.00.31.08 634k video only


247 webm 1280x720 25 │ 7.46MiB 270k https │ vp9 270k video only 720p, webm_dash


398 mp4 1280x720 25 │ 8.09MiB 293k https │ av01.0.05M.08 293k video only 720p, mp4_dash


270 mp4 1920x1080 25 │ ~132.38MiB 4807k m3u8 │ avc1.640028 4807k video only


137 mp4 1920x1080 25 │ 89.00MiB 3227k https │ avc1.640028 3227k video only 1080p, mp4_dash


614 mp4 1920x1080 25 │ ~ 76.82MiB 2790k m3u8 │ vp09.00.40.08 2790k video only


248 webm 1920x1080 25 │ 58.97MiB 2138k https │ vp9 2138k video only 1080p, webm_dash


399 mp4 1920x1080 25 │ 28.89MiB 1048k https │ av01.0.08M.08 1048k video only 1080p, mp4_dash


616 mp4 1920x1080 25 │ ~157.72MiB 5727k m3u8 │ vp09.00.40.08 5727k video only Premium
 
I've been working on something like PPCMC7 for the Xbox 360, to show the new way we can get the highest requested resolution in either format set it will work along these lines:

elif [ "$1" == "-yh" ]; 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).
formats="$(yt-dlp -F "${2}")"
highest_supported_format="$(echo "$formats" | grep 'avc1' | awk '$1 != 160' | 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 yt-dlp with the command x360mc -u."
exit 1
fi

echo "Got format "$highest_supported_format""
yt-dlp -f "$highest_supported_format"+234 "${2}"
elif [ "$1" == "-yl" ]; 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).
formats="$(yt-dlp -F "${2}")"
highest_supported_format="$(echo "$formats" | grep 'avc1' | awk '$1 <= 137' | 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 yt-dlp with the command x360mc -u."
exit 1
fi

echo "Got format "$highest_supported_format""
yt-dlp -f "$highest_supported_format"+234 "${2}"
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.