Files
youtube-chat-rs/src/main.rs

40 lines
1.2 KiB
Rust

use tonic::{Request, Status, metadata::MetadataValue, transport::Channel};
use youtube_chat_rs::stream_list::{
LiveChatMessageListRequest,
v3_data_live_chat_message_service_client::V3DataLiveChatMessageServiceClient,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let channel = Channel::from_static("dns:///youtube.googleapis.com:443")
.connect()
.await?;
let mut client = V3DataLiveChatMessageServiceClient::with_interceptor(channel, auth_header);
let request = tonic::Request::new(LiveChatMessageListRequest {
part: vec!["snippet".to_string()],
live_chat_id: Some("A0VHDvkheIg".to_string()), // TODO Fetch Latest Stream ID
max_results: Some(20),
page_token: None,
hl: None,
profile_image_size: None,
});
let response = client.stream_list(request).await?;
println!("RESPONSE={:?}", response);
Ok(())
}
fn auth_header(mut req: Request<()>) -> Result<Request<()>, Status> {
let token: MetadataValue<_> = "Bearer my-secret-token"
.parse()
.expect("failed to parse token");
req.metadata_mut()
.insert("x-goog-api-key", token)
.expect("WHAT");
Ok(req)
}