Amit Kumar
3 min readAug 21, 2019

Final Phase | GSoC’19 | CCExtractor Development

Image Source: https://ccextractor.org

Hello!

I’m back with my latest post on Google Summer of Code! Till the second evaluation, I have successfully integrated all the features as mentioned in the proposal. I’m really grateful to my mentor Johannes Lochter who very genuinely gives feedback to my work and always show a path of improvements. This post summarises all the integration and improvements accomplished after the second evaluation. I had 0 experience in ReactJS but after using it for a while, It really amazed me with it’s workflow. I had fun working with ReactJS and it really helped me to achieve what I had really conceptualized initially. Along with it, I worked upon the backend side of the project and integrated some features. Below are the features I integrated into it.

1.Youtube video processing:

The first step involves the preprocessing of youtube link to get the id of the video. This is achieved by a small method in JS in the frontend part. It can handle all types of format of youtube link provided to this function and outputs the video id.

function GetVideoID(url) {
url = url.split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/);
return url[2] !== undefined ? url[2].split(/[⁰-9a-z_\-]/i)[0]:url[0]
}

After getting the videoID a POST method call is made at /api/ytstream/ which then uses youtube-dl library to download the video which is further pipelined to main video processing module in Rekognition and it finally gives the output.

2.NSFW Classifier:

As the project architecture is so well designed that adding a new deep learning model has become very smooth. I had mentioned in my project proposal about the integration of NSFW classifier based on Yahoo’s open_NSFW classification.So, I used already trained TensorFlow model and integrated to TensorFlow Serving. Finally created a REST APIs to use it.

3.Similar Face Search:

This feature provides the functionality to search a reference face in an image containing multiple faces. The motivation for integrating this feature came from Google Photos which creates a gallery of photos having a particular face common to all the image. REST APIs has also been created for this as well.

4. User Authentication:

Unmerged PR no. #44 contains the feature of adding user authentication. I have held it because a lot of changes have to be made in main project as well as the ReactJS frontend for APIs calls rendering. I’m still experimenting with it. I will merge it only when the PR will become suitable for the project’s agile development.

5. Frontend:

Working with ReactJS is a charm. I documented all the use cases of all the APIs with examples in a very concise and elegant manner. This project’s user experience no doubt can be improved a lot but yet I have given a simple, user-friendly UI.

Is it finally the endgame of this project with the end of such a cool summer? The answer is a big NO. This project has just started it’s journey. It has lots of areas which can be improved and a new feature can be integrated. I will keep contributing and adding new features to it. If you find this project really interesting and wants to contribute then you’re welcome! Here is the link of the project.

Happy coding!