pub struct VideoClient<'a> { /* private fields */ }Expand description
视频领域 API 客户端。
Implementations§
Source§impl<'a> VideoClient<'a>
impl<'a> VideoClient<'a>
Sourcepub async fn coin_status(
&self,
params: VideoCoinStatusParams,
) -> BpiResult<VideoCoinStatusData>
pub async fn coin_status( &self, params: VideoCoinStatusParams, ) -> BpiResult<VideoCoinStatusData>
检查当前账号已给视频投出多少硬币。
Self::coin 成功后,上游 endpoint 可能会短暂滞后。
Sourcepub async fn like(&self, params: VideoLikeParams) -> BpiResult<Option<Value>>
pub async fn like(&self, params: VideoLikeParams) -> BpiResult<Option<Value>>
点赞或取消点赞视频,并返回可选的标准 payload 结果。
Sourcepub async fn coin(&self, params: VideoCoinParams) -> BpiResult<CoinData>
pub async fn coin(&self, params: VideoCoinParams) -> BpiResult<CoinData>
给视频投币,并返回标准 payload 结果。
Bilibili 的 Web endpoint 需要包含 buvid3 的正常登录 cookie 集合;
即使存在 SESSDATA 和 bili_jct,缺少它的账号也可能触发风控。
Sourcepub async fn favorite(
&self,
params: VideoFavoriteParams,
) -> BpiResult<FavoriteData>
pub async fn favorite( &self, params: VideoFavoriteParams, ) -> BpiResult<FavoriteData>
将视频添加到收藏夹,或从收藏夹中移除。
Source§impl<'a> VideoClient<'a>
impl<'a> VideoClient<'a>
Sourcepub async fn view(&self, params: VideoViewParams) -> BpiResult<VideoView>
pub async fn view(&self, params: VideoViewParams) -> BpiResult<VideoView>
按 AV ID 或 BV ID 获取 Web 视频详情。
Examples found in repository?
examples/module_clients.rs (line 19)
9async fn main() -> BpiResult<()> {
10 let client = client_from_env()?;
11 let video_params = VideoViewParams::from_bvid("BV1xx411c7mD".parse::<Bvid>()?);
12 let bangumi_params = BangumiInfoParams::new(MediaId::new(28_220_978)?);
13
14 if !run_live_example() {
15 println!("module-client 快速示例已编译;设置 BPI_RUN_EXAMPLE=1 后会发起真实网络请求");
16 return Ok(());
17 }
18
19 let video = client.video().view(video_params).await?;
20 println!("video: {}", video.title);
21
22 let bangumi = client.bangumi().info(bangumi_params).await?;
23 println!("bangumi: {}", bangumi.media.title);
24
25 if env::var_os("BPI_COOKIE").is_some() {
26 let nav = client.login().nav().await?;
27 println!("logged in: {}", nav.is_login);
28 }
29
30 Ok(())
31}More examples
examples/video_info.rs (line 26)
21async fn main() -> BpiResult<()> {
22 let bvid = video_bvid()?;
23 let client = BpiClient::new()?;
24 let video = client.video();
25
26 let view = video.view(VideoViewParams::from_bvid(bvid.clone())).await?;
27 println!(
28 "视频: {} ({}) UP={} 播放={} 点赞={}",
29 view.title, view.bvid, view.owner.name, view.stat.view, view.stat.like
30 );
31
32 let pages = video
33 .page_list(VideoPageListParams::from_bvid(bvid.clone()))
34 .await?;
35 println!("分 P 数: {}", pages.len());
36 for page in pages.iter().take(5) {
37 println!(" P{} cid={} {}", page.page, page.cid, page.part);
38 }
39
40 let desc = video.desc(VideoDescParams::from_bvid(bvid)).await?;
41 let first_line = desc.lines().next().unwrap_or("");
42 println!("简介首行: {first_line}");
43
44 Ok(())
45}Sourcepub async fn detail(&self, params: VideoDetailParams) -> BpiResult<VideoDetail>
pub async fn detail(&self, params: VideoDetailParams) -> BpiResult<VideoDetail>
获取 Web 视频详情,包括标签和相关视频。
Sourcepub async fn page_list(
&self,
params: VideoPageListParams,
) -> BpiResult<Vec<VideoPage>>
pub async fn page_list( &self, params: VideoPageListParams, ) -> BpiResult<Vec<VideoPage>>
获取视频的分 P/内容 ID。
Examples found in repository?
examples/video_info.rs (line 33)
21async fn main() -> BpiResult<()> {
22 let bvid = video_bvid()?;
23 let client = BpiClient::new()?;
24 let video = client.video();
25
26 let view = video.view(VideoViewParams::from_bvid(bvid.clone())).await?;
27 println!(
28 "视频: {} ({}) UP={} 播放={} 点赞={}",
29 view.title, view.bvid, view.owner.name, view.stat.view, view.stat.like
30 );
31
32 let pages = video
33 .page_list(VideoPageListParams::from_bvid(bvid.clone()))
34 .await?;
35 println!("分 P 数: {}", pages.len());
36 for page in pages.iter().take(5) {
37 println!(" P{} cid={} {}", page.page, page.cid, page.part);
38 }
39
40 let desc = video.desc(VideoDescParams::from_bvid(bvid)).await?;
41 let first_line = desc.lines().next().unwrap_or("");
42 println!("简介首行: {first_line}");
43
44 Ok(())
45}Sourcepub async fn desc(&self, params: VideoDescParams) -> BpiResult<String>
pub async fn desc(&self, params: VideoDescParams) -> BpiResult<String>
获取纯文本视频简介。
Examples found in repository?
examples/video_info.rs (line 40)
21async fn main() -> BpiResult<()> {
22 let bvid = video_bvid()?;
23 let client = BpiClient::new()?;
24 let video = client.video();
25
26 let view = video.view(VideoViewParams::from_bvid(bvid.clone())).await?;
27 println!(
28 "视频: {} ({}) UP={} 播放={} 点赞={}",
29 view.title, view.bvid, view.owner.name, view.stat.view, view.stat.like
30 );
31
32 let pages = video
33 .page_list(VideoPageListParams::from_bvid(bvid.clone()))
34 .await?;
35 println!("分 P 数: {}", pages.len());
36 for page in pages.iter().take(5) {
37 println!(" P{} cid={} {}", page.page, page.cid, page.part);
38 }
39
40 let desc = video.desc(VideoDescParams::from_bvid(bvid)).await?;
41 let first_line = desc.lines().next().unwrap_or("");
42 println!("简介首行: {first_line}");
43
44 Ok(())
45}Sourcepub async fn play_url(
&self,
params: VideoPlayUrlParams,
) -> BpiResult<PlayUrlResponseData>
pub async fn play_url( &self, params: VideoPlayUrlParams, ) -> BpiResult<PlayUrlResponseData>
按 AV ID 或 BV ID 以及分 P/内容 ID 获取已签名的 Web 播放 URL。
Sourcepub async fn seasons_archives_list(
&self,
params: VideoCollectionSeasonsArchivesParams,
) -> BpiResult<GetSeasonsArchivesData>
pub async fn seasons_archives_list( &self, params: VideoCollectionSeasonsArchivesParams, ) -> BpiResult<GetSeasonsArchivesData>
获取指定视频合集中的视频。
Sourcepub async fn home_seasons_series(
&self,
params: VideoCollectionHomeSeasonsSeriesParams,
) -> BpiResult<GetSeasonsSeriesData>
pub async fn home_seasons_series( &self, params: VideoCollectionHomeSeasonsSeriesParams, ) -> BpiResult<GetSeasonsSeriesData>
获取用户主页的合集和系列列表。
Sourcepub async fn seasons_series_list(
&self,
params: VideoCollectionSeasonsSeriesParams,
) -> BpiResult<GetSeasonsSeriesData>
pub async fn seasons_series_list( &self, params: VideoCollectionSeasonsSeriesParams, ) -> BpiResult<GetSeasonsSeriesData>
分页获取用户的合集和系列列表。
Sourcepub async fn series_info(
&self,
params: VideoCollectionSeriesInfoParams,
) -> BpiResult<GetSeriesData>
pub async fn series_info( &self, params: VideoCollectionSeriesInfoParams, ) -> BpiResult<GetSeriesData>
获取指定视频系列的元数据。
Sourcepub async fn series_archives(
&self,
params: VideoCollectionSeriesArchivesParams,
) -> BpiResult<GetSeriesArchivesData>
pub async fn series_archives( &self, params: VideoCollectionSeriesArchivesParams, ) -> BpiResult<GetSeriesArchivesData>
获取指定视频系列中的视频。
Sourcepub async fn online_total(
&self,
params: VideoOnlineTotalParams,
) -> BpiResult<OnlineTotalResponseData>
pub async fn online_total( &self, params: VideoOnlineTotalParams, ) -> BpiResult<OnlineTotalResponseData>
获取视频分 P 的在线人数计数。
Sourcepub async fn player_info_v2(
&self,
params: VideoPlayerInfoParams,
) -> BpiResult<PlayerInfoResponseData>
pub async fn player_info_v2( &self, params: VideoPlayerInfoParams, ) -> BpiResult<PlayerInfoResponseData>
获取视频分 P 的 Web 播放器元数据。
获取与某个视频相关的视频。
Sourcepub async fn homepage_recommendations(
&self,
params: VideoHomepageRecommendationsParams,
) -> BpiResult<RcmdFeedResponseData>
pub async fn homepage_recommendations( &self, params: VideoHomepageRecommendationsParams, ) -> BpiResult<RcmdFeedResponseData>
获取首页视频推荐。
Sourcepub async fn ai_summary(
&self,
params: VideoAiSummaryParams,
) -> BpiResult<AiSummaryResponseData>
pub async fn ai_summary( &self, params: VideoAiSummaryParams, ) -> BpiResult<AiSummaryResponseData>
获取视频的 AI 总结。
获取视频关联的标签。
Sourcepub async fn interactive_video_info(
&self,
params: InteractiveVideoInfoParams,
) -> BpiResult<InteractiveVideoInfoResponseData>
pub async fn interactive_video_info( &self, params: InteractiveVideoInfoParams, ) -> BpiResult<InteractiveVideoInfoResponseData>
获取互动视频节点的元数据。
Source§impl<'a> VideoClient<'a>
impl<'a> VideoClient<'a>
Sourcepub async fn create_collection_series(
&self,
params: CollectionCreateAndAddArchivesParams,
) -> BpiResult<CreateSeriesResponseData>
pub async fn create_collection_series( &self, params: CollectionCreateAndAddArchivesParams, ) -> BpiResult<CreateSeriesResponseData>
创建视频系列,并可选择向其中添加稿件。
Sourcepub async fn delete_collection_series(
&self,
params: CollectionDeleteSeriesParams,
) -> BpiResult<Option<Value>>
pub async fn delete_collection_series( &self, params: CollectionDeleteSeriesParams, ) -> BpiResult<Option<Value>>
删除视频系列。
Sourcepub async fn delete_collection_archives(
&self,
params: CollectionArchivesMutationParams,
) -> BpiResult<Option<Value>>
pub async fn delete_collection_archives( &self, params: CollectionArchivesMutationParams, ) -> BpiResult<Option<Value>>
从视频系列中删除稿件。
Sourcepub async fn add_collection_archives(
&self,
params: CollectionArchivesMutationParams,
) -> BpiResult<Option<Value>>
pub async fn add_collection_archives( &self, params: CollectionArchivesMutationParams, ) -> BpiResult<Option<Value>>
向视频系列中添加稿件。
Sourcepub async fn update_collection_series(
&self,
params: CollectionUpdateSeriesParams,
) -> BpiResult<Option<Value>>
pub async fn update_collection_series( &self, params: CollectionUpdateSeriesParams, ) -> BpiResult<Option<Value>>
更新视频系列。
Source§impl<'a> VideoClient<'a>
impl<'a> VideoClient<'a>
Sourcepub async fn report_watch_progress(
&self,
params: VideoWatchProgressParams,
) -> BpiResult<Option<Value>>
pub async fn report_watch_progress( &self, params: VideoWatchProgressParams, ) -> BpiResult<Option<Value>>
上报视频观看进度并返回标准 payload 结果。
Trait Implementations§
Source§impl<'a> Clone for VideoClient<'a>
impl<'a> Clone for VideoClient<'a>
Source§fn clone(&self) -> VideoClient<'a>
fn clone(&self) -> VideoClient<'a>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl<'a> Copy for VideoClient<'a>
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for VideoClient<'a>
impl<'a> !UnwindSafe for VideoClient<'a>
impl<'a> Freeze for VideoClient<'a>
impl<'a> Send for VideoClient<'a>
impl<'a> Sync for VideoClient<'a>
impl<'a> Unpin for VideoClient<'a>
impl<'a> UnsafeUnpin for VideoClient<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more