NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Lost Chapter of Automate the Boring Stuff: Audio, Video, and Webcams in Python (inventwithpython.com)
fireattack 5 days ago [-]
> playsound

This library is unfortunately effectively abandoned -- it hasn’t received any updates in over four years, and its latest version doesn’t work at all: https://github.com/TaylorSMarks/playsound/issues/101

(A workaround exists: downgrading to version 1.2.2, but that comes with its own issues.)

The last time I experimented with audio in Python, I was surprised by how lacking its multimedia libraries are.

For example, when I needed to read audio files as data, I tried `SoundFile`, `librosa` (a wrapper around `SoundFile` or `audioread`), and `pydub`, and none of them was particularly satisfying or has seen much active development lately.

If you need to read various formats, pydub is probably your best bet (it does this by invoking ffmpeg under the hood). I was hoping for a more "native" solution, but oh well. Unfortunately, `pydub` is also unmaintained and has some serious performance issues (for example: https://github.com/jiaaro/pydub/issues/518 )

acheong08 3 days ago [-]
Huh I recognize that library. Ran into the same issues last year and made a fork. https://github.com/acheong08/playsound https://pypi.org/project/playsound2/
AlSweigart 4 days ago [-]
Oh, thanks for pointing this out. This was an early unpublished draft. I later changed to `playsound3` which is a modern fork of `playsound`. I've updated the web page.
frainfreeze 4 days ago [-]
I guess it depends on the context? For example panda3d supports openAL, FMOD and Miles.
bgwalter 4 days ago [-]
This author is an apologist for the slander of Tim Peters:

https://www.reddit.com/r/Python/comments/1f00qdo/no_vote_of_...

He cites Glyph Lefkowitz to support him, who now gives advice on lunch vs. dinner networking strategies at PyCons. Which should be taken seriously: Being in the right circles and talking is all that matters in the Python ecosystem.

sfilmeyer 4 days ago [-]
I'm not in near deep enough to have any ideas what you're talking about, and the link didn't really help. Can you explain?

Who is Tim Peters? How were they slandered? What did the author do that you disliked? Who is Glyph Lefkowitz? Why is citing Glyph Lefkowitz an indictment of the author?

worthless-trash 4 days ago [-]
Let the post stand on its own. I'm fucking sick and tired of people dragging unrelated politics into discussions.
amelius 5 days ago [-]
> Playing a video file from your Python program is complicated.

You can use PySide6. Here is an example:

    import sys
    from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout
    from PySide6.QtMultimedia import QMediaPlayer, QAudioOutput
    from PySide6.QtMultimediaWidgets import QVideoWidget
    from PySide6.QtCore import QUrl


    class VideoPlayer(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("Video Player - video.mp4")
            self.resize(800, 600)

            # Layout
            layout = QVBoxLayout()
            self.setLayout(layout)

            # Video widget
            self.video_widget = QVideoWidget()
            layout.addWidget(self.video_widget)

            # Media player
            self.media_player = QMediaPlayer(self)
            self.audio_output = QAudioOutput(self)
            self.media_player.setAudioOutput(self.audio_output)
            self.media_player.setVideoOutput(self.video_widget)

            # Load video file
            self.media_player.setSource(QUrl.fromLocalFile("video.mp4"))

            self.media_player.play()


    if __name__ == "__main__":
        app = QApplication(sys.argv)
        player = VideoPlayer()
        player.show()
        sys.exit(app.exec())
alabhyajindal 5 days ago [-]
I learned Python from your Udemy course of the same name. Congrats on the new edition of the book!
AlSweigart 4 days ago [-]
I know I've been saying this for years, but I seriously will get around to updating the videos in the Udemy course this year.
jmlim00 3 days ago [-]
Back in school, after taking an intro to programming language course as an elective, I've been struggling to understand the missing link between knowing a programming language and writing a program. This book bridged that gap, and everything finally clicked. I'll definitely be checking out the new content as well. Thanks for changing my life!
bix6 5 days ago [-]
One of my favorite programming books of all times. Cheers Al!
cortical_iv 5 days ago [-]
I'm curious why you didn't end up including this material?
AlSweigart 4 days ago [-]
Page count. Automate the Boring Stuff with Python is supposed to be a beginner book for people with no coding experience, but it's almost 600 pages. The biggest hurdle to coding isn't being "smart" enough, but rather getting over the intimidation factor.

The editor recommended we cut this chapter. It made me realize that even though I work with multimedia stuff all the time, this isn't really something most office workers do (at least, not at the scale where you'd want to write Python scripts).

A lot of teaching people to code is hiding details so you don't fire hose them with information they don't need yet. So many software nerds don't get this, and they're excited about all these cool advanced techniques without realizing that beginners don't need to know about recursion or operator overloading. (I completely skip OOP in the book.)

cortical_iv 3 days ago [-]
Makes sense: OpenCV is amazing, but has many rabbit holes and pitfalls. Thanks for posting the draft for us to peruse!
globalnode 5 days ago [-]
When I saw yt-dlp I thought "risky", wasn't there was a lot of complaining from YT back in the day about this programs predecessor?
Simon_O_Rourke 5 days ago [-]
Love it, that's where I direct all our new hires who want to pick up the basics of Python. I'll be reading this chapter myself this weekend too.
xbmcuser 5 days ago [-]
I was never able to get my head around programing despite my interest over the years. But LLM and python scripts in the last 3-4 years have changed my life.
ymck 5 days ago [-]
What thing have you found most interesting or impactful for you?
analog31 5 days ago [-]
This is fantastic. I've gotten so much out of cv2 and Python, and just a perusal of the page suggests that there's lots more to learn.
ajot 4 days ago [-]
As others here have already said, thank you for your book, and for having it for free on your website. After years of thinking about leraning to program, I finally started with you book a couple of years ago. It is so much fun, and it's been super helpful on my day to day job.
geophph 5 days ago [-]
And a transit nerd supporter!
AlSweigart 4 days ago [-]
Hello, this is Al. Ha ha, I'm always surprised when people spot my name in supporter credits. Here's a (very out of date) web page of other folks I support: https://alsweigart.com/patreon.html
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 00:12:00 GMT+0000 (Coordinated Universal Time) with Vercel.