# Select video *author: Chen Zhang*
## Description This operator select input list by simply aggregating, sorting and then filtering it.
## Code Example For two input lists: video urls and scores, aggregate url by reduce_function, then sort aggregated scores, then select top k results. ```python from towhee import pipe, ops, DataCollection p = ( pipe.input('video_urls', 'scores') \ .map(('video_urls', 'scores'), 'res', ops.video_copy_detection.select_video(top_k=2, reduce_function='mean', reverse=True)) \ .output('video_urls', 'scores', 'res') ) DataCollection(p(['a', 'a', 'c', 'a', 'b', 'b', 'c', 'c'], [2, 8, 9.3, 5, 2, 1, 0, -1])).show() ``` ![](mean.png) ```python from towhee import pipe, ops, DataCollection p = ( pipe.input('video_urls', 'scores') \ .map(('video_urls', 'scores'), 'res', ops.video_copy_detection.select_video(top_k=2, reduce_function='sum', reverse=True)) \ .output('video_urls', 'scores', 'res') ) DataCollection(p(['a', 'a', 'c', 'a', 'b', 'b', 'c', 'c'], [2, 8, 9.3, 5, 2, 1, 0, -1])).show() ``` ![](mean.png) ```python from towhee import pipe, ops, DataCollection p = ( pipe.input('video_urls', 'scores') \ .map(('video_urls', 'scores'), 'res', ops.video_copy_detection.select_video(top_k=2, reduce_function='max', reverse=True)) \ .output('video_urls', 'scores', 'res') ) DataCollection(p(['a', 'a', 'c', 'a', 'b', 'b', 'c', 'c'], [2, 8, 9.3, 5, 2, 1, 0, -1])).show() ``` ![](max.png) ```python from towhee import pipe, ops, DataCollection p = ( pipe.input('video_urls', 'scores') \ .map(('video_urls', 'scores'), 'res', ops.video_copy_detection.select_video(top_k=2, reduce_function='min', reverse=True)) \ .output('video_urls', 'scores', 'res') ) DataCollection(p(['a', 'a', 'c', 'a', 'b', 'b', 'c', 'c'], [2, 8, 9.3, 5, 2, 1, 0, -1])).show() ``` ![](min.png)
## Factory Constructor Create the operator via the following factory method ***select_video(top_k: int, reduce_function: str, reverse: bool)*** **Parameters:** ​ ***top_k:*** *int* ​ Select top k result. ​ ***reduce_function:*** *str* ​ Aggregate function name, support name: - sum - mean - max - min ​ ***reverse:*** *bool* ​ Whether sorted result is reversed.
## Interface **Parameters:** ​ ***video_urls:*** *List[str]* ​ Video urls. ​ ***scores:*** *List[float]* ​ Every video scores. **Returns:** *List[str]* ​ Selected video url results. # More Resources - [Extracting Event Highlights Using iYUNDONG Sports App - Zilliz blog](https://zilliz.com/blog/Extracting-Events-Highlights-Using-iYUNDONG-Sports-App): iYUNDONG continually seeks to support its users with real-time image retrieval services. When it decided to develop its App, it chose Milvus to build its core image search system. Discover how Milvus, an open-source vector database, can help build an intelligent image retrieval system that can extract sport event highlights. - [4 Steps to Building a Video Search System - Zilliz blog](https://zilliz.com/blog/building-video-search-system-with-milvus): Searching for videos by image with Milvus - [Vector Database Use Cases: Video Similarity Search - Zilliz](https://zilliz.com/vector-database-use-cases/video-similarity-search): Experience a 10x performance boost and unparalleled precision when your video similarity search system is powered by Zilliz Cloud.