Skip to content

Replace Boost.Process youtube-dl call with yt-dlp popen#1

Closed
Salastil wants to merge 8 commits into
masterfrom
codex/remove-boost.process-and-optimize-yt-dlp-usage
Closed

Replace Boost.Process youtube-dl call with yt-dlp popen#1
Salastil wants to merge 8 commits into
masterfrom
codex/remove-boost.process-and-optimize-yt-dlp-usage

Conversation

@Salastil
Copy link
Copy Markdown
Owner

Summary

  • remove the Boost.Process-based youtube-dl integration and invoke yt-dlp/youtube-dl via popen instead
  • switch the playlist import to yt-dlp flat playlist mode and preserve tagging of entries
  • update help text to reflect the new downloader invocation

Testing

  • not run (not requested)

Codex Task

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/actions.cpp Outdated
Comment on lines +2824 to +2828
// -f bestaudio/best: selects the best available audio-only stream, or
// alternatively the best audio+video stream
std::string escaped_url = url;
escapeSingleQuotes(escaped_url);
std::string command = ydl_path + " -j --flat-playlist -f bestaudio/best --playlist-end 100 '" + escaped_url + "' 2>/dev/null";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Flat playlist output leaves MPD without playable URLs

The new yt-dlp invocation forces --flat-playlist (lines 2824-2828), which only emits minimal entries (IDs or webpage URLs) instead of the resolved audio URLs that the previous -j -f bestaudio/best call returned. The downstream add_song logic still feeds those url/webpage_url values directly into Mpd.AddSong, so when users import a playlist the queued items are now just IDs/web pages and will be rejected or unplayable unless MPD is separately configured with a ytdl input plugin. This is a regression from the prior behavior where the action queued actual stream URLs and worked on default MPD setups.

Useful? React with 👍 / 👎.

@Salastil Salastil closed this Dec 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant