Accept custom url hash
Support custom shortned
add requirements.txt