diff --git a/get_url.sh b/get_url.sh new file mode 100755 index 0000000..ba6dbb0 --- /dev/null +++ b/get_url.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +CHANNEL=$1 +LIVE_ID=$(curl -sL "https://www.youtube.com/@$CHANNEL/live" | grep -oE '"videoId":"([^"]+)"' | head -n 1 | cut -d'"' -f4) + +echo "$LIVE_ID" diff --git a/src/client.rs b/src/client.rs deleted file mode 100644 index 4c21d2a..0000000 --- a/src/client.rs +++ /dev/null @@ -1,11 +0,0 @@ -use tonic::{Request, Response, Status, transport::Server}; - -// use stream_list::greeter_server::{Greeter, GreeterServer}; -// use stream_list::{HelloReply, HelloRequest}; -use stream_list::{ - LiveChatMessageListRequest, - v3_data_live_chat_message_service_server::V3DataLiveChatMessageService, -}; -pub mod stream_list { - tonic::include_proto!("youtube.api.v3"); -} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..ec2719e --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,19 @@ +use std::process::Command; + +pub mod stream_list { + tonic::include_proto!("youtube.api.v3"); +} + +fn get_live_id(channel: String) -> String { + let video_id = Command::new("./get_url.sh") + .arg(channel) + .output() + .expect("couldn't execute fetch script"); + let stdout = video_id.stdout.as_slice().to_vec(); + String::from_utf8_lossy(&stdout).trim().to_string() +} + +#[test] +fn test_get_live_id() { + get_live_id("linlyboi".to_string()); +} diff --git a/src/main.rs b/src/main.rs index d5b5172..604dd1d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,8 @@ -use client::stream_list::{ +use tonic::{Request, Status, metadata::MetadataValue, transport::Channel}; +use youtube_chat_rs::stream_list::{ LiveChatMessageListRequest, v3_data_live_chat_message_service_client::V3DataLiveChatMessageServiceClient, }; -use tonic::{Request, Status, metadata::MetadataValue, transport::Channel}; -mod grpc; #[tokio::main] async fn main() -> Result<(), Box> {