Giter VIP home page Giter VIP logo

maximedrn / opensea-automatic-bulk-upload-and-sale Goto Github PK

View Code? Open in Web Editor NEW
326.0 12.0 109.0 53.19 MB

A Selenium Python bot to automatically and bulk upload/ mint and list your NFTs on OpenSea. All metadata compatible, Ethereum and Polygon blockchains supported, reCAPTCHA solvers included.

License: GNU General Public License v3.0

Python 99.41% JavaScript 0.28% Dockerfile 0.10% Batchfile 0.11% Shell 0.10%
python selenium opensea nft nfts upload bot metamask automation bulk

opensea-automatic-bulk-upload-and-sale's Introduction

Automatically and massively upload and list your non-fungible tokens on the OpenSea marketplace using Python Selenium.

A Selenium Python bot to automatically and bulk upload and list your NFTs on OpenSea.
All metadata integrated - Ethereum and Polygon supported - reCAPTCHA solver services included.
Version 1.13.0 (December 06, 2023)

Table of contents - Documentation

Introduction

With this bot, you can choose to upload, list or even both your non-fungible tokens on the OpenSea marketplace.

You just have to create or convert a metadata file following the requested structure, JSON, CSV and XLSX (Excel file) formats are available. This file will include every detail for each NFT. Then, you just have to launch the bot and select the action you want to perform, as well as the metadata file created. Finally, the bot will automate the tedious task of uploading or listing NFTs, one by one by hand, for several days.

  • Absolutely all upload details are supported, you can add as many properties as you want.
  • All file formats offered by OpenSea are compatible, including images, videos or even 3D models.
  • Ethereum and Polygon blockchains are supported, and the switch between these two blockchains is also supported.
  • In case of failure during an upload, a listing or when you only want to upload your NFTs on OpenSea, a file is generated with details already filled in or to be filled in.

opensea-automatic-bulk-upload-and-sale's People

Contributors

dependabot[bot] avatar emilianobruni avatar kanishka-chandra avatar mathieuandrade avatar maximedrn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opensea-automatic-bulk-upload-and-sale's Issues

Upload + Sell OK but Upload then Sell KO

Hello !

When I Upload + Sell my NFT on OPENSEA it's OK, the NFT is correctly uploaded then sell to to the right Fixed price (but I never success to change the default 1 month duration)

But when I Upload, and then try to sell with the URL in the generated file, the bot goes well on the right NFT and on the sales page, then close all.

In the log I have the following error : NFT sell canceled.

What's is the difference between only sell and upload and sell ?

Feature

Hello,

I am not a developer just webdesigner/intégrateur and I tested your script on a mac, 30' for 100 nft's (on average 7Mo/nfts). It works great, thanks (only colorama don't work)! I was wondering if it would be easily adaptable to eg update images and metadata? No longer be in creation mode but edition.
I imagined a mint pre-sale. and from a date upload the final nft ;)

Many thanks for your work!

Why is this happening when I run this script?

Exception has occurred: ValueError
malformed node or string on line 1: <ast.Name object at 0x000002073B3C44C0>
File "C:\Users\Ginge\Downloads\opensea_automatic_uploader-master\opensea_automatic_uploader-master\main.py", line 126, in type_checker
element = literal_eval(element)
File "C:\Users\Ginge\Downloads\opensea_automatic_uploader-master\opensea_automatic_uploader-master\main.py", line 112, in xlsx_file
self.create_parameters(self.type_checker(
File "C:\Users\Ginge\Downloads\opensea_automatic_uploader-master\opensea_automatic_uploader-master\main.py", line 104, in get_nft
self.xlsx_file()
File "C:\Users\Ginge\Downloads\opensea_automatic_uploader-master\opensea_automatic_uploader-master\main.py", line 774, in
settings.get_nft(element) # Get data of the NFT.

How do I solve this problem?

I am facing the following problem. Everything is working perfectly, metamask connects but in picture it stays on screen but does not confirm, metamask stays on screen but connects.

It gives the error in the image below. Where am I doing wrong, I am following all the instructions.

_`DevTools listening on ws://127.0.0.1:50123/devtools/browser/97e1f415-4f58-438b-854c-de9f58c2b9df
Login to MetaMask. Logged to Metamask.
Login to Opensea. Login to Opensea failed. Retrying.
Traceback (most recent call last):
File "C:\Users\Eray\Desktop\opensea\opns\main.py", line 305, in opensea_login
web.tab_changes(2) # Switch to the MetaMask popup tab.
File "C:\Users\Eray\Desktop\opensea\opns\main.py", line 237, in tab_changes
WDW(self.driver, 15).until( # Wait the tabs lists to be different.
File "C:\Users\Eray\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\support\wait.py", line 89, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\Eray\Desktop\opensea\opns\main.py", line 616, in
opensea.opensea_login() # Connect to Opensea.
File "C:\Users\Eray\Desktop\opensea\opns\main.py", line 315, in opensea_login
WDW(web.driver, 15).until(EC.number_of_windows_to_be(2))
File "C:\Users\Eray\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\support\wait.py", line 89, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

C:\Users\Eray\Desktop\opensea\opns>`_

1

Stuck at Captcha / Not Able to Login

I get stuck at captcha not being able to login to OpenSea, even If I try to solve it manually it keeps asking again to verify.

I'm able to log in using chrome normally but not with the chrome driver, How to avoid this?

collection part bug & sell part suggestion

The coding is pretty good! But there are still some deficiencies.

  1. "# Input collection and select it" part seems to be unstable as it always selects the first collection on opensea instead of the one we input. Sometimes it goes wrong like "Collection doesn't exist" even if we input the right collection.

  2. I highly suggest that the "nft_sell" part should be an independent part. I guess many people has the requirement that uploading and selling should be executed independently. For example, someone uploaded 100 NFTs on Monday. He might sell 10 NFTs for 0.1 eth on Tuesday. He may sell 15 NFTs for 0.5 eth on Friday. If the uploading part and the selling part are independent, these things will be easy to be executed automatically.

As far as I am concerned, these things matters a lot. Thanks for your contribution!

Problems with upload and log in

The login works.
i have to click create manually, after that the click on the wallet happens automaticly.
The first image upload skips before the sell window appears, the second image stops at the point where i define the price.
its always "sensitive content", doesnt matter if false or true.
Can you help me to fix the script?

Json File example

Hi. can you upload a json file example of how it should be structured with at least 2 attributes.

Stopped at opensea upload page

Hi thanks for providing us this code! but i have a problem during the process of uploading the nft to opensea

the message i received
Traceback (most recent call last):
File "C:\Users\Admin\Documents\opensea_automatic_uploader-master\main.py", line 714, in
structure.get_data(nft_number) # Structure the data of the NFT.
File "C:\Users\Admin\Documents\opensea_automatic_uploader-master\main.py", line 104, in get_data
eval('self.structure_' + self.extension + '()')
File "", line 1, in
File "C:\Users\Admin\Documents\opensea_automatic_uploader-master\main.py", line 112, in structure_json
self.structure_data([self.dict_to_list(
File "C:\Users\Admin\Documents\opensea_automatic_uploader-master\main.py", line 179, in structure_data
self.duration: list or str = nft_data[15 - index]
IndexError: list index out of range.

yesterday the code was not working to login in to opensea and now when i tried it again and it worked!
also thank you!

edit: so i tried the code again and yeah the same issue i got from yesterday which couldn't login to opensea its back again, and
i notice on a different post someone talk about it so i'll be patiently waiting for the fix and again thank you very much!

Use Coinbase wallet

Your work is amazing, but I haven't understood if I can use Coinbase wallet.
Thanks

NFT sale cancelled

Hi everyone. i get this message NFT sale cancelled. Message: You need to make a deposit before proceeding to listing of your NFTs. I have already 29 matic on my wallet. the script upload the picture and stop in the price. Thanks in advance for help. My metadata is

{"nft":[{"file_path":"D:/mynft/test/10k/1.jpg","nft_name":"my NFT #1","external_link":"https://opensea.io/binol","description":"nft #1","collection":"My NFTs Collection","properties":[{"type":"Type","name":"Gold"},{"type":"Color","name":"Yellow"},{"type":"Array","name":"1-10k"}],"levels":[],"stats":[],"unlockable_content":[],"expliciet_and_sensitive_content":false,"supply":1,"blockchain":"Polygon","price":0.043,"quantity":1,"dna":"d4dfa23f393bc57ab7511b37cbb2409d8004cd53","edition":1,"date":1643273678829,"compiler":"My nft"}]}

Syntax Error on MacOS.

What's the issue here?
Problem seems to be ":"

File "main.py", line 41
def init(self, path: str) -> None:

SyntaxError: invalid syntax

NFT sale cancelled

Hello,

I'm always getting NFT Sale Cancelled, upload is fine but sale is not happening.

My JSON format below:

        "supply": "1",
        "blockchain": "Polygon",
        "sale_type": "Fixed Price",
        "price": 0.01,
        "method": [""],
        "duration": ["6 months"],
        "specific_buyer": false,
        "quantity": "1"

Is there anything wrong in the format?

An error occured

This is what I see after running python3 main.py with just 1 NFT to test:

Login to MetaMask. Logged to Metamask.
Login to Opensea. Logged to Opensea.

Uploading NFT n°1/1. An error occured.

All done! Your NFTs have been uploaded/sold.

Nothing has happened on Opensea or Metamask. Ideas? Also an intuitive suggestion is to optionally turn on debug mode for error details etc.

Imported secondary account

By default the bot log in with my account 01 but I have paid the gas fee with imported account 02. How can I select a specific account?

Thanks!

works well but stops on adding first "# Add properties, levels and stats."

Screen Shot 2021-10-27 at 20 54 11
Ive tried this on a mac and it works well. much better than the other scripts ive tried.

The only problem is when I try and add properties, the first one is typed in but then it stops there. Actually in your example csv, it types in "male and then "D" without completing the word Dog. then it stops

When I comment out the properties code it all works fine and the nft is saved.

ps Looking forward to you adding the sell nft code as well.

How to add autopath in json

I'm using HashLips Art Engine. But they do not have similar codes just like you. So If I have to upload all the nfts I have to copy and paste each JSON from HashLips Art Engine to yours. Is there a way that I can combine both JSON files or generate your required JSON from HashLips Art Engine?
Please help me you did a really great work for us

object of type 'bool' has no len() error message

i keep getting this error message, even though i have json files loaded in the data folder, when the selenium script runs, everything works great... metamask loads up, logs in, then opensea loads up and logs in with metamask... then it goes to the create NFT page and as soon as it tries to pull the data from the json and turn it into a list object and pass that data along to some function in the code, for whatever reason it seems to be interpreting the list to be boolean object rather than a list object, and it doesn't detect it having a length as a result. because of that, the properties in the json file don't seem to be detected (or they are just being passed through as true or false, idk). once it hits this spot in the process, (create NFT page) it basically hangs up on this and spits out this error message:

`main.py:189: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(self.webdriver_path, options=options)

Login to MetaMask extension. Logged to Metamask extension.
Login to Opensea. Logged to Opensea.

Traceback (most recent call last):
File "main.py", line 775, in
settings.get_nft(element) # Get data of the NFT.
File "main.py", line 100, in get_nft
self.json_file()
File "main.py", line 147, in json_file
self.create_parameters(_list)
File "main.py", line 66, in create_parameters
self.levels: list = self.type_parameters(
File "main.py", line 85, in type_parameters
if len(parameters) > 0:
TypeError: object of type 'bool' has no len()`

Not really sure what's causing this... i've looked at the code for a while and i can't seem to find why this is happening. My json files are formatted in the correct structure so it shouldn't be that...

I'm sure this is something simple that i'm just overlooking.

The sell part

Always give me an error in the sell part of the program.eventough i have the exact structure you explained

[Question] Trust Wallet

Is it compatible with Trust Wallet?
If not, is there any chance to add it? I can do that on a PR if you give me a hint

All of the 'closed' issues are pretty much all still actually Open Issues.

The script still doesn't auto-upload all NFTs (doesn't do what it is meant to do)... the sale function is still incomplete... i even posted the code to complete the sale and rather than integrating the code, the author of this code just read all of our issues, basically said 'yeah, updates take time' and 'it is what it is' and then listed all of the open issues as CLOSED without actually addressing them. (smh)

I see some changes were made recently, but i gave up on this awhile ago and ended up rewriting most of the code from scratch. I'm done here.

I've posted my own working code to a Github Repo.
https://github.com/kurtatwork/KurtAtWork-OpenSea-Auto-Uploader

Error Version 1.2

Hello, i have test Version 1.1 with success (run on mac OSX).
Now i want test Vesion 1.2 with fixed price and i have an error, it stops when I arrive on the item creation page..

Error:

main.py:189: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome(self.webdriver_path, options=options)
Login to MetaMask extension. Logged to Metamask extension.
Login to Opensea. /Users/martin/opt/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py:359: UserWarning: find_elements_by_* commands are deprecated. Please use find_elements() instead
  warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
Logged to Opensea.
Traceback (most recent call last):
  File "main.py", line 774, in <module>
    settings.get_nft(element)  # Get data of the NFT.
  File "main.py", line 100, in get_nft
    self.json_file()
  File "main.py", line 147, in json_file
    self.create_parameters(_list)
  File "main.py", line 80, in create_parameters
    self.specific_buyer: list = parameters[16]
IndexError: list index out of range

My json file test:

{
  "nft": [
    {
      "file_path": "/Users/martin/Documents/images/3.png",
      "nft_name": "My NFT",
      "external_link": "https://www.mywebsite.com",
      "description": "My Description",
      "collection": "My collection",
      "properties": [
        {
          "type": "Background Color",
          "name": "Blue"
        },
        {
          "type": "Color",
          "name": "Red"
        }
      ],
      "levels": [],
      "stats": [],
      "unlockable_content": [],
      "explicit_and_sensitive_content": false,
      "supply": 1,
      "blockchain": "Ethereum",
      "sale_type": "Fixed Price",
      "price": 0.005,
      "duration": ["6 months"],
      "specific_buyer": false
    }
  ]
}

Anyone have any idea of the error? thanks in advance!

WebDriver line 201, 209, 672

I'm not a coder, So can you please make it easy for me how to solve it?
Traceback (most recent call last):
File "C:\Users\usman\Downloads\Compressed\opensea_automatic_uploader-master\opensea_automatic_uploader-master\main.py", line 672, in
web = Webdriver() # Start a new webdriver and init its methods.
File "C:\Users\usman\Downloads\Compressed\opensea_automatic_uploader-master\opensea_automatic_uploader-master\main.py", line 201, in init
self.driver = self.webdriver() # Start new webdriver.
File "C:\Users\usman\Downloads\Compressed\opensea_automatic_uploader-master\opensea_automatic_uploader-master\main.py", line 209, in webdriver
driver = webdriver.Chrome(service=Service( # DeprecationWarning using
TypeError: WebDriver.init() got an unexpected keyword argument 'service'

License Issue

In this repo license is assigned as GPL-3.0 but in main.py you have specified as,

Copyright © 2022 Maxime Dréan. All rights reserved.
Any distribution, modification or commercial use is strictly prohibited.

image

GPL-3.0 licensed content can distribute, modify and commercially used.

image

Why is that?

Properties being appended with letter A

This is a really excellent piece of work.

I'm having some trouble with the properties in both the .csv and .xlsx. No matter what I put in (even tried with escape characters) it appends the letter A to the trait description. For example:

[["Dog", "Male"], ["Cat", "Female"]]

Shows up as:
mf2

I ensured the text encoding was UTF-8 as the Python script expects.

Any ideas?
Thanks

only posts one NFT

even though i have multiple json files and image files all correctly formatted and in the right file heirarchy, when i go to run the script it detects all of the json files and has me pick a starting one, but then once it finishes uploading the first one, the script just ends... it doesn't do upload another one, even though they are detected by the code initially.

when i print the value of {settings.len_file} in the console, it says 1 (even though i have at least 10 json files there loaded up)

any guidance is appreciated.

can i run the program headless mode?

Hi, Maxidern!

I tried to run the program with headless mode option, but it is not work.

Is it because we install and use extension (metal mask.crx)?

Is it possible to run the program in this mode to reduce the load on the operating system?

Try it please and let me code if you success...

Best regards!

Using on testnet

Hello there,

I'm new in python, buat can this sripts running in testnet ,if that possible, in which code i shoud change, thanks in advance

LOGIN TO OPENSEA

Thank you for your efforts sir!

i've got an error when i tried to run the script, wich is "failed to login to opensea"

image

En Error Occurred

When i try to start the bot log into metamask and opensea but when it start to deploy the nft i get this error:
Uploading NFT n°62/200. An error occured.

I get this error for all the nft

cannot login opensea

weirdly just recently cannot login to opensea, its just opening metamask download link when bot and i try click metamask wallet in opensea login page.

Video tutorial of the steps required?

It would be great to be able to follow the instructions in video format.
I'm trying to upload my NFTs (with metadata) first, then sell them afterwards.
If you could think about it, I would be very grateful.

Maximum upload limit

Thought I'd drop an issue in to let you know about an OS change. Opensea allow a maximum of 50 uploads per collection using their smart contracts. This is for both ETH and Poly.

IMG-20220127-WA0002

NFT Price Changes to 1 ETH After Uploading

I would like to know why is it that whenever I upload an NFT collection onto OpenSea (Polygon Blockchain) the price changes from my original set price to 1 ETH. I was trying to upload a collection and sell it for 0.25 ETH however after I upload it the price automatically changes to 1 ETH. I'm using the latest version of the script 1..4.7, Python v3.9.9. My json file is located just below this text.

{
"nft": [
{
"file_path": "C:/NFT/HeadPotato/build/images/3716.png",
"nft_name": "HeadPotatoJoe #3716",
"external_link": "",
"description": "Your description.",
"collection": "HeadPotatoJoe",
"properties": [
{
"type": "Background",
"name": "City"
},
{
"type": "Head",
"name": "Dark Brown Standard"
},
{
"type": "Mouth",
"name": "Shining"
},
{
"type": "Eyes",
"name": "Befudlded"
},
{
"type": "Eyebrows",
"name": "Monobrow"
},
{
"type": "Nose",
"name": "No Nose"
}
],
"levels": [],
"stats": [],
"unlockable_content": [],
"explicit_and_sensitive_content": false,
"supply": 1,
"blockchain": "Polygon",
"price": 0.25,
"quantity": 1,
"dna": "f2f9447ec74040f7fe8f5e8eda73bc042e820043",
"edition": 3716,
"date": 1642863836959,
"compiler": "HashLips Art Engine"
},
{
"file_path": "C:/NFT/HeadPotato/build/images/8100.png",
"nft_name": "HeadPotatoJoe #8100",
"external_link": "",
"description": "Your description.",
"collection": "HeadPotatoJoe",
"properties": [
{
"type": "Background",
"name": "Space"
},
{
"type": "Head",
"name": "Orange Standard"
},
{
"type": "Mouth",
"name": "Beast"
},
{
"type": "Eyes",
"name": "Neutral"
},
{
"type": "Eyebrows",
"name": "Raised Mono"
},
{
"type": "Nose",
"name": "Webbed"
}
],
"levels": [],
"stats": [],
"unlockable_content": [],
"explicit_and_sensitive_content": false,
"supply": 1,
"blockchain": "Polygon",
"price": 0.25,
"quantity": 1,
"dna": "39c52e8a09a03321cfd3d5f79a58edfbb9e04528",
"edition": 8100,
"date": 1642863837379,
"compiler": "HashLips Art Engine"
}
]
}

Additional signature

After:
web.clickable('//button[@type="submit"]')

A confirmation window appears, not provided for in the code:
изображение

What needs to be done to avoid this or how to take it into account?
(After clicking the button, you need to sign a metamask contract)

URGENT HELP!!!!!!

IT IS SHOWING THIS AS SOON AS I CLICK '2' WHEN THE OPTION COMES OF METADATA --->

Traceback (most recent call last):
File "C:\Users\POOJAN PANDYA\Desktop\nft by cloud\new folder\NFTs_Upload_To_OpenSea_With_Metadata-main\main.py", line 574, in
settings = Settings(file, os.path.splitext(file)[1])
File "C:\Users\POOJAN PANDYA\Desktop\nft by cloud\new folder\NFTs_Upload_To_OpenSea_With_Metadata-main\main.py", line 35, in init
self.file = loads(open(file, encoding='utf-8').read())['nft']
TypeError: list indices must be integers or slices, not str

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.