Input: Pass --no-playlist for YoutubeDl (#168)
If a link such as [this](https://www.youtube.com/watch?v=ygY2qObZv24&list=RDygY2qObZv24) is passed to `YoutubeDl` without the option, it would cause a deadlock in my bot. There were many videos where it produced a `Silent` packet first instead of mixed or passthrough. The URL I added was one that produced a passthrough packet so I used that. Please let me know if this is wrong.
This commit is contained in:
@@ -57,7 +57,13 @@ impl YoutubeDl {
|
||||
}
|
||||
|
||||
async fn query(&mut self) -> Result<Output, AudioStreamError> {
|
||||
let ytdl_args = ["-j", &self.url, "-f", "ba[abr>0][vcodec=none]/best"];
|
||||
let ytdl_args = [
|
||||
"-j",
|
||||
&self.url,
|
||||
"-f",
|
||||
"ba[abr>0][vcodec=none]/best",
|
||||
"--no-playlist",
|
||||
];
|
||||
|
||||
let mut output = Command::new(self.program)
|
||||
.args(ytdl_args)
|
||||
@@ -144,7 +150,8 @@ mod tests {
|
||||
use reqwest::Client;
|
||||
|
||||
use super::*;
|
||||
use crate::{constants::test_data::YTDL_TARGET, input::input_tests::*};
|
||||
use crate::constants::test_data::*;
|
||||
use crate::input::input_tests::*;
|
||||
|
||||
#[tokio::test]
|
||||
#[ntest::timeout(20_000)]
|
||||
@@ -152,6 +159,13 @@ mod tests {
|
||||
track_plays_mixed(|| YoutubeDl::new(Client::new(), YTDL_TARGET.into())).await;
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[ntest::timeout(20_000)]
|
||||
async fn ytdl_page_with_playlist_plays() {
|
||||
track_plays_passthrough(|| YoutubeDl::new(Client::new(), YTDL_PLAYLIST_TARGET.into()))
|
||||
.await;
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
#[ntest::timeout(20_000)]
|
||||
async fn ytdl_forward_seek_correct() {
|
||||
|
||||
Reference in New Issue
Block a user