asynctube 0.2.2
YouTube Public Data without API
License: MIT
Requires Python: >=3.6


# AsyncTube 

 **AsyncTube** is a package created to power the user with YouTube Data API functionality without synchronous blocks. No **API Key** required.    
    
 - **[Discord](https://discord.gg/YAFGAaMrTC)**

# How to use?         
 - **Installation:**     
    - `pip install asynctube`  
    
 - **Importing AsyncTube:**     
    - `from asynctube import Search, Video, Channel, Playlist, Extra`   
   
 - **Create an instance of YouTube Channel:** 
   - 
     - `Channel.fetch("channel Id / url / custom url")` [coro]    
            
     - **Method:**
        - `uploads(*limit:int [optional])`[coro]       
             > Returns ***bulk video Object*** of latest uploaded videos
     
     - **Attributes:** 
       - `id` Returns **id** of the channel or **None**
       - `info` Returns a **dict** containing channel information
       - `valid` Returns **True** if channel is valid else **False**
       - `name` Returns **name** of the channel or **None**
       - `live` [coro] Returns **True** if the channel is **Live**
       - `verified` Returns **True** if the channel is **Verified**
       - `live_url` [coro] Returns single **url** of newest occurring live stream or **None**
       - `live_urls` [coro] Returns list of **urls** of all occurring live streams or **None**
       - `old_streams` [coro] Returns list of **urls** of old live streams or **None**
       - `latest` [coro] Returns the **latest Video (obj)** of the channel or **None**
       - `playlists` [coro] Returns **bulk playlist (obj)** of channel's public playlists
       - `subscribers` Returns **sub-count** of the channel or **None**        
       - `views` Returns total number of **views** of the channel or **None**           
       - `joined` Returns channel **creation date** or **None**       
       - `country` Returns the generic country of the channel or **None**      
       - `custom_url` Returns the **custom url** of the channel or **None**
       - `avatar_url` Returns the **avatar url** of the channel or **None**       
       - `banner_url` Returns the **banner url** of the channel or **None**  
       - `description` Returns channel's short **description** or **None**

 - **Get YouTube Search Results:**
   - 
     - **Get Videos by YouTube Search:**     
        - `Search.video(*keywords: str)` [coro]   
		       
            > Returns a **Video Object** according to queries. 
			     
        - `Search.videos(*keywords: str, *limit:int [optional])` [coro]   
		        
           > Returns a list of **Bulk Video Objects** according to queries.    
           
     - **Get Channels by YouTube Search:**    
       
        - `Search.channel(*keywords: str)` [coro]        
             > Returns a **Channel Object** according to queries.     
		  
        - `Search.channels(*keywords: str, *limit:int [optional])` [coro]        
	 
           > Returns a list of **Bulk Channel Objects** according to queries.    
           
     - **Get Playlists by YouTube Search:**    
        - `Search.playlist(*keywords: str)` [coro]          
             > Returns a **Playlist Object** according to queries. 
		 
        - `Search.playlists(*keywords: str, *limit:int [optional])` [coro]
            > Returns a list of **Bulk Playlist Objects** according to queries. 
		 
 - **Create an instance of Video Data:**
   - 
     - `Video("video Id / video url")` [coro]
     - 
     - **Attributes:**          
         - `title`  Returns **title** of the video          
         - `views`  Returns **view count** of the video          
         - `likes`  Returns total **likes** on the video          
         - `dislikes`  Returns total **dislikes** on the video          
         - `author`  Returns **channel id** from which the video belong          
         - `length`  Returns **length** of the video          
         - `uploaded`  Returns **date of upload** of the video                   
         - `url` Returns **url** of the video    
         - `thumbnail_url`  Returns **hq thumbnail** of the video  
         - `tags`  Returns **list of tags** of the video
         - `info` Returns a **dict** of all attributes
 - **Create an instance of Playlist Data:**

     - `Playlist.fetch("playlist id")` [coro]
  
  - **Method:**
   - `videos` [coro]
   - > Returns a VideoBulk Object [VideoBulk]
       
			
  - **Attributes:**
    - `name`  Returns the **name** of the playlist or **None**  
    - `url`  Returns the **url** of the playlist or **None**
    - `video_count`  Returns the **video count** of the playlist or **None**  
    - `thumbnail_url`  Returns the **thumbnail** of the playlist or **None**
    - `info` Returns a **dict** of all attributes
    
  - **Create an instance of YouTube Extras:**
    - 
       - `class: Extra`
       - **Methods [coro]:**    
          - `trending`  Returns **#1 Trending** Video Object **[Video]**    
          - `music`  Returns trending ***Music*** Video Objects **[VideoBulk]**   
          - `gaming`  Returns trending ***Gaming*** Video Objects **[VideoBulk]**    
          - `news`  Returns trending ***News*** Video Objects **[VideoBulk]**    
          - `lives`  Returns trending ***Live*** Video Objects **[VideoBulk]**    
          - `learning`  Returns trending ***Educational*** Video Objects **[VideoBulk]**    
          - `sports`  Returns trending ***Sports*** Video Objects **[VideoBulk]**